package com.glu.plugins.gluanalytics; import android.content.ContentResolver; import android.content.Context; import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.net.Uri; import android.os.Handler; import android.os.Looper; import android.os.Message; import android.provider.Settings; import android.text.TextUtils; import androidx.annotation.NonNull; import androidx.core.app.NotificationCompat; import com.amazonaws.util.IOUtils; import com.ea.nimble.pushtng.PushNotification; import com.facebook.gamingservices.cloudgaming.internal.SDKConstants; import com.facebook.share.internal.ShareConstants; import com.fyber.inneractive.sdk.external.InneractiveMediationDefs; import com.glu.plugins.gluanalytics.AnalyticsData; import com.glu.plugins.gluanalytics.eventbus.GluEventBus; import com.glu.plugins.gluanalytics.kvstore.StringStore; import com.glu.plugins.gluanalytics.network.GluTLS12SocketFactory; import com.glu.plugins.gluanalytics.network.NetworkReachability; import com.glu.plugins.gluanalytics.util.CollectionUtil; import com.glu.plugins.gluanalytics.util.Common; import com.glu.plugins.gluanalytics.util.ConfigUtil; import com.glu.plugins.gluanalytics.util.Conversion; import com.glu.plugins.gluanalytics.util.Crypto; import com.glu.plugins.gluanalytics.util.GoogleAdvertisingIDUtil; import com.glu.plugins.gluanalytics.util.YLogger; import com.google.android.gms.appset.AppSet; import com.google.android.gms.appset.AppSetIdInfo; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.Task; import com.google.firebase.perf.network.FirebasePerfUrlConnection; import com.ironsource.ad; import com.ironsource.nb; import com.mbridge.msdk.foundation.same.report.i; import com.mbridge.msdk.foundation.tools.SameMD5; import com.mbridge.msdk.newreward.function.common.MBridgeCommon; import com.mbridge.msdk.playercommon.exoplayer2.text.ttml.TtmlNode; import com.unity3d.ads.core.domain.GetAndroidAdPlayerContext; import csdk.gluads.Consts; import java.io.BufferedInputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.math.BigDecimal; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; import java.net.UnknownHostException; import java.nio.charset.Charset; import java.security.InvalidKeyException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; import java.util.UUID; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; import javax.crypto.ShortBufferException; import javax.net.ssl.HttpsURLConnection; import org.json.JSONException; import org.json.JSONStringer; /* loaded from: classes2.dex */ public class GluAnalytics extends Handler implements IAnalytics, IAnalyticsParametersGetter { private static final int ARG1_APP_RESUME = 20; private static final int ARG1_APP_START = 10; private static final long HEARTBEAT_PERIOD_MS = 30000; public static final String KEY_INTERNAL_TARGETED_ADS = "internalTargetedAds"; public static final String KEY_USAGE_SHARING = "usageSharing"; private static final String LOG_EVENT_SOURCE_CLIENT = "SDK_CUSTOM"; private static final String LOG_EVENT_SOURCE_SDK = "SDK_STANDARD"; private static final int MESSAGE_DESTROY = 110; private static final int MESSAGE_HEARTBEAT = 60; private static final int MESSAGE_LOG_CPU_EVENT = 140; private static final int MESSAGE_LOG_EVT_EVENT = 30; private static final int MESSAGE_LOG_EVT_EVENT_WITH_GCS_USER = 190; private static final int MESSAGE_LOG_EVT_PINPOINT = 210; private static final int MESSAGE_LOG_MTU_EVENT = 40; private static final int MESSAGE_LOG_MTU_EVENT_TO_PENGUIN = 50; private static final int MESSAGE_PERFORMANCE_EVENT = 180; private static final int MESSAGE_PPS_UPDATE_VALUE = 80; private static final int MESSAGE_SESSION_ID = 160; private static final int MESSAGE_SET_REVID = 100; private static final int MESSAGE_SET_SESSION_ID = 170; private static final int MESSAGE_SET_USER_ID = 130; private static final int MESSAGE_START_SESSION = 10; private static final int MESSAGE_START_SESSION_REAL = 200; private static final int MESSAGE_STOP_SESSION = 20; private static final String PWD_CRYPTO_CHECKSUM = "appinstalled"; private static final long SESSION_ID_PERIOD_MS = 60000; private static final String SPKEY_APP_INSTALLED = "appinstalled"; private static final String SPKEY_DEVICE_ID = "analyticsDeviceIdentifier"; private static final String SPKEY_DEVICE_ID_CHECKSUM = "analyticsDeviceIdentifierCheck"; private static final String SPKEY_LAST_LAUNCH_TIMESTAMP = "lastLaunchTimestamp"; private static final String SPKEY_REVID = "revid"; private static final String SPKEY_REVID_CHECKSUM = "revidChecksum"; private static final String SPKEY_REVID_SYNCED = "revidSynced"; private static final String SPKEY_SESSION_COUNT = "sessionCount"; private static final String SPKEY_SESSION_ID = "sessionID"; private Boolean mAdTrackingLimited; private String mAmazonAdvertisingId; private boolean mAmazonLimitAdTracking; private final IRecordStream mAnalyticsRecordStream; private final String mAnalyticsStreamName; private String mAndroidId; private final String mAppName; private String mAppSetId; private final Context mApplicationContext; private CacheService mCacheService; private IAnalyticsCallback mCallback; private List mCriticalEventList; private final AtomicReference mDeviceId; private final String mEnvironment; private ExecutorService mExecutor; private final Map mExtraFields; private final AtomicReference mGeoLocation; private final URL mGeoLookUpUrl; private String mGoogleAdvertisingId; private boolean mInternalTargetedAds; private boolean mIsAmazonDevice; private final YLogger mLog; private NetworkReachability mNetworkReachability; private final boolean mOneWayHashUID; private final String mPPSAppName; private final IRecordStream mPPSRecordStream; private final String mPPSStreamName; private final Map mPartialCpuData; private IPerformance mPerformance; private GluAnalyticsPinpoint mPinpointImpl; private final AtomicReference mRevID; private final boolean mRevIDEnabled; private final Map mRuntimeConfig; private final boolean mSendGeoEvent; private final boolean mSendPenguinMTU; private final AtomicReference mSessionID; private final String mSessionIDBaseAddress; private long mSessionLimitOrphanEvent; private final AtomicBoolean mSessionStopCalled; private final SharedPreferences mSharedPrefs; private boolean mShortcircuitEATargetedMarketing; private final boolean mTomographyEnabled; private final String mUnityVersion; private boolean mUsageSharing; private boolean mut_appForeground; private String mut_userId; @Override // com.glu.plugins.gluanalytics.IAnalyticsParametersGetter public String getAnalyticsApplicationName() { return this.mAppName; } @Override // com.glu.plugins.gluanalytics.IAnalyticsParametersGetter public String getAnalyticsEnvironment() { return this.mEnvironment; } @Override // com.glu.plugins.gluanalytics.IAnalytics public void shortcircuitEATargetedMarketingOff() { this.mShortcircuitEATargetedMarketing = true; } public GluAnalytics(Context context, Looper looper, String str, String str2, String str3, Map map, URL url, String str4, SharedPreferences sharedPreferences, IRecordStream iRecordStream, String str5, IRecordStream iRecordStream2, String str6, String str7, String str8, String str9, IPerformance iPerformance, long j, boolean z, boolean z2, boolean z3, boolean z4, List list, CacheService cacheService, boolean z5, boolean z6) { super(looper); this.mLog = YLogger.create(getClass()); Context applicationContext = context.getApplicationContext(); this.mApplicationContext = applicationContext; this.mGeoLookUpUrl = url; AtomicReference atomicReference = new AtomicReference<>(); this.mDeviceId = atomicReference; this.mRevID = new AtomicReference<>(new RevIDInfo(null, false)); this.mSessionID = new AtomicReference<>(); this.mExtraFields = buildExtraFields(str, str2, str3, str8, str9, map); this.mPartialCpuData = buildPartialCpuData(map); this.mSharedPrefs = sharedPreferences; this.mAnalyticsRecordStream = iRecordStream; this.mAnalyticsStreamName = str5; this.mAppName = str; this.mEnvironment = str2; this.mRevIDEnabled = z; this.mut_userId = z2 ? ConfigUtil.getString(map, AnalyticsData.S_USER_ID) : null; this.mSessionStopCalled = new AtomicBoolean(false); this.mExecutor = Executors.newFixedThreadPool(2); this.mPPSRecordStream = iRecordStream2; this.mPPSStreamName = str6; this.mPPSAppName = str7; this.mSessionIDBaseAddress = str4; this.mSessionLimitOrphanEvent = j; this.mRuntimeConfig = CollectionUtil.shallowClone(map); this.mUnityVersion = ConfigUtil.getString(map, AnalyticsData.S_UNITY_VERSION, null); this.mNetworkReachability = new NetworkReachability(applicationContext); this.mGeoLocation = new AtomicReference<>(null); this.mPerformance = iPerformance; if (iPerformance != null) { iPerformance.internal_SetAnalytics(this); } this.mCacheService = cacheService; this.mTomographyEnabled = z3; this.mSendPenguinMTU = z4; this.mOneWayHashUID = z5; this.mSendGeoEvent = z6; this.mCriticalEventList = list; this.mUsageSharing = sharedPreferences.getBoolean(KEY_USAGE_SHARING, true); this.mInternalTargetedAds = sharedPreferences.getBoolean(KEY_INTERNAL_TARGETED_ADS, true); this.mShortcircuitEATargetedMarketing = false; String string = sharedPreferences.getString(SPKEY_DEVICE_ID, null); if (isEmptyDeviceId(string)) { return; } atomicReference.set(string); } public void enablePinpoint(GluEventBus gluEventBus) { this.mPinpointImpl = new GluAnalyticsPinpoint(gluEventBus, this); } @Override // com.glu.plugins.gluanalytics.IAnalytics public void init(IAnalyticsCallback iAnalyticsCallback) { this.mLog.i("GLUANALYTICS.INIT", new Object[0]); this.mCallback = iAnalyticsCallback; sendMessageAtFrontOfQueue(obtainMessage(10, 10, 0)); } @Override // com.glu.plugins.gluanalytics.IAnalytics public void destroy() { this.mLog.i("GLUANALYTICS.DESTROY", new Object[0]); sendMessage(obtainMessage(110)); IPerformance iPerformance = this.mPerformance; if (iPerformance != null) { iPerformance.destroy(); } CacheService cacheService = this.mCacheService; if (cacheService != null) { cacheService.destroy(); this.mCacheService = null; } GluAnalyticsPinpoint gluAnalyticsPinpoint = this.mPinpointImpl; if (gluAnalyticsPinpoint != null) { gluAnalyticsPinpoint.destroy(); this.mPinpointImpl = null; } } @Override // com.glu.plugins.gluanalytics.IAnalytics public void onResume() { this.mLog.i("LIFECYCLE.RESUME", new Object[0]); sendMessage(obtainMessage(10, 20, 0)); IPerformance iPerformance = this.mPerformance; if (iPerformance != null) { iPerformance.onResume(); } } @Override // com.glu.plugins.gluanalytics.IAnalytics public void onPause() { this.mLog.i("LIFECYCLE.PAUSE", new Object[0]); sendEmptyMessage(20); IPerformance iPerformance = this.mPerformance; if (iPerformance != null) { iPerformance.onPause(); } } @Override // com.glu.plugins.gluanalytics.IAnalytics public void perfSampleStart(String str, int i, Map map) { IPerformance iPerformance = this.mPerformance; if (iPerformance != null) { iPerformance.perfSampleStart(str, i, map); } } @Override // com.glu.plugins.gluanalytics.IAnalytics public void perfSampleEnd(String str, Map map) { IPerformance iPerformance = this.mPerformance; if (iPerformance != null) { iPerformance.perfSampleEnd(str, map); } } @Override // com.glu.plugins.gluanalytics.IAnalytics public PerfMeasure perfGetValues() { IPerformance iPerformance = this.mPerformance; if (iPerformance == null) { return new PerfMeasure(); } return iPerformance.perfGetValues(); } @Override // com.glu.plugins.gluanalytics.IAnalytics public boolean perfSampleAction(String str, int i) { IPerformance iPerformance = this.mPerformance; if (iPerformance == null) { return false; } return iPerformance.perfSampleAction(str, i); } @Override // com.glu.plugins.gluanalytics.IAnalytics public void logEvent(String str, String str2, String str3, String str4, Long l, Long l2, Map map) { List list; if (!this.mUsageSharing && ((list = this.mCriticalEventList) == null || !list.contains(str))) { return; } sendMessage(obtainMessage(30, beginJsonEvent("evt", str, str2, str3, str4, l, l2, map, LOG_EVENT_SOURCE_CLIENT))); } @Override // com.glu.plugins.gluanalytics.IAnalytics public void internal_logCpuEvent(Map map) { sendMessage(obtainMessage(140, map)); } @Override // com.glu.plugins.gluanalytics.IAnalytics public void internal_logEvent_adImpression(String str, String str2, String str3, String str4, BigDecimal bigDecimal, Long l, Map map) { sendMessage(obtainMessage(30, beginJsonEvent("evt", str, str2, str3, str4, bigDecimal, l, map, LOG_EVENT_SOURCE_SDK))); } @Override // com.glu.plugins.gluanalytics.IAnalytics public void internal_logEvent(String str, String str2, String str3, String str4, Long l, Long l2, Map map) { String string; JSONStringer beginJsonEvent = beginJsonEvent("evt", str, str2, str3, str4, l, l2, map, LOG_EVENT_SOURCE_SDK); String str5 = this.mut_userId; if ((str5 == null || TextUtils.isEmpty(str5)) && (string = ConfigUtil.getString(map, "gluCentralServicesUserID")) != null && !TextUtils.isEmpty(string)) { sendMessage(obtainMessage(190, new LogEventWithGCSUser(beginJsonEvent, string))); } else { sendMessage(obtainMessage(30, beginJsonEvent)); } } @Override // com.glu.plugins.gluanalytics.IAnalytics public GeoLocation getGeoLocation() { return this.mGeoLocation.get(); } private String buildMarketingHash(String str, String str2, String str3, String str4, String str5, String str6) { String format = String.format("%s%s%s%s%s%s", str, str2, str3, str4, str5, str6); try { MessageDigest messageDigest = MessageDigest.getInstance(SameMD5.TAG); messageDigest.update(format.getBytes()); byte[] digest = messageDigest.digest(); StringBuffer stringBuffer = new StringBuffer(); for (byte b : digest) { stringBuffer.append(String.format("%02X", Byte.valueOf(b))); } return stringBuffer.toString(); } catch (NoSuchAlgorithmException e) { throw Common.propagate(e); } } @Override // com.glu.plugins.gluanalytics.IAnalytics public void internal_updatePSValue(String str, boolean z, String str2, String str3, String str4, String str5, String str6, String str7) { String createReqId; String str8 = z ? "DPS" : "PPS"; try { JSONStringer beginJsonEvent = beginJsonEvent("p_eng", str2, str8, "UPDATE", this.mPPSAppName, str5, str4, null, LOG_EVENT_SOURCE_SDK); if (TextUtils.isEmpty(str7)) { createReqId = createReqIdAndForwardToGCS(str8, str, str2, str3, str4, str5, str6); } else { createReqId = createReqId(str8, str, str2, str4, str5); } CollectionUtil.putIfNotEmpty(beginJsonEvent, "su", str6); CollectionUtil.putIfNotEmpty(beginJsonEvent, "c", str3); CollectionUtil.putIfNotEmpty(beginJsonEvent, "req_id", createReqId); sendMessage(obtainMessage(80, new PSValueUpdate(beginJsonEvent, str, z))); } catch (JSONException e) { throw Common.propagate(e); } } @Override // com.glu.plugins.gluanalytics.IAnalytics public void internal_pinpointAttribute(String str, String str2, String str3, Map map) { try { if (TextUtils.isEmpty(str3)) { str3 = this.mut_userId; } JSONStringer beginJsonEvent = beginJsonEvent(str.equals(NotificationCompat.CATEGORY_EVENT) ? "mkt_event" : "mkt", str, "MKT", "UPDATE", this.mPPSAppName, str2, "string", map, LOG_EVENT_SOURCE_SDK); String buildMarketingHash = buildMarketingHash(getAnalyticsApplicationName(), str3, str, "string", str2, getAnalyticsDeviceIdentifier()); CollectionUtil.putIfNotEmpty(beginJsonEvent, "su", "upsert"); CollectionUtil.putIfNotEmpty(beginJsonEvent, "req_id", buildMarketingHash); sendMessage(obtainMessage(210, new PSValueUpdate(beginJsonEvent, str3, false))); } catch (JSONException e) { throw Common.propagate(e); } } @Override // com.glu.plugins.gluanalytics.IAnalytics public void userAgedUp() { HashMap hashMap = new HashMap(); hashMap.put(KEY_INTERNAL_TARGETED_ADS, Boolean.TRUE); setCustomProperties(hashMap); } @Override // com.glu.plugins.gluanalytics.IAnalytics public void setEATargetedMarketing(boolean z) { HashMap hashMap = new HashMap(); hashMap.put(KEY_INTERNAL_TARGETED_ADS, Boolean.valueOf(z)); setCustomProperties(hashMap); } private String createReqId(String str, String str2, String str3, String str4, String str5) { return buildMarketingHash(getAnalyticsApplicationName(), str.equals("PPS") ? str2 : "", str3, str4, str5, str.equals("PPS") ? "" : getAnalyticsDeviceIdentifier()); } private String createReqIdAndForwardToGCS(String str, String str2, String str3, String str4, String str5, String str6, String str7) { String createReqId = createReqId(str, str2, str3, str5, str6); this.mCallback.recordAnalyticsRequest(str, str3, str4, str5, str6, str7, createReqId); return createReqId; } @Override // com.glu.plugins.gluanalytics.IAnalytics public void internal_setRevID(String str, String str2, boolean z) { HashMap hashMap = new HashMap(); hashMap.put(SPKEY_REVID, str); hashMap.put("initialPlatform", str2); sendMessage(obtainMessage(100, z ? 1 : 0, 0, hashMap)); } @Override // com.glu.plugins.gluanalytics.IAnalytics public void internal_trackRevenueInUsd(double d, String str, String str2, String str3, Map map) { Long valueOf = Long.valueOf(Conversion.usdToCents(d)); if (map != null && map.containsKey("ft") && map.get("ft").equals(1)) { valueOf = null; } Long l = valueOf; sendMessage(obtainMessage(40, beginJsonEvent("mtu", null, str, str2, str3, l, null, map, LOG_EVENT_SOURCE_SDK))); if (this.mSendPenguinMTU) { Map createMap = CollectionUtil.createMap(); CollectionUtil.putAll(createMap, map); createMap.put("game_id", this.mPPSAppName); sendMessage(obtainMessage(50, beginJsonEvent("mtu", null, str, str2, str3, l, null, createMap, LOG_EVENT_SOURCE_SDK))); } } @Override // com.glu.plugins.gluanalytics.IAnalytics public void internal_perfEvent(String str, String str2, String str3, String str4, String str5, Map map) { if (!TextUtils.isEmpty(this.mUnityVersion)) { map.put("unity_ver", this.mUnityVersion); } sendMessage(obtainMessage(MESSAGE_PERFORMANCE_EVENT, beginJsonEvent("perf", str, str2, str3, str4, null, null, map, LOG_EVENT_SOURCE_SDK))); } @Override // com.glu.plugins.gluanalytics.IAnalytics public void setUserIdentifier(String str) { this.mLog.i("ID.USER.SET", SDKConstants.PARAM_USER_ID, str); sendMessage(obtainMessage(130, str)); } @Override // com.glu.plugins.gluanalytics.IAnalytics public void setCustomProperties(Map map) { boolean z; if (map != null) { if (map.containsKey(KEY_USAGE_SHARING)) { this.mUsageSharing = ConfigUtil.getBoolean(map, KEY_USAGE_SHARING, true); SharedPreferences.Editor edit = this.mSharedPrefs.edit(); edit.putBoolean(KEY_USAGE_SHARING, this.mUsageSharing); edit.apply(); internal_logEvent(null, "PRIVACY", this.mUsageSharing ? "USAGE_SHARING_ENABLED" : "USAGE_SHARING_DISABLED", null, null, null, null); } if (!map.containsKey(KEY_INTERNAL_TARGETED_ADS) || this.mShortcircuitEATargetedMarketing) { return; } boolean contains = this.mSharedPrefs.contains(KEY_INTERNAL_TARGETED_ADS); boolean z2 = this.mSharedPrefs.getBoolean(KEY_INTERNAL_TARGETED_ADS, true); this.mInternalTargetedAds = ConfigUtil.getBoolean(map, KEY_INTERNAL_TARGETED_ADS, true); SharedPreferences.Editor edit2 = this.mSharedPrefs.edit(); edit2.putBoolean(KEY_INTERNAL_TARGETED_ADS, this.mInternalTargetedAds); edit2.apply(); unsync_doUpdatePSValue(null, true, KEY_INTERNAL_TARGETED_ADS, null, "bool", this.mInternalTargetedAds ? "true" : "false", "upsert"); internal_logEvent(null, "PRIVACY", this.mInternalTargetedAds ? "INTERNAL_TARGETED_ADS_ENABLED" : "INTERNAL_TARGETED_ADS_DISABLED", null, null, null, null); if (!contains || z2 == (z = this.mInternalTargetedAds)) { return; } this.mCallback.internalTargetedAdsChanged(z); } } @Override // com.glu.plugins.gluanalytics.IAnalytics, com.glu.plugins.gluanalytics.IAnalyticsParametersGetter public Map getCustomProperties() { boolean z = this.mSharedPrefs.getBoolean(KEY_USAGE_SHARING, true); boolean z2 = this.mSharedPrefs.getBoolean(KEY_INTERNAL_TARGETED_ADS, true); if (this.mShortcircuitEATargetedMarketing) { z2 = false; } HashMap hashMap = new HashMap(); hashMap.put(KEY_USAGE_SHARING, Boolean.valueOf(z)); hashMap.put(KEY_INTERNAL_TARGETED_ADS, Boolean.valueOf(z2)); return hashMap; } @Override // com.glu.plugins.gluanalytics.IAnalyticsParametersGetter public String getAnalyticsDeviceIdentifier() { return this.mDeviceId.get(); } @Override // com.glu.plugins.gluanalytics.IAnalyticsParametersGetter public String getRevenueIdentifier() { RevIDInfo revIDInfo = this.mRevID.get(); if (revIDInfo != null) { return revIDInfo.id; } return null; } @Override // com.glu.plugins.gluanalytics.IAnalyticsParametersGetter public String getSessionIdentifier() { return this.mSessionID.get(); } @Override // android.os.Handler public void handleMessage(Message message) { boolean z; String str; int i = message.what; if (i == 10) { this.mLog.i("GLUANALYTICS.MESSAGE_START_SESSION", new Object[0]); Task appSetIdInfo = AppSet.getClient(this.mApplicationContext).getAppSetIdInfo(); final int i2 = message.arg1; appSetIdInfo.addOnCompleteListener(new OnCompleteListener() { // from class: com.glu.plugins.gluanalytics.GluAnalytics.1 @Override // com.google.android.gms.tasks.OnCompleteListener public void onComplete(@NonNull Task task) { if (task.isSuccessful()) { GluAnalytics.this.mAppSetId = task.getResult().getId(); } else { GluAnalytics.this.mLog.i("GLUANALYTICS.MESSAGE_START_SESSION.ERROR", "e", task.getException().getMessage()); GluAnalytics.this.mAppSetId = null; } GluAnalytics gluAnalytics = GluAnalytics.this; gluAnalytics.sendMessageAtFrontOfQueue(gluAnalytics.obtainMessage(200, i2, 0)); } }); return; } if (i == 200) { this.mLog.i("GLUANALYTICS.MESSAGE_START_SESSION_REAL", new Object[0]); this.mut_appForeground = true; this.mSessionID.set(null); this.mSessionStopCalled.set(false); if (message.arg1 == 10) { this.mLog.i("GLUANALYTICS.appStart", new Object[0]); AnalyticsData.AdvertisingIdInfo advertisingIdInfo = GoogleAdvertisingIDUtil.getAdvertisingIdInfo(this.mApplicationContext); if (advertisingIdInfo != null) { this.mGoogleAdvertisingId = upperCase(advertisingIdInfo.advertisingId); this.mAdTrackingLimited = Boolean.valueOf(advertisingIdInfo.adTrackingLimited); } this.mAndroidId = upperCase(AnalyticsData.getAndroidId(this.mApplicationContext)); this.mIsAmazonDevice = false; try { ContentResolver contentResolver = this.mApplicationContext.getContentResolver(); this.mAmazonLimitAdTracking = Settings.Secure.getInt(contentResolver, "limit_ad_tracking") != 0; this.mAmazonAdvertisingId = Settings.Secure.getString(contentResolver, "advertising_id"); this.mIsAmazonDevice = true; } catch (Settings.SettingNotFoundException unused) { this.mIsAmazonDevice = false; this.mAmazonAdvertisingId = null; this.mAmazonLimitAdTracking = false; } DeviceIdInfo deviceId = getDeviceId(this.mSharedPrefs, this.mGoogleAdvertisingId, this.mAndroidId, this.mAppSetId, this.mAmazonAdvertisingId, UUID.randomUUID().toString()); this.mDeviceId.set(deviceId.deviceId); IPerformance iPerformance = this.mPerformance; if (iPerformance != null) { iPerformance.internal_LogLaunchOverhead(); } if (this.mRevIDEnabled) { RevIDInfo revID = getRevID(this.mSharedPrefs, deviceId.deviceId, this.mAndroidId); this.mRevID.set(revID); str = revID.id; z = revID.synced; } else { z = false; str = null; } this.mLog.i("LIFECYCLE.INIT.ID", "s", deviceId.deviceId, ShareConstants.FEED_SOURCE_PARAM, deviceId.source, "revID", str, "synced", Boolean.valueOf(z), "gaid", this.mGoogleAdvertisingId, "androidID", this.mAndroidId, "appSetId", this.mAppSetId); this.mCallback.onInit(deviceId.deviceId, deviceId.source, str, this.mGoogleAdvertisingId, this.mAndroidId, this.mAppSetId); unsync_doAppStart(); unsync_logDefaultSegmentationValues(this.mut_userId, this.mRuntimeConfig, true); this.mCallback.onUserIdChanged(this.mut_userId, str); sendDataToCacheService(); } Long[] lArr = new Long[2]; unsync_doLogEvent("evt", "SESSION_START", "APP", "SESSION_START", null, null, null, buildSessionStartData(this.mAndroidId, this.mGoogleAdvertisingId, this.mAppSetId, Boolean.valueOf(this.mIsAmazonDevice), Boolean.valueOf(this.mAmazonLimitAdTracking), this.mAdTrackingLimited, this.mNetworkReachability.getNetworkType(), this.mTomographyEnabled ? Long.valueOf(AnalyticsData.getDeviceBootTimeSec(lArr)) : null, lArr[0], lArr[1])); unsync_heartbeat(); unsync_sessionIDStart(getAnalyticsDeviceIdentifier()); return; } if (i == 20) { unsync_doStopSession(); unsync_flushNow(); this.mSessionStopCalled.set(true); this.mSessionID.set(null); unsync_sessionID(getAnalyticsDeviceIdentifier(), true); this.mut_appForeground = false; return; } if (i == 30) { unsync_endJsonEventAndLog(this.mAnalyticsRecordStream, this.mAnalyticsStreamName, (JSONStringer) message.obj); if (this.mSessionStopCalled.get()) { unsync_flushNow(); return; } return; } if (i == 190) { LogEventWithGCSUser logEventWithGCSUser = (LogEventWithGCSUser) message.obj; if (logEventWithGCSUser != null) { unsync_endJsonEventAndLog(this.mAnalyticsRecordStream, this.mAnalyticsStreamName, logEventWithGCSUser.json, logEventWithGCSUser.userID); if (this.mSessionStopCalled.get()) { unsync_flushNow(); return; } return; } return; } if (i == 80) { PSValueUpdate pSValueUpdate = (PSValueUpdate) message.obj; String str2 = !TextUtils.isEmpty(pSValueUpdate.userID) ? pSValueUpdate.userID : this.mut_userId; unsync_assertCanUpdatePSValue(str2, pSValueUpdate.isDeviceValue, pSValueUpdate.json); unsync_endJsonEventAndLog(this.mPPSRecordStream, this.mPPSStreamName, pSValueUpdate.json, str2); this.mPPSRecordStream.flush(); return; } if (i == 40) { unsync_endJsonEventAndLog(this.mAnalyticsRecordStream, this.mAnalyticsStreamName, (JSONStringer) message.obj); unsync_flushNow(); return; } if (i == 50) { JSONStringer jSONStringer = (JSONStringer) message.obj; try { unsync_endJsonEvent(jSONStringer, this.mut_userId); this.mPPSRecordStream.saveRecord(this.mPPSStreamName, jSONStringer.toString()); this.mPPSRecordStream.flush(); return; } catch (JSONException e) { throw Common.propagate(e); } } if (i == MESSAGE_PERFORMANCE_EVENT) { unsync_endJsonEventAndLog(this.mAnalyticsRecordStream, this.mAnalyticsStreamName, (JSONStringer) message.obj); unsync_flushNow(); return; } if (i == 60) { unsync_heartbeat(); return; } if (i == MESSAGE_SESSION_ID) { unsync_sessionIDStart(getAnalyticsDeviceIdentifier()); return; } if (i == MESSAGE_SET_SESSION_ID) { if (this.mut_appForeground) { String str3 = (String) message.obj; if (!TextUtils.equals(str3, this.mSessionID.getAndSet(str3))) { this.mLog.i("ID.SESSION.SET", "sessionID", str3); this.mCallback.onUpdateSessionId(); sendDataToCacheService(); } if (TextUtils.equals(str3, readLastSessionID(this.mSharedPrefs))) { return; } writeLastSessionID(this.mSharedPrefs, str3); SharedPreferences sharedPreferences = this.mSharedPrefs; writeSessionCount(sharedPreferences, readSessionCount(sharedPreferences) + 1); return; } return; } if (i == 100) { Map map = (Map) message.obj; String str4 = (String) map.get(SPKEY_REVID); String str5 = (String) map.get("initialPlatform"); boolean z2 = message.arg1 != 0; if (TextUtils.isEmpty(str4)) { this.mLog.e("ID.REVID.ERROR", "e", "revID can't be empty"); return; } RevIDInfo andSet = this.mRevID.getAndSet(new RevIDInfo(str4, z2)); if (TextUtils.equals(str4, andSet.id)) { return; } sendDataToCacheService(); writeRevID(this.mSharedPrefs, str4, z2, this.mAndroidId); this.mLog.i("ID.REVID.SET", "revID", str4, "synced", Boolean.valueOf(z2)); boolean z3 = readSessionCount(this.mSharedPrefs) <= this.mSessionLimitOrphanEvent; if (TextUtils.isEmpty(andSet.id) || andSet.synced || !z2 || !z3) { return; } this.mLog.i("ID.REVID.ORPHAN", "revID", str4, "oldRevID", andSet.id); HashMap hashMap = new HashMap(); hashMap.put(SPKEY_REVID, andSet.id); hashMap.put("initialPlatform", str5); unsync_doLogEvent("evt", null, "SDK", "ORPHAN_REVID", null, null, null, hashMap); return; } if (i == 110) { this.mCallback.onDestroy(); return; } if (i == 130) { String str6 = (String) message.obj; String str7 = this.mut_userId; this.mut_userId = str6; if (TextUtils.equals(str6, str7)) { return; } this.mCallback.onUserIdChanged(this.mut_userId, getRevenueIdentifier()); unsync_logDefaultSegmentationValues(str6, this.mRuntimeConfig, false); sendDataToCacheService(); return; } if (i == 140) { unsync_doLogEvent("cpu", null, "SDK", null, null, null, null, (Map) message.obj); unsync_flushNow(); } else { if (i == 210) { PSValueUpdate pSValueUpdate2 = (PSValueUpdate) message.obj; unsync_assertCanUpdatePSValue(pSValueUpdate2.userID, pSValueUpdate2.isDeviceValue, pSValueUpdate2.json); unsync_endJsonEventAndLog(this.mPPSRecordStream, this.mPPSStreamName, pSValueUpdate2.json, pSValueUpdate2.userID); this.mPPSRecordStream.flush(); return; } this.mLog.e("ASYNC.MESSAGE.ERROR", InneractiveMediationDefs.GENDER_MALE, "Unknown message", Consts.KEY_TAPJOY_USER_ID_VERSION, Integer.valueOf(i)); } } private static String[] flatten(Map map) { String[] strArr = new String[map.size() * 2]; int i = 0; for (Map.Entry entry : map.entrySet()) { int i2 = i + 1; strArr[i] = entry.getKey(); i += 2; strArr[i2] = entry.getValue(); } return strArr; } private static String upperCase(String str) { if (str != null) { return str.toUpperCase(Locale.ENGLISH); } return null; } private static DeviceIdInfo getDeviceId(SharedPreferences sharedPreferences, String str, String str2, String str3, String str4, String str5) { String str6; String readAnalyticsDeviceIdentifier = readAnalyticsDeviceIdentifier(sharedPreferences, str2); if (!isEmptyDeviceId(readAnalyticsDeviceIdentifier)) { return new DeviceIdInfo(upperCase(readAnalyticsDeviceIdentifier), "sharedPreferences"); } if (!isEmptyDeviceId(str)) { str6 = "googleAdvertisingID"; } else if (!isEmptyDeviceId(str4)) { str = "AMID-" + str4; str6 = "amazonId"; } else if (!isEmptyDeviceId(str3)) { str = "ASID-" + str3; str6 = "appSetId"; } else if (!isEmptyDeviceId(str2)) { str6 = "androidID"; str = str2; } else if (isEmptyDeviceId(str5)) { str = null; str6 = "none"; } else { str = "UUID-" + str5; str6 = "uuid"; } String upperCase = upperCase(str); writeAnalyticsDeviceIdentifier(sharedPreferences, upperCase, str2); return new DeviceIdInfo(upperCase, str6); } @NonNull private static RevIDInfo getRevID(SharedPreferences sharedPreferences, String str, String str2) { RevIDInfo readRevID = readRevID(sharedPreferences, str2); if (readRevID != null && !TextUtils.isEmpty(readRevID.id)) { return readRevID; } RevIDInfo revIDInfo = new RevIDInfo(String.format(Locale.ENGLISH, "%s_%d", str, Long.valueOf(timestampSec())), false); writeRevID(sharedPreferences, revIDInfo.id, revIDInfo.synced, str2); return revIDInfo; } private static boolean isEmptyDeviceId(String str) { return str == null || str.replaceAll("[-0]", "").length() == 0; } private static String analyticsDeviceIdentifierVerifyString(String str, String str2) { StringBuilder sb = new StringBuilder(); sb.append(str); if (str2 == null) { str2 = ""; } sb.append(str2); return sb.toString(); } private static String readAnalyticsDeviceIdentifier(SharedPreferences sharedPreferences, String str) { String string = sharedPreferences.getString(SPKEY_DEVICE_ID, null); String string2 = sharedPreferences.getString(SPKEY_DEVICE_ID_CHECKSUM, null); if (string == null || string2 == null || !hmacSHA256(analyticsDeviceIdentifierVerifyString(string, str), "appinstalled").equalsIgnoreCase(string2)) { return null; } return string; } private static void writeAnalyticsDeviceIdentifier(SharedPreferences sharedPreferences, String str, String str2) { SharedPreferences.Editor edit = sharedPreferences.edit(); if (str == null) { edit.remove(SPKEY_DEVICE_ID).remove(SPKEY_DEVICE_ID_CHECKSUM); } else { edit.putString(SPKEY_DEVICE_ID, str).putString(SPKEY_DEVICE_ID_CHECKSUM, hmacSHA256(analyticsDeviceIdentifierVerifyString(str, str2), "appinstalled")); } edit.apply(); } private static String revIDVerifyString(String str, boolean z, String str2) { Object[] objArr = new Object[3]; objArr[0] = str; objArr[1] = Boolean.valueOf(z); if (str2 == null) { str2 = ""; } objArr[2] = str2; return String.format("%s-%s-%s", objArr); } private static RevIDInfo readRevID(SharedPreferences sharedPreferences, String str) { String string = sharedPreferences.getString(SPKEY_REVID, null); boolean z = sharedPreferences.getBoolean(SPKEY_REVID_SYNCED, false); String string2 = sharedPreferences.getString(SPKEY_REVID_CHECKSUM, null); if (string == null || string2 == null || !hmacSHA256(revIDVerifyString(string, z, str), "appinstalled").equalsIgnoreCase(string2)) { return null; } return new RevIDInfo(string, z); } private static void writeRevID(SharedPreferences sharedPreferences, String str, boolean z, String str2) { SharedPreferences.Editor edit = sharedPreferences.edit(); if (str == null) { edit.remove(SPKEY_REVID).remove(SPKEY_REVID_CHECKSUM).remove(SPKEY_REVID_SYNCED); } else { edit.putString(SPKEY_REVID, str).putBoolean(SPKEY_REVID_SYNCED, z).putString(SPKEY_REVID_CHECKSUM, hmacSHA256(revIDVerifyString(str, z, str2), "appinstalled")); } edit.apply(); } private static void writeSessionCount(SharedPreferences sharedPreferences, long j) { SharedPreferences.Editor edit = sharedPreferences.edit(); edit.putLong(SPKEY_SESSION_COUNT, j); edit.apply(); } public static long readSessionCount(SharedPreferences sharedPreferences) { return sharedPreferences.getLong(SPKEY_SESSION_COUNT, 0L); } public static void writeLastSessionID(SharedPreferences sharedPreferences, String str) { SharedPreferences.Editor edit = sharedPreferences.edit(); edit.putString("sessionID", str); edit.apply(); } public static String readLastSessionID(SharedPreferences sharedPreferences) { return sharedPreferences.getString("sessionID", ""); } private static String hmacSHA256(String str, String str2) { byte[] bytes = str2.getBytes(Charset.forName("UTF-8")); byte[] bytes2 = str.getBytes(Charset.forName("UTF-8")); byte[] bArr = new byte[32]; try { try { Crypto.hmacSHA256(bytes2, 0, bytes2.length, bytes, bArr, 0); Arrays.fill(bytes, (byte) 0); Arrays.fill(bytes2, (byte) 0); return upperCase(Common.printBytes(bArr, 0, 32)); } catch (Throwable th) { Arrays.fill(bytes, (byte) 0); Arrays.fill(bytes2, (byte) 0); throw th; } } catch (InvalidKeyException | NoSuchAlgorithmException | ShortBufferException e) { throw Common.propagate(e); } } private static Map buildExtraFields(String str, String str2, String str3, String str4, String str5, Map map) { Map createMap = CollectionUtil.createMap(); CollectionUtil.putIfNotEmpty((Map) createMap, "kt_v", ConfigUtil.getString(map, AnalyticsData.S_LONG_SDK_VERSION)); CollectionUtil.putIfNotEmpty((Map) createMap, "v_maj", ConfigUtil.getString(map, AnalyticsData.S_APPLICATION_VERSION)); CollectionUtil.putIfNotEmpty((Map) createMap, "v_min", str3); CollectionUtil.putIfNotEmpty((Map) createMap, "v_rev", ConfigUtil.getString(map, AnalyticsData.S_APPLICATION_VERSION_CODE)); CollectionUtil.putIfNotEmpty((Map) createMap, "game_name", str); CollectionUtil.putIfNotEmpty((Map) createMap, nb.o, str2); Map createMap2 = CollectionUtil.createMap(); String[] strArr = {"apa", "evt", "mtu", "pgr", "perf"}; String[] flatten = flatten(createMap); for (int i = 0; i < 5; i++) { createMap2.put(strArr[i], flatten); } Map shallowClone = CollectionUtil.shallowClone(createMap); CollectionUtil.putIfNotEmpty((Map) shallowClone, ad.y, ConfigUtil.getString(map, AnalyticsData.S_OS_VERSION)); CollectionUtil.putIfNotEmpty((Map) shallowClone, "d", ConfigUtil.getString(map, "deviceModel")); CollectionUtil.putIfNotEmpty((Map) shallowClone, InneractiveMediationDefs.GENDER_MALE, ConfigUtil.getString(map, "deviceManufacturer")); CollectionUtil.putIfNotEmpty((Map) shallowClone, "c", ConfigUtil.getString(map, AnalyticsData.S_CARRIER_NAME)); createMap2.put("cpu", flatten(shallowClone)); Map createMap3 = CollectionUtil.createMap(); CollectionUtil.putIfNotEmpty((Map) createMap3, ad.y, str4); CollectionUtil.putIfNotEmpty((Map) createMap3, "game_name", str); CollectionUtil.putIfNotEmpty((Map) createMap3, nb.o, str2); CollectionUtil.putIfNotEmpty((Map) createMap3, "tu", str5); String[] flatten2 = flatten(createMap3); createMap2.put("p_eng", flatten2); createMap2.put("glu_id", flatten2); createMap2.put("mkt", flatten2); return createMap2; } private static Map buildPartialCpuData(Map map) { Map createMap = CollectionUtil.createMap(); CollectionUtil.putIfNotEmpty((Map) createMap, TtmlNode.TAG_P, ConfigUtil.getString(map, AnalyticsData.S_DEVICE_NAME)); Long nullableLong = ConfigUtil.getNullableLong(map, AnalyticsData.S_DEVICE_TIER, null); boolean z = true; if (nullableLong != null) { createMap.put("tier", nullableLong); if (ConfigUtil.getBoolean(map, AnalyticsData.S_DEVICE_TIER_FALLBACK)) { createMap.put("tierfb", 1); CollectionUtil.putIfNotEmpty((Map) createMap, "gpuv", ConfigUtil.getString(map, AnalyticsData.S_GPU_VENDOR)); CollectionUtil.putIfNotEmpty((Map) createMap, "gpur", ConfigUtil.getString(map, AnalyticsData.S_GPU_RENDERER)); CollectionUtil.putIfNotNull(createMap, "cores", ConfigUtil.getNullableLong(map, "cpuCoreCount", null)); } } CollectionUtil.putIfNotEmpty((Map) createMap, "ln", ConfigUtil.getString(map, AnalyticsData.S_LOCALE_LANGUAGE_CODE)); List list = ConfigUtil.getList(map, AnalyticsData.S_SUPPORTED_ABIS); if (list != null) { StringBuilder sb = new StringBuilder(); for (Object obj : list) { if (!z) { sb.append(","); } sb.append(obj.toString()); z = false; } CollectionUtil.putIfNotEmpty((Map) createMap, "abi", sb.toString()); } return createMap; } private static Map buildSessionStartData(String str, String str2, String str3, Boolean bool, Boolean bool2, Boolean bool3, String str4, Long l, Long l2, Long l3) { Map createMap = CollectionUtil.createMap(); CollectionUtil.putIfNotEmpty((Map) createMap, "idfa", str2); CollectionUtil.putIfNotEmpty((Map) createMap, "android_id", str); CollectionUtil.putIfNotEmpty((Map) createMap, "app_set_id", str3); if (bool.booleanValue()) { createMap.put(PushNotification.DISABLED_REASON_OPT_OUT, Integer.valueOf(bool2.booleanValue() ? 1 : 0)); } else if (bool3 != null && bool3.booleanValue()) { createMap.put(PushNotification.DISABLED_REASON_OPT_OUT, 1); } CollectionUtil.putIfNotEmpty((Map) createMap, "conn_type", str4); if (l != null) { createMap.put("deviceBootTimeSec", Long.valueOf(l.longValue())); } if (l2 != null) { createMap.put("realtime", Long.valueOf(l2.longValue())); } if (l3 != null) { createMap.put("monotonicRaw", Long.valueOf(l3.longValue())); } return createMap; } private static long timestampSec() { return System.currentTimeMillis() / 1000; } /* JADX INFO: Access modifiers changed from: private */ public static String readBodyAsString(URLConnection uRLConnection) throws IOException { return IOUtils.toString(new BufferedInputStream(uRLConnection.getInputStream())); } /* JADX INFO: Access modifiers changed from: private */ public static void configureConnection(HttpsURLConnection httpsURLConnection) { GluTLS12SocketFactory.fixTLSPre21(httpsURLConnection); httpsURLConnection.setUseCaches(false); httpsURLConnection.setAllowUserInteraction(false); httpsURLConnection.setConnectTimeout(MBridgeCommon.DEFAULT_LOAD_TIMEOUT); httpsURLConnection.setReadTimeout(MBridgeCommon.DEFAULT_LOAD_TIMEOUT); } /* JADX INFO: Access modifiers changed from: private */ public URL buildSessionIDURL(String str) { try { return new URL(String.format("%s/v1/sessions/games/%s/devices/%s", this.mSessionIDBaseAddress, URLEncoder.encode(this.mPPSAppName, "UTF-8"), URLEncoder.encode(str, "UTF-8"))); } catch (UnsupportedEncodingException | MalformedURLException e) { throw Common.propagate(e); } } private JSONStringer beginUpdatePSValue(boolean z, String str, String str2, String str3, String str4, String str5) { String str6 = z ? "DPS" : "PPS"; try { JSONStringer beginJsonEvent = beginJsonEvent("p_eng", str, str6, "UPDATE", this.mPPSAppName, str4, str3, null, LOG_EVENT_SOURCE_SDK); CollectionUtil.putIfNotEmpty(beginJsonEvent, "su", str5); CollectionUtil.putIfNotEmpty(beginJsonEvent, "c", str2); CollectionUtil.putIfNotEmpty(beginJsonEvent, "req_id", createReqIdAndForwardToGCS(str6, this.mut_userId, str, str2, str3, str4, str5)); return beginJsonEvent; } catch (JSONException e) { throw Common.propagate(e); } } private void unsync_assertCanUpdatePSValue(String str, boolean z, JSONStringer jSONStringer) { if (!z) { if (TextUtils.isEmpty(str)) { this.mLog.e("PPS.UPDATE.ERROR", InneractiveMediationDefs.GENDER_MALE, "user ID is empty", Consts.KEY_TAPJOY_USER_ID_VERSION, jSONStringer.toString()); } } else if (TextUtils.isEmpty(getAnalyticsDeviceIdentifier())) { this.mLog.e("DPS.UPDATE.ERROR", InneractiveMediationDefs.GENDER_MALE, "s is empty", Consts.KEY_TAPJOY_USER_ID_VERSION, jSONStringer.toString()); } } private void unsync_doUpdatePSValue(String str, boolean z, String str2, String str3, String str4, String str5, String str6) { JSONStringer beginUpdatePSValue = beginUpdatePSValue(z, str2, str3, str4, str5, str6); unsync_assertCanUpdatePSValue(str, z, beginUpdatePSValue); unsync_endJsonEventAndLog(this.mPPSRecordStream, this.mPPSStreamName, beginUpdatePSValue, str); } /* JADX WARN: Code restructure failed: missing block: B:4:0x0009, code lost: if (r11.mSharedPrefs.getBoolean("appinstalled", false) == false) goto L8; */ /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct add '--show-bad-code' argument */ private void unsync_doAppStart() { /* r11 = this; java.lang.String r10 = "appinstalled" android.content.SharedPreferences r0 = r11.mSharedPrefs // Catch: java.lang.RuntimeException -> Lc r1 = 0 boolean r0 = r0.getBoolean(r10, r1) // Catch: java.lang.RuntimeException -> Lc if (r0 != 0) goto L3e goto L23 Lc: r0 = move-exception r6 = r0 com.glu.plugins.gluanalytics.util.YLogger r0 = r11.mLog java.lang.String r1 = "m" java.lang.String r2 = "bad-boolean-property" java.lang.String r3 = "k" java.lang.String r4 = "appinstalled" java.lang.String r5 = "e" java.lang.Object[] r1 = new java.lang.Object[]{r1, r2, r3, r4, r5, r6} java.lang.String r2 = "LIFECYCLE.INIT.ERROR" r0.e(r2, r1) L23: r9 = 0 java.lang.String r2 = "apa" r3 = 0 r4 = 0 r5 = 0 r6 = 0 r7 = 0 r8 = 0 r1 = r11 r1.unsync_doLogEvent(r2, r3, r4, r5, r6, r7, r8, r9) android.content.SharedPreferences r0 = r11.mSharedPrefs android.content.SharedPreferences$Editor r0 = r0.edit() r1 = 1 android.content.SharedPreferences$Editor r0 = r0.putBoolean(r10, r1) r0.apply() L3e: java.util.Map r0 = r11.mPartialCpuData java.util.Map r9 = com.glu.plugins.gluanalytics.util.CollectionUtil.shallowClone(r0) java.lang.String r0 = "idfa" java.lang.String r1 = r11.mGoogleAdvertisingId com.glu.plugins.gluanalytics.util.CollectionUtil.putIfNotEmpty(r9, r0, r1) java.lang.String r0 = "android_id" java.lang.String r1 = r11.mAndroidId com.glu.plugins.gluanalytics.util.CollectionUtil.putIfNotEmpty(r9, r0, r1) java.lang.String r0 = "asid" java.lang.String r1 = r11.mAppSetId com.glu.plugins.gluanalytics.util.CollectionUtil.putIfNotEmpty(r9, r0, r1) java.util.Map r0 = com.glu.plugins.gluanalytics.util.CollectionUtil.createMap() com.glu.plugins.gluanalytics.network.NetworkReachability r1 = r11.mNetworkReachability java.lang.String r1 = r1.getNetworkType() java.lang.String r2 = "conn_type" com.glu.plugins.gluanalytics.util.CollectionUtil.putIfNotEmpty(r0, r2, r1) java.lang.String r2 = "cpu" r3 = 0 r4 = 0 r5 = 0 r6 = 0 r7 = 0 r8 = 0 r1 = r11 r1.unsync_doLogEvent(r2, r3, r4, r5, r6, r7, r8, r9) java.lang.String r2 = "evt" java.lang.String r3 = "APP_START" java.lang.String r4 = "APP" java.lang.String r5 = "APP_START" r9 = r0 r1.unsync_doLogEvent(r2, r3, r4, r5, r6, r7, r8, r9) boolean r0 = r11.mSendGeoEvent if (r0 == 0) goto L89 java.net.URL r0 = r11.mGeoLookUpUrl r11.unsync_logGeoInfoAsync(r0) L89: r11.unsync_cacheLaunchTime() return */ throw new UnsupportedOperationException("Method not decompiled: com.glu.plugins.gluanalytics.GluAnalytics.unsync_doAppStart():void"); } private void unsync_doStopSession() { unsync_doLogEvent("evt", "SESSION_STOP", "APP", "SESSION_STOP", null, null, null, null); removeMessages(60); removeMessages(MESSAGE_SESSION_ID); } private JSONStringer beginJsonEvent(String str, String str2, String str3, String str4, String str5, Object obj, Object obj2, Map map, String str6) { return beginJsonEvent(str, str2, str3, str4, str5, obj, obj2, map, str6, Boolean.TRUE); } private JSONStringer beginJsonEvent(String str, String str2, String str3, String str4, String str5, Object obj, Object obj2, Map map, String str6, Boolean bool) { try { long timestampSec = timestampSec(); JSONStringer object = new JSONStringer().object(); object.key("ts").value(timestampSec); CollectionUtil.putIfNotEmpty(object, "event_type", str); CollectionUtil.putIfNotEmpty(object, nb.q, str2); CollectionUtil.putIfNotEmpty(object, "st1", str3); CollectionUtil.putIfNotEmpty(object, "st2", str4); CollectionUtil.putIfNotEmpty(object, "st3", str5); if (bool.booleanValue()) { CollectionUtil.putIfNotEmpty(object, i.a, str6); } if (obj instanceof String) { CollectionUtil.putIfNotEmpty(object, Consts.KEY_TAPJOY_USER_ID_VERSION, (String) obj); } else { CollectionUtil.putIfNotNull(object, Consts.KEY_TAPJOY_USER_ID_VERSION, obj); } if (obj2 instanceof String) { CollectionUtil.putIfNotEmpty(object, "l", (String) obj2); } else { CollectionUtil.putIfNotNull(object, "l", obj2); } if (map != null && !CollectionUtil.isEmpty(map)) { object.key("json_data"); CollectionUtil.writeSanitizedMap(object, map); } String[] strArr = this.mExtraFields.get(str); if (strArr != null) { int length = strArr.length; for (int i = 0; i < length; i += 2) { object.key(strArr[i]).value(strArr[i + 1]); } } return object; } catch (JSONException e) { throw Common.propagate(e); } } private void unsync_endJsonEvent(JSONStringer jSONStringer, String str) throws JSONException { CollectionUtil.putIfNotEmpty(jSONStringer, "s", getAnalyticsDeviceIdentifier()); CollectionUtil.putIfNotEmpty(jSONStringer, SPKEY_REVID, getRevenueIdentifier()); CollectionUtil.putIfNotEmpty(jSONStringer, "uid", str); CollectionUtil.putIfNotEmpty(jSONStringer, "sess_id", getSessionIdentifier()); jSONStringer.endObject(); } private void unsync_endJsonEventAndLog(IRecordStream iRecordStream, String str, JSONStringer jSONStringer) { unsync_endJsonEventAndLog(iRecordStream, str, jSONStringer, this.mut_userId); } private void unsync_endJsonEventAndLog(IRecordStream iRecordStream, String str, JSONStringer jSONStringer, String str2) { try { unsync_endJsonEvent(jSONStringer, str2); iRecordStream.saveRecord(str, jSONStringer.toString()); } catch (JSONException e) { throw Common.propagate(e); } } private void unsync_doLogEvent(String str, String str2, String str3, String str4, String str5, Long l, Long l2, Map map) { unsync_endJsonEventAndLog(this.mAnalyticsRecordStream, this.mAnalyticsStreamName, beginJsonEvent(str, str2, str3, str4, str5, l, l2, map, LOG_EVENT_SOURCE_SDK)); } private void unsync_logGeoInfoAsync(URL url) { String analyticsDeviceIdentifier = getAnalyticsDeviceIdentifier(); String revenueIdentifier = getRevenueIdentifier(); Uri.Builder buildUpon = Uri.parse(url.toString()).buildUpon(); if (!TextUtils.isEmpty(analyticsDeviceIdentifier)) { buildUpon.appendQueryParameter("s", analyticsDeviceIdentifier); } if (!TextUtils.isEmpty(this.mut_userId)) { buildUpon.appendQueryParameter("playerId", this.mut_userId); } if (!TextUtils.isEmpty(this.mAppName)) { buildUpon.appendQueryParameter("gameName", this.mAppName); } if (!TextUtils.isEmpty(revenueIdentifier)) { buildUpon.appendQueryParameter("revId", revenueIdentifier); } if (!TextUtils.isEmpty(this.mPPSAppName)) { buildUpon.appendQueryParameter(GetAndroidAdPlayerContext.KEY_GAME_ID, this.mPPSAppName); } try { final URL url2 = new URL(buildUpon.build().toString()); this.mExecutor.execute(new Runnable() { // from class: com.glu.plugins.gluanalytics.GluAnalytics.2 @Override // java.lang.Runnable public void run() { HttpsURLConnection httpsURLConnection; HttpsURLConnection httpsURLConnection2 = null; try { try { httpsURLConnection = (HttpsURLConnection) ((URLConnection) FirebasePerfUrlConnection.instrument(url2.openConnection())); } catch (Throwable th) { th = th; } } catch (IOException e) { e = e; } catch (Exception e2) { e = e2; } try { GluAnalytics.configureConnection(httpsURLConnection); httpsURLConnection.connect(); Map parseJsonObject = CollectionUtil.parseJsonObject(GluAnalytics.readBodyAsString(httpsURLConnection)); String obj = parseJsonObject.get("ipaddress").toString(); String obj2 = parseJsonObject.get("isocode").toString(); StringStore.set(StringStore.Key.LOCATION_IP_ADDRESS, obj); StringStore.set(StringStore.Key.LOCATION_ISO_CODE, obj2); GluAnalytics.this.mGeoLocation.set(new GeoLocation(obj, obj2)); GluAnalytics.this.mLog.i("GeoLocation", "IP", obj, "Country", obj2); GluAnalytics.this.mLog.i("HTTP.GEO_PUBLISH.OK", "url", url2); httpsURLConnection.disconnect(); } catch (IOException e3) { e = e3; httpsURLConnection2 = httpsURLConnection; UnknownHostException unknownHostCause = Common.unknownHostCause(e); if (unknownHostCause != null) { GluAnalytics.this.mLog.i("HTTP.GEO_PUBLISH.ERROR", "url", url2, "e", unknownHostCause.getMessage()); } else { GluAnalytics.this.mLog.e("HTTP.GEO_PUBLISH.ERROR", "url", url2, "e", e); } if (httpsURLConnection2 == null) { return; } httpsURLConnection2.disconnect(); } catch (Exception e4) { e = e4; httpsURLConnection2 = httpsURLConnection; GluAnalytics.this.mLog.e("HTTP.GEO_PUBLISH.ERROR", "url", url2, "e", e); if (httpsURLConnection2 == null) { return; } httpsURLConnection2.disconnect(); } catch (Throwable th2) { th = th2; httpsURLConnection2 = httpsURLConnection; if (httpsURLConnection2 != null) { httpsURLConnection2.disconnect(); } throw th; } } }); } catch (MalformedURLException e) { throw Common.propagate(e); } } private void unsync_sessionID(final String str, final boolean z) { this.mExecutor.execute(new Runnable() { // from class: com.glu.plugins.gluanalytics.GluAnalytics.3 /* JADX WARN: Multi-variable type inference failed */ /* JADX WARN: Not initialized variable reg: 12, insn: 0x005b: MOVE (r10 I:??[OBJECT, ARRAY]) = (r12 I:??[OBJECT, ARRAY]), block:B:44:0x005b */ /* JADX WARN: Removed duplicated region for block: B:46:0x0128 */ @Override // java.lang.Runnable /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct add '--show-bad-code' argument */ public void run() { /* Method dump skipped, instructions count: 300 To view this dump add '--comments-level debug' option */ throw new UnsupportedOperationException("Method not decompiled: com.glu.plugins.gluanalytics.GluAnalytics.AnonymousClass3.run():void"); } }); } private void unsync_scheduleHeartbeat() { removeMessages(60); sendEmptyMessageDelayed(60, 30000L); } private void unsync_heartbeat() { unsync_doLogEvent("pgr", null, null, null, null, null, null, null); unsync_scheduleHeartbeat(); unsync_flushNow(); } private void unsync_flushNow() { this.mPPSRecordStream.flush(); this.mAnalyticsRecordStream.flush(); } private void unsync_sessionIDStart(String str) { unsync_sessionID(str, false); removeMessages(MESSAGE_SESSION_ID); sendEmptyMessageDelayed(MESSAGE_SESSION_ID, 60000L); } private void unsync_logDefaultSegmentationValues(String str, Map map, boolean z) { boolean z2 = !TextUtils.isEmpty(str); Long firstInstallTime = getFirstInstallTime(); if (z2) { unsync_doUpdatePSValue(str, false, "AndroidPlayer", null, "bool", "true", "insert"); unsync_doUpdatePSValue(str, false, "AppVersion", null, "version", ConfigUtil.getString(map, AnalyticsData.S_APPLICATION_VERSION), "upsert"); if (firstInstallTime != null) { unsync_doUpdatePSValue(str, false, "installTimestamp", null, "timestamp", String.valueOf(firstInstallTime), "insert"); } } if (z) { unsync_doUpdatePSValue(str, true, "deviceMake", null, "string", ConfigUtil.getString(map, "deviceManufacturer"), "upsert"); unsync_doUpdatePSValue(str, true, "deviceModel", null, "string", ConfigUtil.getString(map, "deviceModel"), "upsert"); unsync_doUpdatePSValue(str, true, "deviceOS", null, "string", ConfigUtil.getString(map, AnalyticsData.S_OS_VERSION), "upsert"); unsync_doUpdatePSValue(str, true, "deviceCarrier", null, "string", ConfigUtil.getString(map, AnalyticsData.S_CARRIER_NAME), "upsert"); unsync_doUpdatePSValue(str, true, "deviceAppVersion", null, "version", ConfigUtil.getString(map, AnalyticsData.S_APPLICATION_VERSION), "upsert"); unsync_doUpdatePSValue(str, true, "devicePlatform", null, "string", "ANDROID", "upsert"); if (firstInstallTime != null) { unsync_doUpdatePSValue(str, true, "deviceInstallTimestamp", null, "timestamp", String.valueOf(firstInstallTime), "insert"); } Long unsync_getLastLaunchTime = unsync_getLastLaunchTime(); if (unsync_getLastLaunchTime != null) { unsync_doUpdatePSValue(str, true, "deviceLastLaunchTimestamp", null, "timestamp", String.valueOf(unsync_getLastLaunchTime), "upsert"); } } this.mPPSRecordStream.flush(); } private Long getFirstInstallTime() { try { return Long.valueOf(this.mApplicationContext.getPackageManager().getPackageInfo(this.mApplicationContext.getPackageName(), 0).firstInstallTime / 1000); } catch (PackageManager.NameNotFoundException unused) { return null; } } private Long unsync_getLastLaunchTime() { if (this.mSharedPrefs.contains(SPKEY_LAST_LAUNCH_TIMESTAMP)) { return Long.valueOf(this.mSharedPrefs.getLong(SPKEY_LAST_LAUNCH_TIMESTAMP, 0L)); } return null; } private void unsync_cacheLaunchTime() { this.mSharedPrefs.edit().putLong(SPKEY_LAST_LAUNCH_TIMESTAMP, timestampSec()).apply(); } private void sendDataToCacheService() { CacheService cacheService = this.mCacheService; if (cacheService == null) { return; } cacheService.putData(getAnalyticsDeviceIdentifier(), getAnalyticsApplicationName(), this.mut_userId, getRevenueIdentifier(), getSessionIdentifier(), StringStore.get(StringStore.Key.LOCATION_IP_ADDRESS)); } public static class DeviceIdInfo { public final String deviceId; public final String source; public DeviceIdInfo(String str, String str2) { this.deviceId = str; this.source = str2; } } public static class RevIDInfo { public final String id; public final boolean synced; public RevIDInfo(String str, boolean z) { this.id = str; this.synced = z; } } public static class PSValueUpdate { public final boolean isDeviceValue; public final JSONStringer json; public final String userID; public PSValueUpdate(JSONStringer jSONStringer, String str, boolean z) { this.json = jSONStringer; this.userID = str; this.isDeviceValue = z; } } public static class LogEventWithGCSUser { public final JSONStringer json; public final String userID; public LogEventWithGCSUser(JSONStringer jSONStringer, String str) { this.json = jSONStringer; this.userID = str; } } }