discord-jadx/app/src/main/java/androidx/work/impl/background/systemalarm/ConstraintsCommandHandler.java

54 lines
2.6 KiB
Java

package androidx.work.impl.background.systemalarm;
import android.content.Context;
import android.content.Intent;
import androidx.annotation.NonNull;
import androidx.annotation.RestrictTo;
import androidx.annotation.WorkerThread;
import androidx.work.Logger;
import androidx.work.impl.background.systemalarm.SystemAlarmDispatcher;
import androidx.work.impl.constraints.WorkConstraintsTracker;
import androidx.work.impl.model.WorkSpec;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP})
public class ConstraintsCommandHandler {
private static final String TAG = Logger.tagWithPrefix("ConstraintsCmdHandler");
private final Context mContext;
private final SystemAlarmDispatcher mDispatcher;
private final int mStartId;
private final WorkConstraintsTracker mWorkConstraintsTracker;
public ConstraintsCommandHandler(@NonNull Context context, int i, @NonNull SystemAlarmDispatcher systemAlarmDispatcher) {
this.mContext = context;
this.mStartId = i;
this.mDispatcher = systemAlarmDispatcher;
this.mWorkConstraintsTracker = new WorkConstraintsTracker(context, systemAlarmDispatcher.getTaskExecutor(), null);
}
@WorkerThread
public void handleConstraintsChanged() {
List<WorkSpec> scheduledWork = this.mDispatcher.getWorkManager().getWorkDatabase().workSpecDao().getScheduledWork();
ConstraintProxy.updateAll(this.mContext, scheduledWork);
this.mWorkConstraintsTracker.replace(scheduledWork);
ArrayList arrayList = new ArrayList(scheduledWork.size());
long currentTimeMillis = System.currentTimeMillis();
for (WorkSpec workSpec : scheduledWork) {
String str = workSpec.f29id;
if (currentTimeMillis >= workSpec.calculateNextRunTime() && (!workSpec.hasConstraints() || this.mWorkConstraintsTracker.areAllConstraintsMet(str))) {
arrayList.add(workSpec);
}
}
Iterator it = arrayList.iterator();
while (it.hasNext()) {
String str2 = ((WorkSpec) it.next()).f29id;
Intent createDelayMetIntent = CommandHandler.createDelayMetIntent(this.mContext, str2);
Logger.get().debug(TAG, String.format("Creating a delay_met command for workSpec with id (%s)", str2), new Throwable[0]);
SystemAlarmDispatcher systemAlarmDispatcher = this.mDispatcher;
systemAlarmDispatcher.postOnMainThread(new SystemAlarmDispatcher.AddRunnable(systemAlarmDispatcher, createDelayMetIntent, this.mStartId));
}
this.mWorkConstraintsTracker.reset();
}
}