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>
This commit is contained in:
2026-02-18 14:52:23 -08:00
parent cc210a65ea
commit f9d20bb3fc
26991 changed files with 2541449 additions and 0 deletions

View File

@@ -0,0 +1,103 @@
package androidx.work.impl.utils;
import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
import androidx.annotation.VisibleForTesting;
import androidx.work.Logger;
import androidx.work.RunnableScheduler;
import androidx.work.impl.model.WorkGenerationalId;
import java.util.HashMap;
import java.util.Map;
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP})
/* loaded from: classes.dex */
public class WorkTimer {
private static final String TAG = Logger.tagWithPrefix("WorkTimer");
final RunnableScheduler mRunnableScheduler;
final Map<WorkGenerationalId, WorkTimerRunnable> mTimerMap = new HashMap();
final Map<WorkGenerationalId, TimeLimitExceededListener> mListeners = new HashMap();
final Object mLock = new Object();
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP})
public interface TimeLimitExceededListener {
void onTimeLimitExceeded(@NonNull WorkGenerationalId workGenerationalId);
}
public WorkTimer(@NonNull RunnableScheduler runnableScheduler) {
this.mRunnableScheduler = runnableScheduler;
}
public void startTimer(@NonNull WorkGenerationalId workGenerationalId, long j, @NonNull TimeLimitExceededListener timeLimitExceededListener) {
synchronized (this.mLock) {
Logger.get().debug(TAG, "Starting timer for " + workGenerationalId);
stopTimer(workGenerationalId);
WorkTimerRunnable workTimerRunnable = new WorkTimerRunnable(this, workGenerationalId);
this.mTimerMap.put(workGenerationalId, workTimerRunnable);
this.mListeners.put(workGenerationalId, timeLimitExceededListener);
this.mRunnableScheduler.scheduleWithDelay(j, workTimerRunnable);
}
}
public void stopTimer(@NonNull WorkGenerationalId workGenerationalId) {
synchronized (this.mLock) {
try {
if (this.mTimerMap.remove(workGenerationalId) != null) {
Logger.get().debug(TAG, "Stopping timer for " + workGenerationalId);
this.mListeners.remove(workGenerationalId);
}
} catch (Throwable th) {
throw th;
}
}
}
@NonNull
@VisibleForTesting
public Map<WorkGenerationalId, WorkTimerRunnable> getTimerMap() {
Map<WorkGenerationalId, WorkTimerRunnable> map;
synchronized (this.mLock) {
map = this.mTimerMap;
}
return map;
}
@NonNull
@VisibleForTesting
public Map<WorkGenerationalId, TimeLimitExceededListener> getListeners() {
Map<WorkGenerationalId, TimeLimitExceededListener> map;
synchronized (this.mLock) {
map = this.mListeners;
}
return map;
}
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP})
public static class WorkTimerRunnable implements Runnable {
static final String TAG = "WrkTimerRunnable";
private final WorkGenerationalId mWorkGenerationalId;
private final WorkTimer mWorkTimer;
public WorkTimerRunnable(@NonNull WorkTimer workTimer, @NonNull WorkGenerationalId workGenerationalId) {
this.mWorkTimer = workTimer;
this.mWorkGenerationalId = workGenerationalId;
}
@Override // java.lang.Runnable
public void run() {
synchronized (this.mWorkTimer.mLock) {
try {
if (this.mWorkTimer.mTimerMap.remove(this.mWorkGenerationalId) != null) {
TimeLimitExceededListener remove = this.mWorkTimer.mListeners.remove(this.mWorkGenerationalId);
if (remove != null) {
remove.onTimeLimitExceeded(this.mWorkGenerationalId);
}
} else {
Logger.get().debug(TAG, String.format("Timer with %s is already marked as complete.", this.mWorkGenerationalId));
}
} catch (Throwable th) {
throw th;
}
}
}
}
}