- 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
121 lines
4.4 KiB
Java
121 lines
4.4 KiB
Java
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);
|
|
}
|
|
}
|