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
This commit is contained in:
2026-02-18 15:48:36 -08:00
parent c19eb3d7ff
commit c080f0d97f
26930 changed files with 2529574 additions and 0 deletions

View File

@@ -0,0 +1,304 @@
package com.singular.sdk.internal;
import android.content.Context;
import android.net.Uri;
import androidx.core.app.NotificationCompat;
import com.facebook.gamingservices.cloudgaming.internal.SDKConstants;
import com.ironsource.mediationsdk.impressionData.ImpressionData;
import com.ironsource.nb;
import com.mbridge.msdk.foundation.download.core.DownloadCommon;
import com.mbridge.msdk.foundation.entity.CampaignEx;
import com.mbridge.msdk.foundation.same.report.i;
import com.mbridge.msdk.playercommon.exoplayer2.text.ttml.TtmlNode;
import com.singular.sdk.SingularConfig;
import com.singular.sdk.internal.Api;
import com.singular.sdk.internal.ApiSubmitEvent;
import com.singular.sdk.internal.LicenseApiHelper;
import com.singular.sdk.internal.NewPlayReferrerUtils;
import com.unity3d.ads.metadata.InAppPurchaseMetaData;
import csdk.gluads.Consts;
import java.util.Locale;
import org.json.JSONException;
import org.json.JSONObject;
/* loaded from: classes4.dex */
public class ApiStartSession extends BaseApi {
public static final SingularLog logger = SingularLog.getLogger(ApiStartSession.class.getSimpleName());
public int licenseAttemptsCounter;
@Override // com.singular.sdk.internal.Api
public String getPath() {
return "/start";
}
public static /* synthetic */ int access$108(ApiStartSession apiStartSession) {
int i = apiStartSession.licenseAttemptsCounter;
apiStartSession.licenseAttemptsCounter = i + 1;
return i;
}
@Override // com.singular.sdk.internal.BaseApi
public /* bridge */ /* synthetic */ long getTimestamp() {
return super.getTimestamp();
}
@Override // com.singular.sdk.internal.BaseApi
public /* bridge */ /* synthetic */ String getUrl() {
return super.getUrl();
}
@Override // com.singular.sdk.internal.BaseApi, com.singular.sdk.internal.Api
public /* bridge */ /* synthetic */ boolean makeRequest(SingularInstance singularInstance) {
return super.makeRequest(singularInstance);
}
@Override // com.singular.sdk.internal.BaseApi
public /* bridge */ /* synthetic */ String toJsonAsString() {
return super.toJsonAsString();
}
public ApiStartSession(long j) {
super("SESSION_START", j);
this.licenseAttemptsCounter = 0;
}
@Override // com.singular.sdk.internal.Api
public Api.OnApiCallback getOnApiCallback() {
return new OnSessionStartCallback();
}
public class OnSessionStartCallback implements Api.OnApiCallback {
public final boolean isLicenseResponseValid(int i) {
return (i == -1 || i == 257 || i == 4) ? false : true;
}
public OnSessionStartCallback() {
}
/* JADX WARN: Multi-variable type inference failed */
@Override // com.singular.sdk.internal.Api.OnApiCallback
public boolean handle(SingularInstance singularInstance, int i, String str) {
String str2;
if (i != 200) {
return false;
}
try {
JSONObject jSONObject = new JSONObject(str);
if (!jSONObject.optString("status", "").equalsIgnoreCase("ok")) {
return false;
}
String optString = jSONObject.optString("ddl", null);
String optString2 = jSONObject.optString("deferred_passthrough", null);
if (!Utils.isOpenedWithDeeplink()) {
if (Utils.isEmptyOrNull(optString)) {
if (!Utils.isEmptyOrNull(optString2)) {
}
}
handleDDL(singularInstance, optString, optString2);
}
String optString3 = jSONObject.optString("resolved_singular_link", null);
if (!Utils.isEmptyOrNull(optString3) && (str2 = (String) ApiStartSession.this.get("singular_link_resolve_required")) != null && Boolean.parseBoolean(str2) && Utils.lagSince(ApiStartSession.this.getTimestamp()) < SingularInstance.getInstance().getSingularConfig().shortlinkTimeoutSec) {
Utils.handleSingularLink(Uri.parse(optString3));
}
if (jSONObject.optBoolean("first_time", false)) {
handleInstallFacebook(singularInstance);
handleInstallReferrer(singularInstance);
}
String str3 = (String) ApiStartSession.this.get("u");
if (Utils.isEmptyOrNull(str3) || Utils.isLicenseRetrieved(singularInstance.getContext(), str3)) {
return true;
}
performLicenseCheck(singularInstance, str3);
return true;
} catch (JSONException e) {
ApiStartSession.logger.error("error in handle()", e);
return false;
}
}
public void performLicenseCheck(final SingularInstance singularInstance, final String str) {
ApiStartSession.logger.debug("Trying to fetch license key from the Licensing Service");
new Thread(new Runnable() { // from class: com.singular.sdk.internal.ApiStartSession.OnSessionStartCallback.1
@Override // java.lang.Runnable
public void run() {
ApiStartSession.access$108(ApiStartSession.this);
LicenseApiHelper.checkLicense(singularInstance.getContext(), new LicenseApiHelper.LicenseResultHandler() { // from class: com.singular.sdk.internal.ApiStartSession.OnSessionStartCallback.1.1
@Override // com.singular.sdk.internal.LicenseApiHelper.LicenseResultHandler
public void handle(int i, String str2, String str3) {
try {
if (!OnSessionStartCallback.this.isLicenseResponseValid(i) && ApiStartSession.this.licenseAttemptsCounter < 3) {
Thread.sleep(ApiStartSession.this.licenseAttemptsCounter * 3000);
AnonymousClass1 anonymousClass1 = AnonymousClass1.this;
OnSessionStartCallback.this.performLicenseCheck(singularInstance, str);
return;
}
Utils.saveLicenseInfo(singularInstance.getContext(), str);
JSONObject jSONObject = new JSONObject();
jSONObject.put("responseCode", String.valueOf(i));
jSONObject.put("signedData", str2);
jSONObject.put(InAppPurchaseMetaData.KEY_SIGNATURE, str3);
singularInstance.logEvent(new ApiSubmitEvent.RawEvent("__LicensingStatus", jSONObject.toString()));
} catch (InterruptedException e) {
e.printStackTrace();
} catch (JSONException e2) {
ApiStartSession.logger.error("Error occurred while trying to send licensing status event", e2);
}
}
});
}
}).start();
}
public void handleInstallReferrer(final SingularInstance singularInstance) {
ApiStartSession.logger.debug("Trying to fetch referrer by NEW play referrer method");
try {
NewPlayReferrerUtils.queryNewPlayReferrerValue(singularInstance.getContext(), new NewPlayReferrerUtils.NewPlayReferrerCallback() { // from class: com.singular.sdk.internal.ApiStartSession.OnSessionStartCallback.2
@Override // com.singular.sdk.internal.NewPlayReferrerUtils.NewPlayReferrerCallback
public void handleReferrerValue(String str, long j, long j2) {
singularInstance.sendInstallReferrerEvent(str, NotificationCompat.CATEGORY_SERVICE, j, j2);
}
@Override // com.singular.sdk.internal.NewPlayReferrerUtils.NewPlayReferrerCallback
public void handleNotSupported() {
String cSIReferrer = Utils.getCSIReferrer(singularInstance.getContext());
if (!Utils.isEmptyOrNull(cSIReferrer)) {
singularInstance.sendInstallReferrerEvent(cSIReferrer, SDKConstants.PARAM_INTENT, -1L, -1L);
} else {
Utils.signalAsyncReferrerAllowed(singularInstance.getContext());
}
}
});
} catch (Exception e) {
ApiStartSession.logger.error("Failed to fetch play referrer value", e);
}
}
public void handleInstallFacebook(SingularInstance singularInstance) {
String str = singularInstance.getSingularConfig().facebookAppId;
if (Utils.isEmptyOrNull(str)) {
ApiStartSession.logger.error("facebookAppId is not set");
return;
}
String str2 = singularInstance.getDeviceInfo().fbAttributionId;
if (Utils.isEmptyOrNull(str2)) {
ApiStartSession.logger.error("fbAttributionId is not available");
return;
}
try {
JSONObject jSONObject = new JSONObject();
jSONObject.put("fb_app_attribution", str2);
jSONObject.put("fb_app_ids", str);
singularInstance.logEvent(new ApiSubmitEvent.RawEvent("__FBInstall", jSONObject.toString()));
} catch (JSONException e) {
ApiStartSession.logger.error("error in handleInstallFacebook()", e);
}
}
public void handleDDL(SingularInstance singularInstance, String str, String str2) {
singularInstance.getSingularConfig().getClass();
ApiStartSession.logger.error("DDLHandler is not configured, ignoring callback for url = %s", str);
}
}
public static class Params extends SingularMap {
public static Params build(long j, SingularInstance singularInstance) {
return new Params().withId(j).withSingularConfig(singularInstance.getSingularConfig()).withDeviceInfo(singularInstance.getDeviceInfo()).withConnectionType(Utils.getConnectionType(singularInstance.getContext())).withAppInstallInfo(singularInstance.getContext());
}
public final Params withId(long j) {
put("s", String.valueOf(j));
return this;
}
public final Params withConnectionType(String str) {
put("c", str);
return this;
}
public final Params withSingularConfig(SingularConfig singularConfig) {
put("a", singularConfig.apiKey);
Uri uri = singularConfig.openUri;
if (uri != null) {
put("ref", uri.getQueryParameter("referrer"));
put("extra", uri.getQuery());
}
put("ddl_enabled", "false");
Uri uri2 = singularConfig.singularLink;
if (uri2 != null) {
if (Utils.validateSingularLink(uri2)) {
boolean isShortLink = Utils.isShortLink(singularConfig.singularLink);
if (!isShortLink) {
Utils.handleSingularLink(singularConfig.singularLink);
}
put("singular_link", singularConfig.singularLink.toString());
put("singular_link_resolve_timeout", String.valueOf(singularConfig.shortlinkTimeoutSec));
put("singular_link_resolve_required", String.valueOf(isShortLink));
}
singularConfig.singularLink = null;
}
return this;
}
public final Params withDeviceInfo(DeviceInfo deviceInfo) {
put(ImpressionData.IMPRESSION_DATA_KEY_ABTEST, deviceInfo.abi);
put("av", deviceInfo.appVersion);
put(TtmlNode.TAG_BR, deviceInfo.deviceBrand);
put(DownloadCommon.DOWNLOAD_REPORT_DOWNLOAD_ERROR, deviceInfo.deviceBuild);
put(i.a, deviceInfo.packageName);
put("ma", deviceInfo.deviceManufacturer);
put("mo", deviceInfo.deviceModel);
put(nb.q, deviceInfo.appName);
put(TtmlNode.TAG_P, deviceInfo.platform);
put("pr", deviceInfo.buildProduct);
put("sdk", Utils.getSdkVersion());
if (!Utils.isEmptyOrNull(deviceInfo.aifa)) {
put("aifa", deviceInfo.aifa);
put(CampaignEx.JSON_KEY_AD_K, "AIFA");
put("u", deviceInfo.aifa);
} else if (!Utils.isEmptyOrNull(deviceInfo.imei)) {
put("imei", deviceInfo.imei);
put(CampaignEx.JSON_KEY_AD_K, "IMEI");
put("u", deviceInfo.imei);
put("andi", deviceInfo.andi);
} else {
put(CampaignEx.JSON_KEY_AD_K, "ANDI");
put("u", deviceInfo.andi);
}
put("dnt", deviceInfo.isGooglePlayServicesAvailable ? deviceInfo.isLimitedTrackingEnabled ? "1" : "0" : "-1");
put(Consts.KEY_TAPJOY_USER_ID_VERSION, deviceInfo.osVersion);
if (!Utils.isEmptyOrNull(deviceInfo.installSource)) {
put("src", deviceInfo.installSource);
}
if (!Utils.isEmptyOrNull(deviceInfo.gcmRegId)) {
put("ri", deviceInfo.gcmRegId);
}
if (!Utils.isEmptyOrNull(deviceInfo.fcmRegId)) {
put("fi", deviceInfo.fcmRegId);
}
if (deviceInfo.hasPreloadCampaign()) {
put("apc", deviceInfo.preloadCampaign);
put("apg", deviceInfo.preloadGroup);
put("aps", deviceInfo.preloadSource);
}
put("lc", Locale.getDefault().toString());
put("install_time", Long.valueOf(deviceInfo.firstInstallTime).toString());
put("update_time", Long.valueOf(deviceInfo.lastUpdateTime).toString());
put("current_device_time", Long.valueOf(Utils.getCurrentTimeMillis()).toString());
put("device_type", deviceInfo.deviceType);
put("custom_user_id", deviceInfo.customUserId);
if (!Utils.isEmptyOrNull(deviceInfo.deviceUserAgent)) {
put("device_user_agent", deviceInfo.deviceUserAgent);
}
return this;
}
public final Params withAppInstallInfo(Context context) {
if (Utils.isFirstInstall(context)) {
put("is", "true");
} else {
put("is", "false");
}
return this;
}
}
}