- 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
266 lines
13 KiB
Java
266 lines
13 KiB
Java
package com.facebook.appevents.iap;
|
|
|
|
import android.content.SharedPreferences;
|
|
import androidx.annotation.RestrictTo;
|
|
import androidx.annotation.VisibleForTesting;
|
|
import com.facebook.FacebookSdk;
|
|
import com.facebook.appevents.internal.AutomaticAnalyticsLogger;
|
|
import com.facebook.gamingservices.cloudgaming.internal.SDKConstants;
|
|
import com.facebook.internal.instrument.crashshield.CrashShieldHandler;
|
|
import java.util.HashMap;
|
|
import java.util.HashSet;
|
|
import java.util.Iterator;
|
|
import java.util.LinkedHashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Set;
|
|
import java.util.concurrent.ConcurrentHashMap;
|
|
import java.util.concurrent.CopyOnWriteArraySet;
|
|
import kotlin.collections.MapsKt__MapsKt;
|
|
import kotlin.jvm.internal.Intrinsics;
|
|
import kotlin.text.StringsKt__StringsKt;
|
|
import org.json.JSONObject;
|
|
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP})
|
|
/* loaded from: classes2.dex */
|
|
public final class InAppPurchaseLoggerManager {
|
|
private static final int CACHE_CLEAR_TIME_LIMIT_SEC = 604800;
|
|
private static final String LAST_CLEARED_TIME = "LAST_CLEARED_TIME";
|
|
private static final String LAST_QUERY_PURCHASE_HISTORY_TIME = "LAST_QUERY_PURCHASE_HISTORY_TIME";
|
|
private static final String PRODUCT_DETAILS_STORE = "com.facebook.internal.iap.PRODUCT_DETAILS";
|
|
private static final String PURCHASE_DETAILS_SET = "PURCHASE_DETAILS_SET";
|
|
private static final int PURCHASE_IN_CACHE_INTERVAL = 86400;
|
|
private static final String PURCHASE_TIME = "purchaseTime";
|
|
private static SharedPreferences sharedPreferences;
|
|
public static final InAppPurchaseLoggerManager INSTANCE = new InAppPurchaseLoggerManager();
|
|
private static final Set<String> cachedPurchaseSet = new CopyOnWriteArraySet();
|
|
private static final Map<String, Long> cachedPurchaseMap = new ConcurrentHashMap();
|
|
|
|
private InAppPurchaseLoggerManager() {
|
|
}
|
|
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
private final void readPurchaseCache() {
|
|
List split$default;
|
|
if (CrashShieldHandler.isObjectCrashing(this)) {
|
|
return;
|
|
}
|
|
try {
|
|
SharedPreferences sharedPreferences2 = FacebookSdk.getApplicationContext().getSharedPreferences("com.facebook.internal.SKU_DETAILS", 0);
|
|
SharedPreferences sharedPreferences3 = FacebookSdk.getApplicationContext().getSharedPreferences("com.facebook.internal.PURCHASE", 0);
|
|
if (sharedPreferences2.contains(LAST_CLEARED_TIME)) {
|
|
sharedPreferences2.edit().clear().apply();
|
|
sharedPreferences3.edit().clear().apply();
|
|
}
|
|
SharedPreferences sharedPreferences4 = FacebookSdk.getApplicationContext().getSharedPreferences(PRODUCT_DETAILS_STORE, 0);
|
|
Intrinsics.checkNotNullExpressionValue(sharedPreferences4, "getApplicationContext().getSharedPreferences(PRODUCT_DETAILS_STORE, Context.MODE_PRIVATE)");
|
|
sharedPreferences = sharedPreferences4;
|
|
Set<String> set = cachedPurchaseSet;
|
|
if (sharedPreferences4 != null) {
|
|
Set<String> stringSet = sharedPreferences4.getStringSet(PURCHASE_DETAILS_SET, new HashSet());
|
|
if (stringSet == null) {
|
|
stringSet = new HashSet<>();
|
|
}
|
|
set.addAll(stringSet);
|
|
Iterator<String> it = set.iterator();
|
|
while (it.hasNext()) {
|
|
split$default = StringsKt__StringsKt.split$default((CharSequence) it.next(), new String[]{";"}, false, 2, 2, (Object) null);
|
|
cachedPurchaseMap.put(split$default.get(0), Long.valueOf(Long.parseLong((String) split$default.get(1))));
|
|
}
|
|
clearOutdatedProductInfoInCache$facebook_core_release();
|
|
return;
|
|
}
|
|
Intrinsics.throwUninitializedPropertyAccessException("sharedPreferences");
|
|
throw null;
|
|
} catch (Throwable th) {
|
|
CrashShieldHandler.handleThrowable(th, this);
|
|
}
|
|
}
|
|
|
|
public static final void filterPurchaseLogging(Map<String, JSONObject> purchaseDetailsMap, Map<String, ? extends JSONObject> skuDetailsMap) {
|
|
if (CrashShieldHandler.isObjectCrashing(InAppPurchaseLoggerManager.class)) {
|
|
return;
|
|
}
|
|
try {
|
|
Intrinsics.checkNotNullParameter(purchaseDetailsMap, "purchaseDetailsMap");
|
|
Intrinsics.checkNotNullParameter(skuDetailsMap, "skuDetailsMap");
|
|
InAppPurchaseLoggerManager inAppPurchaseLoggerManager = INSTANCE;
|
|
inAppPurchaseLoggerManager.readPurchaseCache();
|
|
inAppPurchaseLoggerManager.logPurchases(inAppPurchaseLoggerManager.constructLoggingReadyMap$facebook_core_release(inAppPurchaseLoggerManager.cacheDeDupPurchase$facebook_core_release(purchaseDetailsMap), skuDetailsMap));
|
|
} catch (Throwable th) {
|
|
CrashShieldHandler.handleThrowable(th, InAppPurchaseLoggerManager.class);
|
|
}
|
|
}
|
|
|
|
private final void logPurchases(Map<String, String> map) {
|
|
if (CrashShieldHandler.isObjectCrashing(this)) {
|
|
return;
|
|
}
|
|
try {
|
|
for (Map.Entry<String, String> entry : map.entrySet()) {
|
|
String key = entry.getKey();
|
|
String value = entry.getValue();
|
|
if (key != null && value != null) {
|
|
AutomaticAnalyticsLogger.logPurchase(key, value, false);
|
|
}
|
|
}
|
|
} catch (Throwable th) {
|
|
CrashShieldHandler.handleThrowable(th, this);
|
|
}
|
|
}
|
|
|
|
@VisibleForTesting(otherwise = 2)
|
|
public final Map<String, JSONObject> cacheDeDupPurchase$facebook_core_release(Map<String, JSONObject> purchaseDetailsMap) {
|
|
Map map;
|
|
if (CrashShieldHandler.isObjectCrashing(this)) {
|
|
return null;
|
|
}
|
|
try {
|
|
Intrinsics.checkNotNullParameter(purchaseDetailsMap, "purchaseDetailsMap");
|
|
long currentTimeMillis = System.currentTimeMillis() / 1000;
|
|
map = MapsKt__MapsKt.toMap(purchaseDetailsMap);
|
|
for (Map.Entry entry : map.entrySet()) {
|
|
String str = (String) entry.getKey();
|
|
JSONObject jSONObject = (JSONObject) entry.getValue();
|
|
try {
|
|
if (jSONObject.has(SDKConstants.PARAM_PURCHASE_TOKEN)) {
|
|
String string = jSONObject.getString(SDKConstants.PARAM_PURCHASE_TOKEN);
|
|
if (cachedPurchaseMap.containsKey(string)) {
|
|
purchaseDetailsMap.remove(str);
|
|
} else {
|
|
Set<String> set = cachedPurchaseSet;
|
|
StringBuilder sb = new StringBuilder();
|
|
sb.append((Object) string);
|
|
sb.append(';');
|
|
sb.append(currentTimeMillis);
|
|
set.add(sb.toString());
|
|
}
|
|
}
|
|
} catch (Exception unused) {
|
|
}
|
|
}
|
|
SharedPreferences sharedPreferences2 = sharedPreferences;
|
|
if (sharedPreferences2 != null) {
|
|
sharedPreferences2.edit().putStringSet(PURCHASE_DETAILS_SET, cachedPurchaseSet).apply();
|
|
return new HashMap(purchaseDetailsMap);
|
|
}
|
|
Intrinsics.throwUninitializedPropertyAccessException("sharedPreferences");
|
|
throw null;
|
|
} catch (Throwable th) {
|
|
CrashShieldHandler.handleThrowable(th, this);
|
|
return null;
|
|
}
|
|
}
|
|
|
|
@VisibleForTesting(otherwise = 2)
|
|
public final void clearOutdatedProductInfoInCache$facebook_core_release() {
|
|
Map map;
|
|
if (CrashShieldHandler.isObjectCrashing(this)) {
|
|
return;
|
|
}
|
|
try {
|
|
long currentTimeMillis = System.currentTimeMillis() / 1000;
|
|
SharedPreferences sharedPreferences2 = sharedPreferences;
|
|
if (sharedPreferences2 != null) {
|
|
long j = sharedPreferences2.getLong(LAST_CLEARED_TIME, 0L);
|
|
if (j == 0) {
|
|
SharedPreferences sharedPreferences3 = sharedPreferences;
|
|
if (sharedPreferences3 != null) {
|
|
sharedPreferences3.edit().putLong(LAST_CLEARED_TIME, currentTimeMillis).apply();
|
|
return;
|
|
} else {
|
|
Intrinsics.throwUninitializedPropertyAccessException("sharedPreferences");
|
|
throw null;
|
|
}
|
|
}
|
|
if (currentTimeMillis - j > 604800) {
|
|
map = MapsKt__MapsKt.toMap(cachedPurchaseMap);
|
|
for (Map.Entry entry : map.entrySet()) {
|
|
String str = (String) entry.getKey();
|
|
long longValue = ((Number) entry.getValue()).longValue();
|
|
if (currentTimeMillis - longValue > 86400) {
|
|
cachedPurchaseSet.remove(str + ';' + longValue);
|
|
cachedPurchaseMap.remove(str);
|
|
}
|
|
}
|
|
SharedPreferences sharedPreferences4 = sharedPreferences;
|
|
if (sharedPreferences4 == null) {
|
|
Intrinsics.throwUninitializedPropertyAccessException("sharedPreferences");
|
|
throw null;
|
|
}
|
|
sharedPreferences4.edit().putStringSet(PURCHASE_DETAILS_SET, cachedPurchaseSet).putLong(LAST_CLEARED_TIME, currentTimeMillis).apply();
|
|
return;
|
|
}
|
|
return;
|
|
}
|
|
Intrinsics.throwUninitializedPropertyAccessException("sharedPreferences");
|
|
throw null;
|
|
} catch (Throwable th) {
|
|
CrashShieldHandler.handleThrowable(th, this);
|
|
}
|
|
}
|
|
|
|
public static final boolean eligibleQueryPurchaseHistory() {
|
|
if (CrashShieldHandler.isObjectCrashing(InAppPurchaseLoggerManager.class)) {
|
|
return false;
|
|
}
|
|
try {
|
|
INSTANCE.readPurchaseCache();
|
|
long currentTimeMillis = System.currentTimeMillis() / 1000;
|
|
SharedPreferences sharedPreferences2 = sharedPreferences;
|
|
if (sharedPreferences2 != null) {
|
|
long j = sharedPreferences2.getLong(LAST_QUERY_PURCHASE_HISTORY_TIME, 0L);
|
|
if (j != 0 && currentTimeMillis - j < PURCHASE_IN_CACHE_INTERVAL) {
|
|
return false;
|
|
}
|
|
SharedPreferences sharedPreferences3 = sharedPreferences;
|
|
if (sharedPreferences3 != null) {
|
|
sharedPreferences3.edit().putLong(LAST_QUERY_PURCHASE_HISTORY_TIME, currentTimeMillis).apply();
|
|
return true;
|
|
}
|
|
Intrinsics.throwUninitializedPropertyAccessException("sharedPreferences");
|
|
throw null;
|
|
}
|
|
Intrinsics.throwUninitializedPropertyAccessException("sharedPreferences");
|
|
throw null;
|
|
} catch (Throwable th) {
|
|
CrashShieldHandler.handleThrowable(th, InAppPurchaseLoggerManager.class);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
@VisibleForTesting(otherwise = 2)
|
|
public final Map<String, String> constructLoggingReadyMap$facebook_core_release(Map<String, ? extends JSONObject> purchaseDetailsMap, Map<String, ? extends JSONObject> skuDetailsMap) {
|
|
if (CrashShieldHandler.isObjectCrashing(this)) {
|
|
return null;
|
|
}
|
|
try {
|
|
Intrinsics.checkNotNullParameter(purchaseDetailsMap, "purchaseDetailsMap");
|
|
Intrinsics.checkNotNullParameter(skuDetailsMap, "skuDetailsMap");
|
|
long currentTimeMillis = System.currentTimeMillis() / 1000;
|
|
LinkedHashMap linkedHashMap = new LinkedHashMap();
|
|
for (Map.Entry<String, ? extends JSONObject> entry : purchaseDetailsMap.entrySet()) {
|
|
String key = entry.getKey();
|
|
JSONObject value = entry.getValue();
|
|
JSONObject jSONObject = skuDetailsMap.get(key);
|
|
if (value != null && value.has(PURCHASE_TIME)) {
|
|
try {
|
|
if (currentTimeMillis - (value.getLong(PURCHASE_TIME) / 1000) <= 86400 && jSONObject != null) {
|
|
String jSONObject2 = value.toString();
|
|
Intrinsics.checkNotNullExpressionValue(jSONObject2, "purchaseDetail.toString()");
|
|
String jSONObject3 = jSONObject.toString();
|
|
Intrinsics.checkNotNullExpressionValue(jSONObject3, "skuDetail.toString()");
|
|
linkedHashMap.put(jSONObject2, jSONObject3);
|
|
}
|
|
} catch (Exception unused) {
|
|
}
|
|
}
|
|
}
|
|
return linkedHashMap;
|
|
} catch (Throwable th) {
|
|
CrashShieldHandler.handleThrowable(th, this);
|
|
return null;
|
|
}
|
|
}
|
|
}
|