- 28,932 files - Full Java source code - Smali files - Resources Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
617 lines
29 KiB
Java
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;
|
|
}
|
|
}
|