jimu-decompiled/sources/com/afunx/ble/blelitelib/proxy/scheme/BleGattReconnectSchemeDefaultImpl.java
2025-05-13 19:24:51 +02:00

96 lines
3.8 KiB
Java

package com.afunx.ble.blelitelib.proxy.scheme;
import com.afunx.ble.blelitelib.log.BleLiteLog;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.atomic.AtomicInteger;
/* loaded from: classes.dex */
public class BleGattReconnectSchemeDefaultImpl implements BleGattReconnectScheme {
private static final String TAG = "BleGattReconnectSchemeDefaultImpl";
private Runnable mDisconnectedCallback;
private final AtomicInteger mCount = new AtomicInteger();
private final Timer mTimer = new Timer();
private TimerTask mTimerTask = null;
private volatile long mTimeoutMilli = 0;
private volatile boolean mTryAgain = true;
private synchronized void addTimerTask(long j) {
BleLiteLog.i(TAG, "addTimerTask() delayMilli: " + j);
this.mTimerTask = new TimerTask() { // from class: com.afunx.ble.blelitelib.proxy.scheme.BleGattReconnectSchemeDefaultImpl.1
@Override // java.util.TimerTask, java.lang.Runnable
public void run() {
BleLiteLog.i(BleGattReconnectSchemeDefaultImpl.TAG, "addTimerTask() run()");
BleGattReconnectSchemeDefaultImpl.this.mTryAgain = false;
if (BleGattReconnectSchemeDefaultImpl.this.mDisconnectedCallback != null) {
BleGattReconnectSchemeDefaultImpl.this.mDisconnectedCallback.run();
}
}
};
this.mTimer.schedule(this.mTimerTask, j);
}
private synchronized boolean removeTimerTask() {
BleLiteLog.i(TAG, "removeTimerTask()");
if (this.mTimerTask == null) {
this.mTryAgain = true;
BleLiteLog.i(TAG, "removeTimerTask() mTryAgain = true");
return false;
}
BleLiteLog.i(TAG, "removeTimerTask() cancel()");
boolean cancel = this.mTimerTask.cancel();
this.mTimerTask = null;
return cancel;
}
@Override // com.afunx.ble.blelitelib.proxy.scheme.BleGattReconnectScheme
public int addAndGetRetryCount() {
return this.mCount.addAndGet(1);
}
@Override // com.afunx.ble.blelitelib.proxy.scheme.BleGattReconnectScheme
public synchronized void callDisconnectCallbackInstantly() {
BleLiteLog.i(TAG, "callDisconnectCallbackInstantly()");
if (this.mTimerTask == null) {
BleLiteLog.i(TAG, "callDisconnectCallbackInstantly() run()");
if (this.mDisconnectedCallback != null) {
this.mDisconnectedCallback.run();
}
} else if (removeTimerTask()) {
BleLiteLog.i(TAG, "callDisconnectCallbackInstantly() run() for cancelled already");
if (this.mDisconnectedCallback != null) {
this.mDisconnectedCallback.run();
}
}
}
@Override // com.afunx.ble.blelitelib.proxy.scheme.BleGattReconnectScheme
public void clearRetryCount() {
removeTimerTask();
this.mCount.set(0);
}
@Override // com.afunx.ble.blelitelib.proxy.scheme.BleGattReconnectScheme
public synchronized long getSleepTimestamp(int i) {
BleLiteLog.i(TAG, "getSleepTimestamp() retryCount: " + i + ", mDisconnectedCallback: " + this.mDisconnectedCallback);
if (i == 1 && this.mDisconnectedCallback != null) {
addTimerTask(this.mTimeoutMilli);
}
return (2 << (i - 1)) * 1000;
}
@Override // com.afunx.ble.blelitelib.proxy.scheme.BleGattReconnectScheme
public synchronized void setDisconnectCallback(Runnable runnable, long j) {
if (j < 0) {
throw new IllegalArgumentException("timeoutMilli should >= 0");
}
this.mTimeoutMilli = j;
this.mDisconnectedCallback = runnable;
}
@Override // com.afunx.ble.blelitelib.proxy.scheme.BleGattReconnectScheme
public boolean tryAgain() {
return this.mTryAgain;
}
}