Files
rr3-apk/decompiled/sources/com/google/firebase/perf/session/PerfSession.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

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);
}
}