Badge images report the certificate status at the moment they are fetched
BackProbeIntegrity Authority
dev/mishka/gamblerplus/client/Stats.class 4.0 KB
Class
public final synchronized dev.mishka.gamblerplus.client.Stats
Extends
java.lang.Object
Implements
nothing
Compiled for
Java 21

Reconstructed source

// Reconstructed from bytecode by BackProbe (dev/mishka/gamblerplus/client/Stats.class, Java 21); this is not the original source.

package dev.mishka.gamblerplus.client;

import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Deque;
import java.util.List;

public final class Stats {

    public static final int LOG_CAP;
    public static final long TOAST_DURATION_MS;
    private long sessionIn;
    private long sessionOut;
    private int sessionInCount;
    private int sessionOutCount;
    private int lossStreak;
    private int longestLossStreak;
    private int longestWinStreak;
    private int winStreak;
    private long allTimeIn;
    private long allTimeOut;
    private int allTimeInCount;
    private int allTimeOutCount;
    private final Deque log;
    private volatile long toastUntilMs;
    private volatile long toastShownAtMs;
    private volatile int toastStreak;

    public Stats() {
        super();
        this.log = new ArrayDeque();
        return;
    }

    public synchronized void loadPersisted(long arg0, long arg1, int arg2, int arg3) {
        this.allTimeIn = arg0;
        this.allTimeOut = arg1;
        this.allTimeInCount = arg2;
        this.allTimeOutCount = arg3;
        return;
    }

    public synchronized void record(PaymentEvent arg0, int arg1) {
        this.log.addFirst(arg0);
    L10:
        if (this.log.size() <= 100) goto L37;
        this.log.removeLast();
        goto L10;
    L37:
        if (!arg0.incoming()) goto L127;
        this.sessionIn = (this.sessionIn + arg0.amount());
        this.sessionInCount = (this.sessionInCount + 1);
        this.allTimeIn = (this.allTimeIn + arg0.amount());
        this.allTimeInCount = (this.allTimeInCount + 1);
        this.lossStreak = 0;
        this.winStreak = (this.winStreak + 1);
        if (this.winStreak <= this.longestWinStreak) goto L242;
        this.longestWinStreak = this.winStreak;
        goto L242;
    L127:
        this.sessionOut = (this.sessionOut + arg0.amount());
        this.sessionOutCount = (this.sessionOutCount + 1);
        this.allTimeOut = (this.allTimeOut + arg0.amount());
        this.allTimeOutCount = (this.allTimeOutCount + 1);
        this.winStreak = 0;
        this.lossStreak = (this.lossStreak + 1);
        if (this.lossStreak <= this.longestLossStreak) goto L207;
        this.longestLossStreak = this.lossStreak;
    L207:
        if (this.lossStreak < arg1) goto L242;
        this.toastStreak = this.lossStreak;
        this.toastShownAtMs = System.currentTimeMillis();
        this.toastUntilMs = (this.toastShownAtMs + 6000L);
    L242:
        return;
    }

    public synchronized void resetSession() {
        this.sessionOut = 0L;
        this.sessionIn = 0L;
        this.sessionOutCount = 0;
        this.sessionInCount = 0;
        this.winStreak = 0;
        this.lossStreak = 0;
        this.longestWinStreak = 0;
        this.longestLossStreak = 0;
        this.log.clear();
        this.toastUntilMs = 0L;
        return;
    }

    public synchronized void resetAllTime() {
        this.allTimeOut = 0L;
        this.allTimeIn = 0L;
        this.allTimeOutCount = 0;
        this.allTimeInCount = 0;
        return;
    }

    public synchronized long sessionIn() {
        return this.sessionIn;
    }

    public synchronized long sessionOut() {
        return this.sessionOut;
    }

    public synchronized long sessionNet() {
        return (this.sessionIn - this.sessionOut);
    }

    public synchronized int sessionInCount() {
        return this.sessionInCount;
    }

    public synchronized int sessionOutCount() {
        return this.sessionOutCount;
    }

    public synchronized int lossStreak() {
        return this.lossStreak;
    }

    public synchronized int winStreak() {
        return this.winStreak;
    }

    public synchronized int longestLossStreak() {
        return this.longestLossStreak;
    }

    public synchronized int longestWinStreak() {
        return this.longestWinStreak;
    }

    public synchronized long allTimeIn() {
        return this.allTimeIn;
    }

    public synchronized long allTimeOut() {
        return this.allTimeOut;
    }

    public synchronized long allTimeNet() {
        return (this.allTimeIn - this.allTimeOut);
    }

    public synchronized int allTimeInCount() {
        return this.allTimeInCount;
    }

    public synchronized int allTimeOutCount() {
        return this.allTimeOutCount;
    }

    public synchronized double sessionProfitPct() {
        if (Long.compare(this.sessionOut, 0L) != 0) goto L11;
        return 0.0;
    L11:
        return ((((double) this.sessionNet()) / ((double) this.sessionOut)) * 100.0);
    }

    public synchronized List snapshot() {
        return new ArrayList(this.log);
    }

    public long toastUntilMs() {
        return this.toastUntilMs;
    }

    public long toastShownAtMs() {
        return this.toastShownAtMs;
    }

    public int toastStreak() {
        return this.toastStreak;
    }

    public void clearToast() {
        this.toastUntilMs = 0L;
        return;
    }
}

Methods declared

public void <init>()
public synchronized void loadPersisted(long, long, int, int)
public synchronized void record(dev.mishka.gamblerplus.client.PaymentEvent, int)
public synchronized void resetSession()
public synchronized void resetAllTime()
public synchronized long sessionIn()
public synchronized long sessionOut()
public synchronized long sessionNet()
public synchronized int sessionInCount()
public synchronized int sessionOutCount()
public synchronized int lossStreak()
public synchronized int winStreak()
public synchronized int longestLossStreak()
public synchronized int longestWinStreak()
public synchronized long allTimeIn()
public synchronized long allTimeOut()
public synchronized long allTimeNet()
public synchronized int allTimeInCount()
public synchronized int allTimeOutCount()
public synchronized double sessionProfitPct()
public synchronized java.util.List snapshot()
public long toastUntilMs()
public long toastShownAtMs()
public int toastStreak()
public void clearToast()

Fields

public static final int LOG_CAP
public static final long TOAST_DURATION_MS
private long sessionIn
private long sessionOut
private int sessionInCount
private int sessionOutCount
private int lossStreak
private int longestLossStreak
private int longestWinStreak
private int winStreak
private long allTimeIn
private long allTimeOut
private int allTimeInCount
private int allTimeOutCount
private final java.util.Deque log
private volatile long toastUntilMs
private volatile long toastShownAtMs
private volatile int toastStreak

Calls out to

dev.mishka.gamblerplus.client.PaymentEvent.amount() : long
dev.mishka.gamblerplus.client.PaymentEvent.incoming() : boolean
long dev.mishka.gamblerplus.client.Stats.allTimeIn
int dev.mishka.gamblerplus.client.Stats.allTimeInCount
long dev.mishka.gamblerplus.client.Stats.allTimeOut
int dev.mishka.gamblerplus.client.Stats.allTimeOutCount
java.util.Deque dev.mishka.gamblerplus.client.Stats.log
int dev.mishka.gamblerplus.client.Stats.longestLossStreak
int dev.mishka.gamblerplus.client.Stats.longestWinStreak
int dev.mishka.gamblerplus.client.Stats.lossStreak
long dev.mishka.gamblerplus.client.Stats.sessionIn
int dev.mishka.gamblerplus.client.Stats.sessionInCount
dev.mishka.gamblerplus.client.Stats.sessionNet() : long
long dev.mishka.gamblerplus.client.Stats.sessionOut
int dev.mishka.gamblerplus.client.Stats.sessionOutCount
long dev.mishka.gamblerplus.client.Stats.toastShownAtMs
int dev.mishka.gamblerplus.client.Stats.toastStreak
long dev.mishka.gamblerplus.client.Stats.toastUntilMs
int dev.mishka.gamblerplus.client.Stats.winStreak
java.lang.Object.<init>()
java.lang.System.currentTimeMillis() : long
java.util.ArrayDeque.<init>()
java.util.ArrayList.<init>(java.util.Collection)
java.util.Deque.addFirst(java.lang.Object)
java.util.Deque.clear()
java.util.Deque.removeLast() : java.lang.Object
java.util.Deque.size() : int

Text compiled into the class

No string literals.