Files
rr3-apk/decompiled-community/sources/com/facebook/appevents/iap/InAppPurchaseActivityLifecycleTracker.java
Daniel Elliott c080f0d97f Add Discord community version (64-bit only)
- Added realracing3-community.apk (71.57 MB)
- Removed 32-bit support (armeabi-v7a)
- Only includes arm64-v8a libraries
- Decompiled source code included
- Added README-community.md with analysis
2026-02-18 15:48:36 -08:00

138 lines
6.8 KiB
Java

package com.facebook.appevents.iap;
import android.app.Application;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.IBinder;
import android.util.Log;
import com.facebook.FacebookSdk;
import com.facebook.appevents.internal.AutomaticAnalyticsLogger;
import com.facebook.gamingservices.cloudgaming.internal.SDKConstants;
import com.unity3d.ads.metadata.InAppPurchaseMetaData;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean;
import kotlin.jvm.internal.Intrinsics;
import org.json.JSONException;
import org.json.JSONObject;
/* loaded from: classes2.dex */
public final class InAppPurchaseActivityLifecycleTracker {
private static final String BILLING_ACTIVITY_NAME = "com.android.billingclient.api.ProxyBillingActivity";
private static final String SERVICE_INTERFACE_NAME = "com.android.vending.billing.IInAppBillingService$Stub";
private static Application.ActivityLifecycleCallbacks callbacks;
private static Boolean hasBillingActivity;
private static Boolean hasBillingService;
private static Object inAppBillingObj;
private static Intent intent;
private static ServiceConnection serviceConnection;
public static final InAppPurchaseActivityLifecycleTracker INSTANCE = new InAppPurchaseActivityLifecycleTracker();
private static final String TAG = InAppPurchaseActivityLifecycleTracker.class.getCanonicalName();
private static final AtomicBoolean isTracking = new AtomicBoolean(false);
private InAppPurchaseActivityLifecycleTracker() {
}
public static final void startIapLogging() {
InAppPurchaseActivityLifecycleTracker inAppPurchaseActivityLifecycleTracker = INSTANCE;
inAppPurchaseActivityLifecycleTracker.initializeIfNotInitialized();
if (!Intrinsics.areEqual(hasBillingService, Boolean.FALSE) && AutomaticAnalyticsLogger.isImplicitPurchaseLoggingEnabled()) {
inAppPurchaseActivityLifecycleTracker.startTracking();
}
}
private final void initializeIfNotInitialized() {
if (hasBillingService != null) {
return;
}
Boolean valueOf = Boolean.valueOf(InAppPurchaseUtils.getClass(SERVICE_INTERFACE_NAME) != null);
hasBillingService = valueOf;
if (Intrinsics.areEqual(valueOf, Boolean.FALSE)) {
return;
}
hasBillingActivity = Boolean.valueOf(InAppPurchaseUtils.getClass(BILLING_ACTIVITY_NAME) != null);
InAppPurchaseEventManager.clearSkuDetailsCache();
Intent intent2 = new Intent("com.android.vending.billing.InAppBillingService.BIND").setPackage("com.android.vending");
Intrinsics.checkNotNullExpressionValue(intent2, "Intent(\"com.android.vending.billing.InAppBillingService.BIND\")\n .setPackage(\"com.android.vending\")");
intent = intent2;
serviceConnection = new ServiceConnection() { // from class: com.facebook.appevents.iap.InAppPurchaseActivityLifecycleTracker$initializeIfNotInitialized$1
@Override // android.content.ServiceConnection
public void onServiceDisconnected(ComponentName name) {
Intrinsics.checkNotNullParameter(name, "name");
}
@Override // android.content.ServiceConnection
public void onServiceConnected(ComponentName name, IBinder service) {
Intrinsics.checkNotNullParameter(name, "name");
Intrinsics.checkNotNullParameter(service, "service");
InAppPurchaseActivityLifecycleTracker inAppPurchaseActivityLifecycleTracker = InAppPurchaseActivityLifecycleTracker.INSTANCE;
InAppPurchaseEventManager inAppPurchaseEventManager = InAppPurchaseEventManager.INSTANCE;
InAppPurchaseActivityLifecycleTracker.inAppBillingObj = InAppPurchaseEventManager.asInterface(FacebookSdk.getApplicationContext(), service);
}
};
callbacks = new InAppPurchaseActivityLifecycleTracker$initializeIfNotInitialized$2();
}
private final void startTracking() {
if (isTracking.compareAndSet(false, true)) {
Context applicationContext = FacebookSdk.getApplicationContext();
if (applicationContext instanceof Application) {
Application application = (Application) applicationContext;
Application.ActivityLifecycleCallbacks activityLifecycleCallbacks = callbacks;
if (activityLifecycleCallbacks == null) {
Intrinsics.throwUninitializedPropertyAccessException("callbacks");
throw null;
}
application.registerActivityLifecycleCallbacks(activityLifecycleCallbacks);
Intent intent2 = intent;
if (intent2 == null) {
Intrinsics.throwUninitializedPropertyAccessException(SDKConstants.PARAM_INTENT);
throw null;
}
ServiceConnection serviceConnection2 = serviceConnection;
if (serviceConnection2 != null) {
applicationContext.bindService(intent2, serviceConnection2, 1);
} else {
Intrinsics.throwUninitializedPropertyAccessException("serviceConnection");
throw null;
}
}
}
}
/* JADX INFO: Access modifiers changed from: private */
public final void logPurchase(Context context, ArrayList<String> arrayList, boolean z) {
if (arrayList.isEmpty()) {
return;
}
HashMap hashMap = new HashMap();
ArrayList arrayList2 = new ArrayList();
Iterator<String> it = arrayList.iterator();
while (it.hasNext()) {
String purchase = it.next();
try {
String sku = new JSONObject(purchase).getString(InAppPurchaseMetaData.KEY_PRODUCT_ID);
Intrinsics.checkNotNullExpressionValue(sku, "sku");
Intrinsics.checkNotNullExpressionValue(purchase, "purchase");
hashMap.put(sku, purchase);
arrayList2.add(sku);
} catch (JSONException e) {
Log.e(TAG, "Error parsing in-app purchase data.", e);
}
}
InAppPurchaseEventManager inAppPurchaseEventManager = InAppPurchaseEventManager.INSTANCE;
for (Map.Entry<String, String> entry : InAppPurchaseEventManager.getSkuDetails(context, arrayList2, inAppBillingObj, z).entrySet()) {
String key = entry.getKey();
String value = entry.getValue();
String str = (String) hashMap.get(key);
if (str != null) {
AutomaticAnalyticsLogger.logPurchase(str, value, z);
}
}
}
}