- 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
155 lines
6.9 KiB
Java
155 lines
6.9 KiB
Java
package com.amazon.device.iap.internal.c;
|
|
|
|
import android.content.Context;
|
|
import android.content.SharedPreferences;
|
|
import android.os.Handler;
|
|
import com.amazon.device.iap.model.Receipt;
|
|
import com.facebook.internal.security.CertificateUtil;
|
|
import com.ironsource.v8;
|
|
import java.util.HashSet;
|
|
import java.util.Map;
|
|
import java.util.Set;
|
|
import org.json.JSONException;
|
|
import org.json.JSONObject;
|
|
|
|
/* loaded from: classes.dex */
|
|
public class a {
|
|
private static final String a = "a";
|
|
private static final String b = a.class.getName() + "_PREFS";
|
|
private static final String c = a.class.getName() + "_CLEANER_PREFS";
|
|
private static int d = 604800000;
|
|
private static final a e = new a();
|
|
|
|
public static a a() {
|
|
return e;
|
|
}
|
|
|
|
public void a(String str, String str2, String str3, String str4) {
|
|
com.amazon.device.iap.internal.util.e.a(a, "enter saveReceipt for receipt [" + str4 + v8.i.e);
|
|
try {
|
|
com.amazon.device.iap.internal.util.d.a(str2, "userId");
|
|
com.amazon.device.iap.internal.util.d.a(str3, "receiptId");
|
|
com.amazon.device.iap.internal.util.d.a(str4, "receiptString");
|
|
Context b2 = com.amazon.device.iap.internal.d.d().b();
|
|
com.amazon.device.iap.internal.util.d.a(b2, "context");
|
|
d dVar = new d(str2, str4, str, System.currentTimeMillis());
|
|
SharedPreferences.Editor edit = b2.getSharedPreferences(b, 0).edit();
|
|
edit.putString(str3, dVar.d());
|
|
edit.commit();
|
|
} catch (Throwable th) {
|
|
com.amazon.device.iap.internal.util.e.a(a, "error in saving pending receipt:" + str + "/" + str4 + CertificateUtil.DELIMITER + th.getMessage());
|
|
}
|
|
com.amazon.device.iap.internal.util.e.a(a, "leaving saveReceipt for receipt id [" + str3 + v8.i.e);
|
|
}
|
|
|
|
private void e() {
|
|
com.amazon.device.iap.internal.util.e.a(a, "enter old receipts cleanup! ");
|
|
final Context b2 = com.amazon.device.iap.internal.d.d().b();
|
|
com.amazon.device.iap.internal.util.d.a(b2, "context");
|
|
a(System.currentTimeMillis());
|
|
new Handler().post(new Runnable() { // from class: com.amazon.device.iap.internal.c.a.1
|
|
@Override // java.lang.Runnable
|
|
public void run() {
|
|
try {
|
|
com.amazon.device.iap.internal.util.e.a(a.a, "perform house keeping! ");
|
|
SharedPreferences sharedPreferences = b2.getSharedPreferences(a.b, 0);
|
|
for (String str : sharedPreferences.getAll().keySet()) {
|
|
try {
|
|
if (System.currentTimeMillis() - d.a(sharedPreferences.getString(str, null)).c() > a.d) {
|
|
com.amazon.device.iap.internal.util.e.a(a.a, "house keeping - try remove Receipt:" + str + " since it's too old");
|
|
a.this.a(str);
|
|
}
|
|
} catch (e unused) {
|
|
com.amazon.device.iap.internal.util.e.a(a.a, "house keeping - try remove Receipt:" + str + " since it's invalid ");
|
|
a.this.a(str);
|
|
}
|
|
}
|
|
} catch (Throwable th) {
|
|
com.amazon.device.iap.internal.util.e.a(a.a, "Error in running cleaning job:" + th);
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
public void a(String str) {
|
|
String str2 = a;
|
|
com.amazon.device.iap.internal.util.e.a(str2, "enter removeReceipt for receipt[" + str + v8.i.e);
|
|
Context b2 = com.amazon.device.iap.internal.d.d().b();
|
|
com.amazon.device.iap.internal.util.d.a(b2, "context");
|
|
SharedPreferences.Editor edit = b2.getSharedPreferences(b, 0).edit();
|
|
edit.remove(str);
|
|
edit.commit();
|
|
com.amazon.device.iap.internal.util.e.a(str2, "leave removeReceipt for receipt[" + str + v8.i.e);
|
|
}
|
|
|
|
private long f() {
|
|
Context b2 = com.amazon.device.iap.internal.d.d().b();
|
|
com.amazon.device.iap.internal.util.d.a(b2, "context");
|
|
long currentTimeMillis = System.currentTimeMillis();
|
|
long j = b2.getSharedPreferences(c, 0).getLong("LAST_CLEANING_TIME", 0L);
|
|
if (j != 0) {
|
|
return j;
|
|
}
|
|
a(currentTimeMillis);
|
|
return currentTimeMillis;
|
|
}
|
|
|
|
private void a(long j) {
|
|
Context b2 = com.amazon.device.iap.internal.d.d().b();
|
|
com.amazon.device.iap.internal.util.d.a(b2, "context");
|
|
SharedPreferences.Editor edit = b2.getSharedPreferences(c, 0).edit();
|
|
edit.putLong("LAST_CLEANING_TIME", j);
|
|
edit.commit();
|
|
}
|
|
|
|
public Set<Receipt> b(String str) {
|
|
Context b2 = com.amazon.device.iap.internal.d.d().b();
|
|
com.amazon.device.iap.internal.util.d.a(b2, "context");
|
|
String str2 = a;
|
|
com.amazon.device.iap.internal.util.e.a(str2, "enter getLocalReceipts for user[" + str + v8.i.e);
|
|
HashSet hashSet = new HashSet();
|
|
if (com.amazon.device.iap.internal.util.d.a(str)) {
|
|
com.amazon.device.iap.internal.util.e.b(str2, "empty UserId: " + str);
|
|
throw new RuntimeException("Invalid UserId:" + str);
|
|
}
|
|
Map<String, ?> all = b2.getSharedPreferences(b, 0).getAll();
|
|
for (String str3 : all.keySet()) {
|
|
String str4 = (String) all.get(str3);
|
|
try {
|
|
d a2 = d.a(str4);
|
|
hashSet.add(com.amazon.device.iap.internal.util.a.a(new JSONObject(a2.b()), str, a2.a()));
|
|
} catch (com.amazon.device.iap.internal.b.d unused) {
|
|
a(str3);
|
|
com.amazon.device.iap.internal.util.e.b(a, "failed to verify signature:[" + str4 + v8.i.e);
|
|
} catch (JSONException unused2) {
|
|
a(str3);
|
|
com.amazon.device.iap.internal.util.e.b(a, "failed to convert string to JSON object:[" + str4 + v8.i.e);
|
|
} catch (Throwable unused3) {
|
|
com.amazon.device.iap.internal.util.e.b(a, "failed to load the receipt from SharedPreference:[" + str4 + v8.i.e);
|
|
}
|
|
}
|
|
com.amazon.device.iap.internal.util.e.a(a, "leaving getLocalReceipts for user[" + str + "], " + hashSet.size() + " local receipts found.");
|
|
if (System.currentTimeMillis() - f() > d) {
|
|
e();
|
|
}
|
|
return hashSet;
|
|
}
|
|
|
|
public String c(String str) {
|
|
Context b2 = com.amazon.device.iap.internal.d.d().b();
|
|
com.amazon.device.iap.internal.util.d.a(b2, "context");
|
|
if (com.amazon.device.iap.internal.util.d.a(str)) {
|
|
com.amazon.device.iap.internal.util.e.b(a, "empty receiptId: " + str);
|
|
throw new RuntimeException("Invalid ReceiptId:" + str);
|
|
}
|
|
String string = b2.getSharedPreferences(b, 0).getString(str, null);
|
|
if (string != null) {
|
|
try {
|
|
return d.a(string).a();
|
|
} catch (e unused) {
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
}
|