Add Discord community version (64-bit only)

- Added realracing3-community.apk (71.57 MB)
- Removed 32-bit support (armeabi-v7a)
- Only includes arm64-v8a libraries
- Decompiled source code included
- Added README-community.md with analysis
This commit is contained in:
2026-02-18 15:48:36 -08:00
parent c19eb3d7ff
commit c080f0d97f
26930 changed files with 2529574 additions and 0 deletions

View File

@@ -0,0 +1,120 @@
package com.google.firebase.perf.session;
import android.os.Parcel;
import android.os.Parcelable;
import com.google.firebase.perf.config.ConfigResolver;
import com.google.firebase.perf.util.Clock;
import com.google.firebase.perf.util.Timer;
import com.google.firebase.perf.v1.PerfSession;
import com.google.firebase.perf.v1.SessionVerbosity;
import java.util.List;
import java.util.concurrent.TimeUnit;
/* loaded from: classes3.dex */
public class PerfSession implements Parcelable {
public static final Parcelable.Creator<PerfSession> CREATOR = new Parcelable.Creator() { // from class: com.google.firebase.perf.session.PerfSession.1
@Override // android.os.Parcelable.Creator
public PerfSession createFromParcel(Parcel parcel) {
return new PerfSession(parcel);
}
@Override // android.os.Parcelable.Creator
public PerfSession[] newArray(int i) {
return new PerfSession[i];
}
};
public final Timer creationTime;
public boolean isGaugeAndEventCollectionEnabled;
public final String sessionId;
@Override // android.os.Parcelable
public int describeContents() {
return 0;
}
public Timer getTimer() {
return this.creationTime;
}
public boolean isGaugeAndEventCollectionEnabled() {
return this.isGaugeAndEventCollectionEnabled;
}
public boolean isVerbose() {
return this.isGaugeAndEventCollectionEnabled;
}
public String sessionId() {
return this.sessionId;
}
public void setGaugeAndEventCollectionEnabled(boolean z) {
this.isGaugeAndEventCollectionEnabled = z;
}
public static PerfSession createWithId(String str) {
PerfSession perfSession = new PerfSession(str.replace("-", ""), new Clock());
perfSession.setGaugeAndEventCollectionEnabled(shouldCollectGaugesAndEvents());
return perfSession;
}
public PerfSession(String str, Clock clock) {
this.isGaugeAndEventCollectionEnabled = false;
this.sessionId = str;
this.creationTime = clock.getTime();
}
public PerfSession(Parcel parcel) {
this.isGaugeAndEventCollectionEnabled = false;
this.sessionId = parcel.readString();
this.isGaugeAndEventCollectionEnabled = parcel.readByte() != 0;
this.creationTime = (Timer) parcel.readParcelable(Timer.class.getClassLoader());
}
public boolean isSessionRunningTooLong() {
return TimeUnit.MICROSECONDS.toMinutes(this.creationTime.getDurationMicros()) > ConfigResolver.getInstance().getSessionsMaxDurationMinutes();
}
public com.google.firebase.perf.v1.PerfSession build() {
PerfSession.Builder sessionId = com.google.firebase.perf.v1.PerfSession.newBuilder().setSessionId(this.sessionId);
if (this.isGaugeAndEventCollectionEnabled) {
sessionId.addSessionVerbosity(SessionVerbosity.GAUGES_AND_SYSTEM_EVENTS);
}
return (com.google.firebase.perf.v1.PerfSession) sessionId.build();
}
public static com.google.firebase.perf.v1.PerfSession[] buildAndSort(List list) {
if (list.isEmpty()) {
return null;
}
com.google.firebase.perf.v1.PerfSession[] perfSessionArr = new com.google.firebase.perf.v1.PerfSession[list.size()];
com.google.firebase.perf.v1.PerfSession build = ((PerfSession) list.get(0)).build();
boolean z = false;
for (int i = 1; i < list.size(); i++) {
com.google.firebase.perf.v1.PerfSession build2 = ((PerfSession) list.get(i)).build();
if (!z && ((PerfSession) list.get(i)).isVerbose()) {
perfSessionArr[0] = build2;
perfSessionArr[i] = build;
z = true;
} else {
perfSessionArr[i] = build2;
}
}
if (!z) {
perfSessionArr[0] = build;
}
return perfSessionArr;
}
public static boolean shouldCollectGaugesAndEvents() {
ConfigResolver configResolver = ConfigResolver.getInstance();
return configResolver.isPerformanceMonitoringEnabled() && Math.random() < configResolver.getSessionsSamplingRate();
}
@Override // android.os.Parcelable
public void writeToParcel(Parcel parcel, int i) {
parcel.writeString(this.sessionId);
parcel.writeByte(this.isGaugeAndEventCollectionEnabled ? (byte) 1 : (byte) 0);
parcel.writeParcelable(this.creationTime, 0);
}
}