Files
rr3-apk/decompiled/sources/com/facebook/appevents/suggestedevents/FeatureExtractor.java
Daniel Elliott f9d20bb3fc Add decompiled APK source code (JADX)
- 28,932 files
- Full Java source code
- Smali files
- Resources

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-18 14:52:23 -08:00

617 lines
29 KiB
Java

package com.facebook.appevents.suggestedevents;
import android.util.Patterns;
import com.applovin.sdk.AppLovinEventTypes;
import com.facebook.appevents.internal.ViewHierarchyConstants;
import com.facebook.internal.instrument.crashshield.CrashShieldHandler;
import com.ironsource.v8;
import com.ironsource.zm;
import com.mbridge.msdk.foundation.entity.CampaignEx;
import java.io.File;
import java.io.FileInputStream;
import java.util.Map;
import java.util.regex.Pattern;
import kotlin.TuplesKt;
import kotlin.collections.MapsKt__MapsKt;
import kotlin.jvm.internal.Intrinsics;
import kotlin.text.Charsets;
import kotlin.text.StringsKt__StringsKt;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
/* loaded from: classes2.dex */
public final class FeatureExtractor {
public static final FeatureExtractor INSTANCE = new FeatureExtractor();
private static final int NUM_OF_FEATURES = 30;
private static final String REGEX_ADD_TO_CART_BUTTON_TEXT = "(?i)add to(\\s|\\Z)|update(\\s|\\Z)|cart";
private static final String REGEX_ADD_TO_CART_PAGE_TITLE = "(?i)add to(\\s|\\Z)|update(\\s|\\Z)|cart|shop|buy";
private static final String REGEX_CR_HAS_CONFIRM_PASSWORD_FIELD = "(?i)(confirm.*password)|(password.*(confirmation|confirm)|confirmation)";
private static final String REGEX_CR_HAS_LOG_IN_KEYWORDS = "(?i)(sign in)|login|signIn";
private static final String REGEX_CR_HAS_SIGN_ON_KEYWORDS = "(?i)(sign.*(up|now)|registration|register|(create|apply).*(profile|account)|open.*account|account.*(open|creation|application)|enroll|join.*now)";
private static final String REGEX_CR_PASSWORD_FIELD = "password";
private static Map<String, String> eventInfo;
private static boolean initialized;
private static Map<String, String> languageInfo;
private static JSONObject rules;
private static Map<String, String> textTypeInfo;
private FeatureExtractor() {
}
public static final boolean isInitialized() {
if (CrashShieldHandler.isObjectCrashing(FeatureExtractor.class)) {
return false;
}
try {
return initialized;
} catch (Throwable th) {
CrashShieldHandler.handleThrowable(th, FeatureExtractor.class);
return false;
}
}
public static final void initialize(File file) {
Map<String, String> mapOf;
Map<String, String> mapOf2;
Map<String, String> mapOf3;
if (CrashShieldHandler.isObjectCrashing(FeatureExtractor.class)) {
return;
}
try {
try {
rules = new JSONObject();
FileInputStream fileInputStream = new FileInputStream(file);
byte[] bArr = new byte[fileInputStream.available()];
fileInputStream.read(bArr);
fileInputStream.close();
rules = new JSONObject(new String(bArr, Charsets.UTF_8));
mapOf = MapsKt__MapsKt.mapOf(TuplesKt.to(ViewHierarchyConstants.ENGLISH, "1"), TuplesKt.to(ViewHierarchyConstants.GERMAN, "2"), TuplesKt.to(ViewHierarchyConstants.SPANISH, "3"), TuplesKt.to(ViewHierarchyConstants.JAPANESE, "4"));
languageInfo = mapOf;
mapOf2 = MapsKt__MapsKt.mapOf(TuplesKt.to(ViewHierarchyConstants.VIEW_CONTENT, "0"), TuplesKt.to(ViewHierarchyConstants.SEARCH, "1"), TuplesKt.to(ViewHierarchyConstants.ADD_TO_CART, "2"), TuplesKt.to(ViewHierarchyConstants.ADD_TO_WISHLIST, "3"), TuplesKt.to(ViewHierarchyConstants.INITIATE_CHECKOUT, "4"), TuplesKt.to(ViewHierarchyConstants.ADD_PAYMENT_INFO, CampaignEx.CLICKMODE_ON), TuplesKt.to(ViewHierarchyConstants.PURCHASE, "6"), TuplesKt.to(ViewHierarchyConstants.LEAD, zm.e), TuplesKt.to(ViewHierarchyConstants.COMPLETE_REGISTRATION, "8"));
eventInfo = mapOf2;
mapOf3 = MapsKt__MapsKt.mapOf(TuplesKt.to(ViewHierarchyConstants.BUTTON_TEXT, "1"), TuplesKt.to(ViewHierarchyConstants.PAGE_TITLE, "2"), TuplesKt.to(ViewHierarchyConstants.RESOLVED_DOCUMENT_LINK, "3"), TuplesKt.to(ViewHierarchyConstants.BUTTON_ID, "4"));
textTypeInfo = mapOf3;
initialized = true;
} catch (Throwable th) {
CrashShieldHandler.handleThrowable(th, FeatureExtractor.class);
}
} catch (Exception unused) {
}
}
public static final String getTextFeature(String buttonText, String activityName, String appName) {
if (CrashShieldHandler.isObjectCrashing(FeatureExtractor.class)) {
return null;
}
try {
Intrinsics.checkNotNullParameter(buttonText, "buttonText");
Intrinsics.checkNotNullParameter(activityName, "activityName");
Intrinsics.checkNotNullParameter(appName, "appName");
String str = appName + " | " + activityName + ", " + buttonText;
if (str == null) {
throw new NullPointerException("null cannot be cast to non-null type java.lang.String");
}
String lowerCase = str.toLowerCase();
Intrinsics.checkNotNullExpressionValue(lowerCase, "(this as java.lang.String).toLowerCase()");
return lowerCase;
} catch (Throwable th) {
CrashShieldHandler.handleThrowable(th, FeatureExtractor.class);
return null;
}
}
public static final float[] getDenseFeatures(JSONObject viewHierarchy, String appName) {
String lowerCase;
JSONObject jSONObject;
String screenName;
JSONArray jSONArray;
FeatureExtractor featureExtractor;
JSONObject interactedNode;
if (CrashShieldHandler.isObjectCrashing(FeatureExtractor.class)) {
return null;
}
try {
Intrinsics.checkNotNullParameter(viewHierarchy, "viewHierarchy");
Intrinsics.checkNotNullParameter(appName, "appName");
if (!initialized) {
return null;
}
float[] fArr = new float[30];
for (int i = 0; i < 30; i++) {
fArr[i] = 0.0f;
}
try {
lowerCase = appName.toLowerCase();
Intrinsics.checkNotNullExpressionValue(lowerCase, "(this as java.lang.String).toLowerCase()");
jSONObject = new JSONObject(viewHierarchy.optJSONObject("view").toString());
screenName = viewHierarchy.optString(ViewHierarchyConstants.SCREEN_NAME_KEY);
jSONArray = new JSONArray();
featureExtractor = INSTANCE;
featureExtractor.pruneTree(jSONObject, jSONArray);
featureExtractor.sum(fArr, featureExtractor.parseFeatures(jSONObject));
interactedNode = featureExtractor.getInteractedNode(jSONObject);
} catch (JSONException unused) {
}
if (interactedNode == null) {
return null;
}
Intrinsics.checkNotNullExpressionValue(screenName, "screenName");
String jSONObject2 = jSONObject.toString();
Intrinsics.checkNotNullExpressionValue(jSONObject2, "viewTree.toString()");
featureExtractor.sum(fArr, featureExtractor.nonparseFeatures(interactedNode, jSONArray, screenName, jSONObject2, lowerCase));
return fArr;
} catch (Throwable th) {
CrashShieldHandler.handleThrowable(th, FeatureExtractor.class);
return null;
}
}
private final float[] parseFeatures(JSONObject jSONObject) {
boolean contains$default;
boolean contains$default2;
boolean contains$default3;
if (CrashShieldHandler.isObjectCrashing(this)) {
return null;
}
try {
float[] fArr = new float[30];
int i = 0;
for (int i2 = 0; i2 < 30; i2++) {
fArr[i2] = 0.0f;
}
String optString = jSONObject.optString("text");
Intrinsics.checkNotNullExpressionValue(optString, "node.optString(TEXT_KEY)");
String lowerCase = optString.toLowerCase();
Intrinsics.checkNotNullExpressionValue(lowerCase, "(this as java.lang.String).toLowerCase()");
String optString2 = jSONObject.optString(ViewHierarchyConstants.HINT_KEY);
Intrinsics.checkNotNullExpressionValue(optString2, "node.optString(HINT_KEY)");
String lowerCase2 = optString2.toLowerCase();
Intrinsics.checkNotNullExpressionValue(lowerCase2, "(this as java.lang.String).toLowerCase()");
String optString3 = jSONObject.optString(ViewHierarchyConstants.CLASS_NAME_KEY);
Intrinsics.checkNotNullExpressionValue(optString3, "node.optString(CLASS_NAME_KEY)");
String lowerCase3 = optString3.toLowerCase();
Intrinsics.checkNotNullExpressionValue(lowerCase3, "(this as java.lang.String).toLowerCase()");
int optInt = jSONObject.optInt(ViewHierarchyConstants.INPUT_TYPE_KEY, -1);
String[] strArr = {lowerCase, lowerCase2};
if (matchIndicators(new String[]{"$", "amount", "price", v8.h.l}, strArr)) {
fArr[0] = fArr[0] + 1.0f;
}
if (matchIndicators(new String[]{REGEX_CR_PASSWORD_FIELD, "pwd"}, strArr)) {
fArr[1] = fArr[1] + 1.0f;
}
if (matchIndicators(new String[]{"tel", "phone"}, strArr)) {
fArr[2] = fArr[2] + 1.0f;
}
if (matchIndicators(new String[]{AppLovinEventTypes.USER_EXECUTED_SEARCH}, strArr)) {
fArr[4] = fArr[4] + 1.0f;
}
if (optInt >= 0) {
fArr[5] = fArr[5] + 1.0f;
}
if (optInt == 3 || optInt == 2) {
fArr[6] = fArr[6] + 1.0f;
}
if (optInt == 32 || Patterns.EMAIL_ADDRESS.matcher(lowerCase).matches()) {
fArr[7] = fArr[7] + 1.0f;
}
contains$default = StringsKt__StringsKt.contains$default(lowerCase3, "checkbox", false, 2, null);
if (contains$default) {
fArr[8] = fArr[8] + 1.0f;
}
if (matchIndicators(new String[]{CampaignEx.JSON_NATIVE_VIDEO_COMPLETE, "confirm", "done", "submit"}, new String[]{lowerCase})) {
fArr[10] = fArr[10] + 1.0f;
}
contains$default2 = StringsKt__StringsKt.contains$default(lowerCase3, "radio", false, 2, null);
if (contains$default2) {
contains$default3 = StringsKt__StringsKt.contains$default(lowerCase3, "button", false, 2, null);
if (contains$default3) {
fArr[12] = fArr[12] + 1.0f;
}
}
try {
JSONArray optJSONArray = jSONObject.optJSONArray(ViewHierarchyConstants.CHILDREN_VIEW_KEY);
int length = optJSONArray.length();
if (length > 0) {
while (true) {
int i3 = i + 1;
JSONObject jSONObject2 = optJSONArray.getJSONObject(i);
Intrinsics.checkNotNullExpressionValue(jSONObject2, "childViews.getJSONObject(i)");
sum(fArr, parseFeatures(jSONObject2));
if (i3 >= length) {
break;
}
i = i3;
}
}
} catch (JSONException unused) {
}
return fArr;
} catch (Throwable th) {
CrashShieldHandler.handleThrowable(th, this);
return null;
}
}
private final float[] nonparseFeatures(JSONObject jSONObject, JSONArray jSONArray, String str, String str2, String str3) {
boolean contains$default;
if (CrashShieldHandler.isObjectCrashing(this)) {
return null;
}
try {
float[] fArr = new float[30];
for (int i = 0; i < 30; i++) {
fArr[i] = 0.0f;
}
int length = jSONArray.length();
fArr[3] = length > 1 ? length - 1.0f : 0.0f;
try {
int length2 = jSONArray.length();
if (length2 > 0) {
int i2 = 0;
while (true) {
int i3 = i2 + 1;
JSONObject jSONObject2 = jSONArray.getJSONObject(i2);
Intrinsics.checkNotNullExpressionValue(jSONObject2, "siblings.getJSONObject(i)");
if (isButton(jSONObject2)) {
fArr[9] = fArr[9] + 1.0f;
}
if (i3 >= length2) {
break;
}
i2 = i3;
}
}
} catch (JSONException unused) {
}
fArr[13] = -1.0f;
fArr[14] = -1.0f;
String str4 = str + '|' + str3;
StringBuilder sb = new StringBuilder();
StringBuilder sb2 = new StringBuilder();
updateHintAndTextRecursively(jSONObject, sb2, sb);
String sb3 = sb.toString();
Intrinsics.checkNotNullExpressionValue(sb3, "hintSB.toString()");
String sb4 = sb2.toString();
Intrinsics.checkNotNullExpressionValue(sb4, "textSB.toString()");
fArr[15] = regexMatched(ViewHierarchyConstants.ENGLISH, ViewHierarchyConstants.COMPLETE_REGISTRATION, ViewHierarchyConstants.BUTTON_TEXT, sb4) ? 1.0f : 0.0f;
fArr[16] = regexMatched(ViewHierarchyConstants.ENGLISH, ViewHierarchyConstants.COMPLETE_REGISTRATION, ViewHierarchyConstants.PAGE_TITLE, str4) ? 1.0f : 0.0f;
fArr[17] = regexMatched(ViewHierarchyConstants.ENGLISH, ViewHierarchyConstants.COMPLETE_REGISTRATION, ViewHierarchyConstants.BUTTON_ID, sb3) ? 1.0f : 0.0f;
contains$default = StringsKt__StringsKt.contains$default(str2, REGEX_CR_PASSWORD_FIELD, false, 2, null);
fArr[18] = contains$default ? 1.0f : 0.0f;
fArr[19] = regexMatched(REGEX_CR_HAS_CONFIRM_PASSWORD_FIELD, str2) ? 1.0f : 0.0f;
fArr[20] = regexMatched(REGEX_CR_HAS_LOG_IN_KEYWORDS, str2) ? 1.0f : 0.0f;
fArr[21] = regexMatched(REGEX_CR_HAS_SIGN_ON_KEYWORDS, str2) ? 1.0f : 0.0f;
fArr[22] = regexMatched(ViewHierarchyConstants.ENGLISH, ViewHierarchyConstants.PURCHASE, ViewHierarchyConstants.BUTTON_TEXT, sb4) ? 1.0f : 0.0f;
fArr[24] = regexMatched(ViewHierarchyConstants.ENGLISH, ViewHierarchyConstants.PURCHASE, ViewHierarchyConstants.PAGE_TITLE, str4) ? 1.0f : 0.0f;
fArr[25] = regexMatched(REGEX_ADD_TO_CART_BUTTON_TEXT, sb4) ? 1.0f : 0.0f;
fArr[27] = regexMatched(REGEX_ADD_TO_CART_PAGE_TITLE, str4) ? 1.0f : 0.0f;
fArr[28] = regexMatched(ViewHierarchyConstants.ENGLISH, ViewHierarchyConstants.LEAD, ViewHierarchyConstants.BUTTON_TEXT, sb4) ? 1.0f : 0.0f;
fArr[29] = regexMatched(ViewHierarchyConstants.ENGLISH, ViewHierarchyConstants.LEAD, ViewHierarchyConstants.PAGE_TITLE, str4) ? 1.0f : 0.0f;
return fArr;
} catch (Throwable th) {
CrashShieldHandler.handleThrowable(th, this);
return null;
}
}
/* JADX WARN: Removed duplicated region for block: B:16:0x005c */
/* JADX WARN: Removed duplicated region for block: B:18:0x005d A[Catch: all -> 0x0062, TryCatch #0 {all -> 0x0062, blocks: (B:6:0x0008, B:8:0x000d, B:18:0x005d, B:20:0x0043, B:23:0x004c, B:25:0x0050, B:26:0x0064, B:27:0x0069, B:28:0x0029, B:31:0x0032, B:33:0x0036, B:34:0x006a, B:35:0x006f, B:36:0x0017, B:38:0x001b, B:39:0x0070, B:40:0x0075, B:41:0x0076, B:42:0x007b), top: B:5:0x0008 }] */
/* JADX WARN: Removed duplicated region for block: B:25:0x0050 A[Catch: all -> 0x0062, TryCatch #0 {all -> 0x0062, blocks: (B:6:0x0008, B:8:0x000d, B:18:0x005d, B:20:0x0043, B:23:0x004c, B:25:0x0050, B:26:0x0064, B:27:0x0069, B:28:0x0029, B:31:0x0032, B:33:0x0036, B:34:0x006a, B:35:0x006f, B:36:0x0017, B:38:0x001b, B:39:0x0070, B:40:0x0075, B:41:0x0076, B:42:0x007b), top: B:5:0x0008 }] */
/* JADX WARN: Removed duplicated region for block: B:26:0x0064 A[Catch: all -> 0x0062, TryCatch #0 {all -> 0x0062, blocks: (B:6:0x0008, B:8:0x000d, B:18:0x005d, B:20:0x0043, B:23:0x004c, B:25:0x0050, B:26:0x0064, B:27:0x0069, B:28:0x0029, B:31:0x0032, B:33:0x0036, B:34:0x006a, B:35:0x006f, B:36:0x0017, B:38:0x001b, B:39:0x0070, B:40:0x0075, B:41:0x0076, B:42:0x007b), top: B:5:0x0008 }] */
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
private final boolean regexMatched(java.lang.String r5, java.lang.String r6, java.lang.String r7, java.lang.String r8) {
/*
r4 = this;
boolean r0 = com.facebook.internal.instrument.crashshield.CrashShieldHandler.isObjectCrashing(r4)
r1 = 0
if (r0 == 0) goto L8
return r1
L8:
org.json.JSONObject r0 = com.facebook.appevents.suggestedevents.FeatureExtractor.rules // Catch: java.lang.Throwable -> L62
r2 = 0
if (r0 == 0) goto L76
java.lang.String r3 = "rulesForLanguage"
org.json.JSONObject r0 = r0.optJSONObject(r3) // Catch: java.lang.Throwable -> L62
if (r0 != 0) goto L17
r5 = r2
goto L25
L17:
java.util.Map<java.lang.String, java.lang.String> r3 = com.facebook.appevents.suggestedevents.FeatureExtractor.languageInfo // Catch: java.lang.Throwable -> L62
if (r3 == 0) goto L70
java.lang.Object r5 = r3.get(r5) // Catch: java.lang.Throwable -> L62
java.lang.String r5 = (java.lang.String) r5 // Catch: java.lang.Throwable -> L62
org.json.JSONObject r5 = r0.optJSONObject(r5) // Catch: java.lang.Throwable -> L62
L25:
if (r5 != 0) goto L29
L27:
r5 = r2
goto L40
L29:
java.lang.String r0 = "rulesForEvent"
org.json.JSONObject r5 = r5.optJSONObject(r0) // Catch: java.lang.Throwable -> L62
if (r5 != 0) goto L32
goto L27
L32:
java.util.Map<java.lang.String, java.lang.String> r0 = com.facebook.appevents.suggestedevents.FeatureExtractor.eventInfo // Catch: java.lang.Throwable -> L62
if (r0 == 0) goto L6a
java.lang.Object r6 = r0.get(r6) // Catch: java.lang.Throwable -> L62
java.lang.String r6 = (java.lang.String) r6 // Catch: java.lang.Throwable -> L62
org.json.JSONObject r5 = r5.optJSONObject(r6) // Catch: java.lang.Throwable -> L62
L40:
if (r5 != 0) goto L43
goto L5a
L43:
java.lang.String r6 = "positiveRules"
org.json.JSONObject r5 = r5.optJSONObject(r6) // Catch: java.lang.Throwable -> L62
if (r5 != 0) goto L4c
goto L5a
L4c:
java.util.Map<java.lang.String, java.lang.String> r6 = com.facebook.appevents.suggestedevents.FeatureExtractor.textTypeInfo // Catch: java.lang.Throwable -> L62
if (r6 == 0) goto L64
java.lang.Object r6 = r6.get(r7) // Catch: java.lang.Throwable -> L62
java.lang.String r6 = (java.lang.String) r6 // Catch: java.lang.Throwable -> L62
java.lang.String r2 = r5.optString(r6) // Catch: java.lang.Throwable -> L62
L5a:
if (r2 != 0) goto L5d
goto L61
L5d:
boolean r1 = r4.regexMatched(r2, r8) // Catch: java.lang.Throwable -> L62
L61:
return r1
L62:
r5 = move-exception
goto L7c
L64:
java.lang.String r5 = "textTypeInfo"
kotlin.jvm.internal.Intrinsics.throwUninitializedPropertyAccessException(r5) // Catch: java.lang.Throwable -> L62
throw r2 // Catch: java.lang.Throwable -> L62
L6a:
java.lang.String r5 = "eventInfo"
kotlin.jvm.internal.Intrinsics.throwUninitializedPropertyAccessException(r5) // Catch: java.lang.Throwable -> L62
throw r2 // Catch: java.lang.Throwable -> L62
L70:
java.lang.String r5 = "languageInfo"
kotlin.jvm.internal.Intrinsics.throwUninitializedPropertyAccessException(r5) // Catch: java.lang.Throwable -> L62
throw r2 // Catch: java.lang.Throwable -> L62
L76:
java.lang.String r5 = "rules"
kotlin.jvm.internal.Intrinsics.throwUninitializedPropertyAccessException(r5) // Catch: java.lang.Throwable -> L62
throw r2 // Catch: java.lang.Throwable -> L62
L7c:
com.facebook.internal.instrument.crashshield.CrashShieldHandler.handleThrowable(r5, r4)
return r1
*/
throw new UnsupportedOperationException("Method not decompiled: com.facebook.appevents.suggestedevents.FeatureExtractor.regexMatched(java.lang.String, java.lang.String, java.lang.String, java.lang.String):boolean");
}
private final boolean regexMatched(String str, String str2) {
if (CrashShieldHandler.isObjectCrashing(this)) {
return false;
}
try {
return Pattern.compile(str).matcher(str2).find();
} catch (Throwable th) {
CrashShieldHandler.handleThrowable(th, this);
return false;
}
}
private final boolean matchIndicators(String[] strArr, String[] strArr2) {
boolean contains$default;
if (CrashShieldHandler.isObjectCrashing(this)) {
return false;
}
try {
int length = strArr.length;
int i = 0;
while (i < length) {
String str = strArr[i];
i++;
int length2 = strArr2.length;
int i2 = 0;
while (i2 < length2) {
String str2 = strArr2[i2];
i2++;
contains$default = StringsKt__StringsKt.contains$default(str2, str, false, 2, null);
if (contains$default) {
return true;
}
}
}
return false;
} catch (Throwable th) {
CrashShieldHandler.handleThrowable(th, this);
return false;
}
}
private final boolean pruneTree(JSONObject jSONObject, JSONArray jSONArray) {
boolean z;
if (CrashShieldHandler.isObjectCrashing(this)) {
return false;
}
try {
if (jSONObject.optBoolean(ViewHierarchyConstants.IS_INTERACTED_KEY)) {
return true;
}
JSONArray optJSONArray = jSONObject.optJSONArray(ViewHierarchyConstants.CHILDREN_VIEW_KEY);
int length = optJSONArray.length();
if (length > 0) {
int i = 0;
while (true) {
int i2 = i + 1;
if (optJSONArray.getJSONObject(i).optBoolean(ViewHierarchyConstants.IS_INTERACTED_KEY)) {
z = true;
break;
}
if (i2 >= length) {
break;
}
i = i2;
}
}
z = false;
boolean z2 = z;
JSONArray jSONArray2 = new JSONArray();
if (z) {
int length2 = optJSONArray.length();
if (length2 > 0) {
int i3 = 0;
while (true) {
int i4 = i3 + 1;
jSONArray.put(optJSONArray.getJSONObject(i3));
if (i4 >= length2) {
break;
}
i3 = i4;
}
}
} else {
int length3 = optJSONArray.length();
if (length3 > 0) {
int i5 = 0;
while (true) {
int i6 = i5 + 1;
JSONObject child = optJSONArray.getJSONObject(i5);
Intrinsics.checkNotNullExpressionValue(child, "child");
if (pruneTree(child, jSONArray)) {
jSONArray2.put(child);
z2 = true;
}
if (i6 >= length3) {
break;
}
i5 = i6;
}
}
jSONObject.put(ViewHierarchyConstants.CHILDREN_VIEW_KEY, jSONArray2);
}
return z2;
} catch (JSONException unused) {
return false;
} catch (Throwable th) {
CrashShieldHandler.handleThrowable(th, this);
return false;
}
}
private final void sum(float[] fArr, float[] fArr2) {
if (CrashShieldHandler.isObjectCrashing(this)) {
return;
}
try {
int length = fArr.length - 1;
if (length < 0) {
return;
}
int i = 0;
while (true) {
int i2 = i + 1;
fArr[i] = fArr[i] + fArr2[i];
if (i2 > length) {
return;
} else {
i = i2;
}
}
} catch (Throwable th) {
CrashShieldHandler.handleThrowable(th, this);
}
}
private final boolean isButton(JSONObject jSONObject) {
if (CrashShieldHandler.isObjectCrashing(this)) {
return false;
}
try {
return ((jSONObject.optInt(ViewHierarchyConstants.CLASS_TYPE_BITMASK_KEY) & 1) << 5) > 0;
} catch (Throwable th) {
CrashShieldHandler.handleThrowable(th, this);
return false;
}
}
private final void updateHintAndTextRecursively(JSONObject jSONObject, StringBuilder sb, StringBuilder sb2) {
int length;
if (CrashShieldHandler.isObjectCrashing(this)) {
return;
}
try {
String optString = jSONObject.optString("text", "");
Intrinsics.checkNotNullExpressionValue(optString, "view.optString(TEXT_KEY, \"\")");
String lowerCase = optString.toLowerCase();
Intrinsics.checkNotNullExpressionValue(lowerCase, "(this as java.lang.String).toLowerCase()");
String optString2 = jSONObject.optString(ViewHierarchyConstants.HINT_KEY, "");
Intrinsics.checkNotNullExpressionValue(optString2, "view.optString(HINT_KEY, \"\")");
String lowerCase2 = optString2.toLowerCase();
Intrinsics.checkNotNullExpressionValue(lowerCase2, "(this as java.lang.String).toLowerCase()");
if (lowerCase.length() > 0) {
sb.append(lowerCase);
sb.append(" ");
}
if (lowerCase2.length() > 0) {
sb2.append(lowerCase2);
sb2.append(" ");
}
JSONArray optJSONArray = jSONObject.optJSONArray(ViewHierarchyConstants.CHILDREN_VIEW_KEY);
if (optJSONArray == null || (length = optJSONArray.length()) <= 0) {
return;
}
int i = 0;
while (true) {
int i2 = i + 1;
try {
JSONObject currentChildView = optJSONArray.getJSONObject(i);
Intrinsics.checkNotNullExpressionValue(currentChildView, "currentChildView");
updateHintAndTextRecursively(currentChildView, sb, sb2);
} catch (JSONException unused) {
}
if (i2 >= length) {
return;
} else {
i = i2;
}
}
} catch (Throwable th) {
CrashShieldHandler.handleThrowable(th, this);
}
}
private final JSONObject getInteractedNode(JSONObject jSONObject) {
int length;
if (CrashShieldHandler.isObjectCrashing(this)) {
return null;
}
try {
} catch (JSONException unused) {
} catch (Throwable th) {
CrashShieldHandler.handleThrowable(th, this);
}
if (jSONObject.optBoolean(ViewHierarchyConstants.IS_INTERACTED_KEY)) {
return jSONObject;
}
JSONArray optJSONArray = jSONObject.optJSONArray(ViewHierarchyConstants.CHILDREN_VIEW_KEY);
if (optJSONArray != null && (length = optJSONArray.length()) > 0) {
int i = 0;
while (true) {
int i2 = i + 1;
JSONObject jSONObject2 = optJSONArray.getJSONObject(i);
Intrinsics.checkNotNullExpressionValue(jSONObject2, "children.getJSONObject(i)");
JSONObject interactedNode = getInteractedNode(jSONObject2);
if (interactedNode != null) {
return interactedNode;
}
if (i2 >= length) {
break;
}
i = i2;
}
}
return null;
}
}