package androidx.work.impl; import android.text.TextUtils; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.RestrictTo; import androidx.lifecycle.LiveData; import androidx.work.ArrayCreatingInputMerger; import androidx.work.ExistingWorkPolicy; import androidx.work.ListenableWorker; import androidx.work.Logger; import androidx.work.OneTimeWorkRequest; import androidx.work.Operation; import androidx.work.OperationKt; import androidx.work.WorkContinuation; import androidx.work.WorkInfo; import androidx.work.WorkRequest; import androidx.work.impl.utils.EnqueueRunnable; import androidx.work.impl.utils.StatusRunnable; import androidx.work.impl.workers.CombineContinuationsWorker; import com.google.common.util.concurrent.ListenableFuture; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Set; import kotlin.Unit; import kotlin.jvm.functions.Function0; @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP}) /* loaded from: classes.dex */ public class WorkContinuationImpl extends WorkContinuation { private static final String TAG = Logger.tagWithPrefix("WorkContinuationImpl"); private final List mAllIds; private boolean mEnqueued; private final ExistingWorkPolicy mExistingWorkPolicy; private final List mIds; private final String mName; private Operation mOperation; private final List mParents; private final List mWork; private final WorkManagerImpl mWorkManagerImpl; @NonNull public List getAllIds() { return this.mAllIds; } @NonNull public ExistingWorkPolicy getExistingWorkPolicy() { return this.mExistingWorkPolicy; } @NonNull public List getIds() { return this.mIds; } @Nullable public String getName() { return this.mName; } @Nullable public List getParents() { return this.mParents; } @NonNull public List getWork() { return this.mWork; } @NonNull public WorkManagerImpl getWorkManagerImpl() { return this.mWorkManagerImpl; } public boolean isEnqueued() { return this.mEnqueued; } public void markEnqueued() { this.mEnqueued = true; } public WorkContinuationImpl(@NonNull WorkManagerImpl workManagerImpl, @NonNull List list) { this(workManagerImpl, null, ExistingWorkPolicy.KEEP, list, null); } public WorkContinuationImpl(@NonNull WorkManagerImpl workManagerImpl, @Nullable String str, @NonNull ExistingWorkPolicy existingWorkPolicy, @NonNull List list) { this(workManagerImpl, str, existingWorkPolicy, list, null); } public WorkContinuationImpl(@NonNull WorkManagerImpl workManagerImpl, @Nullable String str, @NonNull ExistingWorkPolicy existingWorkPolicy, @NonNull List list, @Nullable List list2) { this.mWorkManagerImpl = workManagerImpl; this.mName = str; this.mExistingWorkPolicy = existingWorkPolicy; this.mWork = list; this.mParents = list2; this.mIds = new ArrayList(list.size()); this.mAllIds = new ArrayList(); if (list2 != null) { Iterator it = list2.iterator(); while (it.hasNext()) { this.mAllIds.addAll(it.next().mAllIds); } } for (int i = 0; i < list.size(); i++) { if (existingWorkPolicy == ExistingWorkPolicy.REPLACE && list.get(i).getWorkSpec().getNextScheduleTimeOverride() != Long.MAX_VALUE) { throw new IllegalArgumentException("Next Schedule Time Override must be used with ExistingPeriodicWorkPolicyUPDATE (preferably) or KEEP"); } String stringId = list.get(i).getStringId(); this.mIds.add(stringId); this.mAllIds.add(stringId); } } @Override // androidx.work.WorkContinuation @NonNull public WorkContinuation then(@NonNull List list) { return list.isEmpty() ? this : new WorkContinuationImpl(this.mWorkManagerImpl, this.mName, ExistingWorkPolicy.KEEP, list, Collections.singletonList(this)); } @Override // androidx.work.WorkContinuation @NonNull public LiveData> getWorkInfosLiveData() { return this.mWorkManagerImpl.getWorkInfosById(this.mAllIds); } @Override // androidx.work.WorkContinuation @NonNull public ListenableFuture getWorkInfos() { return StatusRunnable.forStringIds(this.mWorkManagerImpl.getWorkDatabase(), this.mWorkManagerImpl.getWorkTaskExecutor(), this.mAllIds); } @Override // androidx.work.WorkContinuation @NonNull public Operation enqueue() { if (!this.mEnqueued) { this.mOperation = OperationKt.launchOperation(this.mWorkManagerImpl.getConfiguration().getTracer(), "EnqueueRunnable_" + getExistingWorkPolicy().name(), this.mWorkManagerImpl.getWorkTaskExecutor().getSerialTaskExecutor(), new Function0() { // from class: androidx.work.impl.WorkContinuationImpl$$ExternalSyntheticLambda0 @Override // kotlin.jvm.functions.Function0 public final Object invoke() { Unit lambda$enqueue$0; lambda$enqueue$0 = WorkContinuationImpl.this.lambda$enqueue$0(); return lambda$enqueue$0; } }); } else { Logger.get().warning(TAG, "Already enqueued work ids (" + TextUtils.join(", ", this.mIds) + ")"); } return this.mOperation; } /* JADX INFO: Access modifiers changed from: private */ public /* synthetic */ Unit lambda$enqueue$0() { EnqueueRunnable.enqueue(this); return Unit.INSTANCE; } @Override // androidx.work.WorkContinuation @NonNull public WorkContinuation combineInternal(@NonNull List list) { OneTimeWorkRequest build = new OneTimeWorkRequest.Builder((Class) CombineContinuationsWorker.class).setInputMerger(ArrayCreatingInputMerger.class).build(); ArrayList arrayList = new ArrayList(list.size()); Iterator it = list.iterator(); while (it.hasNext()) { arrayList.add((WorkContinuationImpl) it.next()); } return new WorkContinuationImpl(this.mWorkManagerImpl, null, ExistingWorkPolicy.KEEP, Collections.singletonList(build), arrayList); } @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP}) public boolean hasCycles() { return hasCycles(this, new HashSet()); } @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP}) private static boolean hasCycles(@NonNull WorkContinuationImpl workContinuationImpl, @NonNull Set set) { set.addAll(workContinuationImpl.getIds()); Set prerequisitesFor = prerequisitesFor(workContinuationImpl); Iterator it = set.iterator(); while (it.hasNext()) { if (prerequisitesFor.contains(it.next())) { return true; } } List parents = workContinuationImpl.getParents(); if (parents != null && !parents.isEmpty()) { Iterator it2 = parents.iterator(); while (it2.hasNext()) { if (hasCycles(it2.next(), set)) { return true; } } } set.removeAll(workContinuationImpl.getIds()); return false; } @NonNull @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP}) public static Set prerequisitesFor(@NonNull WorkContinuationImpl workContinuationImpl) { HashSet hashSet = new HashSet(); List parents = workContinuationImpl.getParents(); if (parents != null && !parents.isEmpty()) { Iterator it = parents.iterator(); while (it.hasNext()) { hashSet.addAll(it.next().getIds()); } } return hashSet; } }