From 7638285d6cc511fee91818b2750132c7639eb684 Mon Sep 17 00:00:00 2001 From: Shen Guo Date: Fri, 21 Feb 2025 11:19:58 -0800 Subject: [PATCH] Checking if the PA manager is initialized before checking enablement Summary: We noticed that, sometimes joining PA group request failed because PACustomAudienceClient.enabled() did not get a chance to be triggered, e.g. PACustomAudienceClient. enabled() is called after AppEventManager starts. In this diff, we try to enable PA when a join request happens if it is not yet initialized in order to not miss any request. Reviewed By: youerkang Differential Revision: D69957967 Privacy Context Container: L1250336 fbshipit-source-id: 1409b0e8b815dc924ad9a0e252712bd538828445 --- .../appevents/gps/pa/PACustomAudienceClient.kt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/facebook-core/src/main/java/com/facebook/appevents/gps/pa/PACustomAudienceClient.kt b/facebook-core/src/main/java/com/facebook/appevents/gps/pa/PACustomAudienceClient.kt index ff693c6040..814c2f89e5 100644 --- a/facebook-core/src/main/java/com/facebook/appevents/gps/pa/PACustomAudienceClient.kt +++ b/facebook-core/src/main/java/com/facebook/appevents/gps/pa/PACustomAudienceClient.kt @@ -39,6 +39,7 @@ object PACustomAudienceClient { // Sync with RestrictiveDataManager.REPLACEMENT_STRING private const val REPLACEMENT_STRING = "_removed_" private var enabled = false + private var isInitialized = false private var customAudienceManager: CustomAudienceManager? = null private lateinit var gpsDebugLogger: GpsDebugLogger private lateinit var baseUri: String @@ -46,6 +47,7 @@ object PACustomAudienceClient { @JvmStatic @TargetApi(34) fun enable() { + isInitialized = true val context = FacebookSdk.getApplicationContext() gpsDebugLogger = GpsDebugLogger(context) baseUri = "https://www.${FacebookSdk.getFacebookDomain()}/privacy_sandbox/pa/logic" @@ -75,6 +77,10 @@ object PACustomAudienceClient { } fun joinCustomAudience(appId: String?, eventName: String?) { + if (!isInitialized) { + enable() + } + if (!enabled) return joinCustomAudienceImpl(appId, eventName) @@ -82,6 +88,10 @@ object PACustomAudienceClient { fun joinCustomAudience(appId: String?, event: AppEvent?) { + if (!isInitialized) { + enable() + } + if (!enabled) return var eventName: String? = null