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>
This commit is contained in:
2026-02-18 14:52:23 -08:00
parent cc210a65ea
commit f9d20bb3fc
26991 changed files with 2541449 additions and 0 deletions

View File

@@ -0,0 +1,29 @@
package com.google.firebase.crashlytics.internal.stacktrace;
/* loaded from: classes3.dex */
public class MiddleOutFallbackStrategy implements StackTraceTrimmingStrategy {
public final int maximumStackSize;
public final MiddleOutStrategy middleOutStrategy;
public final StackTraceTrimmingStrategy[] trimmingStrategies;
public MiddleOutFallbackStrategy(int i, StackTraceTrimmingStrategy... stackTraceTrimmingStrategyArr) {
this.maximumStackSize = i;
this.trimmingStrategies = stackTraceTrimmingStrategyArr;
this.middleOutStrategy = new MiddleOutStrategy(i);
}
@Override // com.google.firebase.crashlytics.internal.stacktrace.StackTraceTrimmingStrategy
public StackTraceElement[] getTrimmedStackTrace(StackTraceElement[] stackTraceElementArr) {
if (stackTraceElementArr.length <= this.maximumStackSize) {
return stackTraceElementArr;
}
StackTraceElement[] stackTraceElementArr2 = stackTraceElementArr;
for (StackTraceTrimmingStrategy stackTraceTrimmingStrategy : this.trimmingStrategies) {
if (stackTraceElementArr2.length <= this.maximumStackSize) {
break;
}
stackTraceElementArr2 = stackTraceTrimmingStrategy.getTrimmedStackTrace(stackTraceElementArr);
}
return stackTraceElementArr2.length > this.maximumStackSize ? this.middleOutStrategy.getTrimmedStackTrace(stackTraceElementArr2) : stackTraceElementArr2;
}
}

View File

@@ -0,0 +1,25 @@
package com.google.firebase.crashlytics.internal.stacktrace;
/* loaded from: classes3.dex */
public class MiddleOutStrategy implements StackTraceTrimmingStrategy {
public final int trimmedSize;
public MiddleOutStrategy(int i) {
this.trimmedSize = i;
}
@Override // com.google.firebase.crashlytics.internal.stacktrace.StackTraceTrimmingStrategy
public StackTraceElement[] getTrimmedStackTrace(StackTraceElement[] stackTraceElementArr) {
int length = stackTraceElementArr.length;
int i = this.trimmedSize;
if (length <= i) {
return stackTraceElementArr;
}
int i2 = i / 2;
int i3 = i - i2;
StackTraceElement[] stackTraceElementArr2 = new StackTraceElement[i];
System.arraycopy(stackTraceElementArr, 0, stackTraceElementArr2, 0, i3);
System.arraycopy(stackTraceElementArr, stackTraceElementArr.length - i2, stackTraceElementArr2, i3, i2);
return stackTraceElementArr2;
}
}

View File

@@ -0,0 +1,63 @@
package com.google.firebase.crashlytics.internal.stacktrace;
import java.util.HashMap;
/* loaded from: classes3.dex */
public class RemoveRepeatsStrategy implements StackTraceTrimmingStrategy {
public final int maxRepetitions;
public RemoveRepeatsStrategy(int i) {
this.maxRepetitions = i;
}
@Override // com.google.firebase.crashlytics.internal.stacktrace.StackTraceTrimmingStrategy
public StackTraceElement[] getTrimmedStackTrace(StackTraceElement[] stackTraceElementArr) {
StackTraceElement[] trimRepeats = trimRepeats(stackTraceElementArr, this.maxRepetitions);
return trimRepeats.length < stackTraceElementArr.length ? trimRepeats : stackTraceElementArr;
}
public static StackTraceElement[] trimRepeats(StackTraceElement[] stackTraceElementArr, int i) {
int i2;
HashMap hashMap = new HashMap();
StackTraceElement[] stackTraceElementArr2 = new StackTraceElement[stackTraceElementArr.length];
int i3 = 0;
int i4 = 0;
int i5 = 1;
while (i3 < stackTraceElementArr.length) {
StackTraceElement stackTraceElement = stackTraceElementArr[i3];
Integer num = (Integer) hashMap.get(stackTraceElement);
if (num == null || !isRepeatingSequence(stackTraceElementArr, num.intValue(), i3)) {
stackTraceElementArr2[i4] = stackTraceElementArr[i3];
i4++;
i5 = 1;
i2 = i3;
} else {
int intValue = i3 - num.intValue();
if (i5 < i) {
System.arraycopy(stackTraceElementArr, i3, stackTraceElementArr2, i4, intValue);
i4 += intValue;
i5++;
}
i2 = (intValue - 1) + i3;
}
hashMap.put(stackTraceElement, Integer.valueOf(i3));
i3 = i2 + 1;
}
StackTraceElement[] stackTraceElementArr3 = new StackTraceElement[i4];
System.arraycopy(stackTraceElementArr2, 0, stackTraceElementArr3, 0, i4);
return stackTraceElementArr3;
}
public static boolean isRepeatingSequence(StackTraceElement[] stackTraceElementArr, int i, int i2) {
int i3 = i2 - i;
if (i2 + i3 > stackTraceElementArr.length) {
return false;
}
for (int i4 = 0; i4 < i3; i4++) {
if (!stackTraceElementArr[i + i4].equals(stackTraceElementArr[i2 + i4])) {
return false;
}
}
return true;
}
}

View File

@@ -0,0 +1,6 @@
package com.google.firebase.crashlytics.internal.stacktrace;
/* loaded from: classes3.dex */
public interface StackTraceTrimmingStrategy {
StackTraceElement[] getTrimmedStackTrace(StackTraceElement[] stackTraceElementArr);
}

View File

@@ -0,0 +1,32 @@
package com.google.firebase.crashlytics.internal.stacktrace;
import java.util.Stack;
/* loaded from: classes3.dex */
public class TrimmedThrowableData {
public final TrimmedThrowableData cause;
public final String className;
public final String localizedMessage;
public final StackTraceElement[] stacktrace;
public TrimmedThrowableData(String str, String str2, StackTraceElement[] stackTraceElementArr, TrimmedThrowableData trimmedThrowableData) {
this.localizedMessage = str;
this.className = str2;
this.stacktrace = stackTraceElementArr;
this.cause = trimmedThrowableData;
}
public static TrimmedThrowableData makeTrimmedThrowableData(Throwable th, StackTraceTrimmingStrategy stackTraceTrimmingStrategy) {
Stack stack = new Stack();
while (th != null) {
stack.push(th);
th = th.getCause();
}
TrimmedThrowableData trimmedThrowableData = null;
while (!stack.isEmpty()) {
Throwable th2 = (Throwable) stack.pop();
trimmedThrowableData = new TrimmedThrowableData(th2.getLocalizedMessage(), th2.getClass().getName(), stackTraceTrimmingStrategy.getTrimmedStackTrace(th2.getStackTrace()), trimmedThrowableData);
}
return trimmedThrowableData;
}
}