- 28,932 files - Full Java source code - Smali files - Resources Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
86 lines
4.1 KiB
Java
86 lines
4.1 KiB
Java
package androidx.work.impl.utils;
|
|
|
|
import android.text.TextUtils;
|
|
import androidx.annotation.NonNull;
|
|
import androidx.annotation.RestrictTo;
|
|
import androidx.annotation.VisibleForTesting;
|
|
import androidx.work.Logger;
|
|
import androidx.work.impl.Schedulers;
|
|
import androidx.work.impl.WorkContinuationImpl;
|
|
import androidx.work.impl.WorkDatabase;
|
|
import androidx.work.impl.WorkManagerImpl;
|
|
import java.util.List;
|
|
|
|
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP})
|
|
/* loaded from: classes.dex */
|
|
public class EnqueueRunnable {
|
|
private static final String TAG = Logger.tagWithPrefix("EnqueueRunnable");
|
|
|
|
private EnqueueRunnable() {
|
|
}
|
|
|
|
public static void enqueue(@NonNull WorkContinuationImpl workContinuationImpl) {
|
|
if (workContinuationImpl.hasCycles()) {
|
|
throw new IllegalStateException("WorkContinuation has cycles (" + workContinuationImpl + ")");
|
|
}
|
|
if (addToDatabase(workContinuationImpl)) {
|
|
scheduleWorkInBackground(workContinuationImpl);
|
|
}
|
|
}
|
|
|
|
@VisibleForTesting
|
|
public static boolean addToDatabase(@NonNull WorkContinuationImpl workContinuationImpl) {
|
|
WorkManagerImpl workManagerImpl = workContinuationImpl.getWorkManagerImpl();
|
|
WorkDatabase workDatabase = workManagerImpl.getWorkDatabase();
|
|
workDatabase.beginTransaction();
|
|
try {
|
|
EnqueueUtilsKt.checkContentUriTriggerWorkerLimits(workDatabase, workManagerImpl.getConfiguration(), workContinuationImpl);
|
|
boolean processContinuation = processContinuation(workContinuationImpl);
|
|
workDatabase.setTransactionSuccessful();
|
|
return processContinuation;
|
|
} finally {
|
|
workDatabase.endTransaction();
|
|
}
|
|
}
|
|
|
|
@VisibleForTesting
|
|
public static void scheduleWorkInBackground(@NonNull WorkContinuationImpl workContinuationImpl) {
|
|
WorkManagerImpl workManagerImpl = workContinuationImpl.getWorkManagerImpl();
|
|
Schedulers.schedule(workManagerImpl.getConfiguration(), workManagerImpl.getWorkDatabase(), workManagerImpl.getSchedulers());
|
|
}
|
|
|
|
private static boolean processContinuation(@NonNull WorkContinuationImpl workContinuationImpl) {
|
|
List<WorkContinuationImpl> parents = workContinuationImpl.getParents();
|
|
boolean z = false;
|
|
if (parents != null) {
|
|
for (WorkContinuationImpl workContinuationImpl2 : parents) {
|
|
if (!workContinuationImpl2.isEnqueued()) {
|
|
z |= processContinuation(workContinuationImpl2);
|
|
} else {
|
|
Logger.get().warning(TAG, "Already enqueued work ids (" + TextUtils.join(", ", workContinuationImpl2.getIds()) + ")");
|
|
}
|
|
}
|
|
}
|
|
return enqueueContinuation(workContinuationImpl) | z;
|
|
}
|
|
|
|
private static boolean enqueueContinuation(@NonNull WorkContinuationImpl workContinuationImpl) {
|
|
boolean enqueueWorkWithPrerequisites = enqueueWorkWithPrerequisites(workContinuationImpl.getWorkManagerImpl(), workContinuationImpl.getWork(), (String[]) WorkContinuationImpl.prerequisitesFor(workContinuationImpl).toArray(new String[0]), workContinuationImpl.getName(), workContinuationImpl.getExistingWorkPolicy());
|
|
workContinuationImpl.markEnqueued();
|
|
return enqueueWorkWithPrerequisites;
|
|
}
|
|
|
|
/* JADX WARN: Removed duplicated region for block: B:61:0x015f */
|
|
/*
|
|
Code decompiled incorrectly, please refer to instructions dump.
|
|
To view partially-correct add '--show-bad-code' argument
|
|
*/
|
|
private static boolean enqueueWorkWithPrerequisites(androidx.work.impl.WorkManagerImpl r18, @androidx.annotation.NonNull java.util.List<? extends androidx.work.WorkRequest> r19, java.lang.String[] r20, java.lang.String r21, androidx.work.ExistingWorkPolicy r22) {
|
|
/*
|
|
Method dump skipped, instructions count: 487
|
|
To view this dump add '--comments-level debug' option
|
|
*/
|
|
throw new UnsupportedOperationException("Method not decompiled: androidx.work.impl.utils.EnqueueRunnable.enqueueWorkWithPrerequisites(androidx.work.impl.WorkManagerImpl, java.util.List, java.lang.String[], java.lang.String, androidx.work.ExistingWorkPolicy):boolean");
|
|
}
|
|
}
|