discord-jadx/app/src/main/java/androidx/work/PeriodicWorkRequest.java

64 lines
2.6 KiB
Java

package androidx.work;
import android.annotation.SuppressLint;
import android.os.Build;
import androidx.annotation.NonNull;
import androidx.annotation.RequiresApi;
import androidx.work.WorkRequest;
import androidx.work.impl.model.WorkSpec;
import java.time.Duration;
import java.util.concurrent.TimeUnit;
public final class PeriodicWorkRequest extends WorkRequest {
@SuppressLint({"MinMaxConstant"})
public static final long MIN_PERIODIC_FLEX_MILLIS = 300000;
@SuppressLint({"MinMaxConstant"})
public static final long MIN_PERIODIC_INTERVAL_MILLIS = 900000;
public static final class Builder extends WorkRequest.Builder<Builder, PeriodicWorkRequest> {
public Builder(@NonNull Class<? extends ListenableWorker> cls, long j, @NonNull TimeUnit timeUnit) {
super(cls);
this.mWorkSpec.setPeriodic(timeUnit.toMillis(j));
}
public Builder(@NonNull Class<? extends ListenableWorker> cls, long j, @NonNull TimeUnit timeUnit, long j2, @NonNull TimeUnit timeUnit2) {
super(cls);
this.mWorkSpec.setPeriodic(timeUnit.toMillis(j), timeUnit2.toMillis(j2));
}
@RequiresApi(26)
public Builder(@NonNull Class<? extends ListenableWorker> cls, @NonNull Duration duration) {
super(cls);
this.mWorkSpec.setPeriodic(duration.toMillis());
}
@RequiresApi(26)
public Builder(@NonNull Class<? extends ListenableWorker> cls, @NonNull Duration duration, @NonNull Duration duration2) {
super(cls);
this.mWorkSpec.setPeriodic(duration.toMillis(), duration2.toMillis());
}
@Override // androidx.work.WorkRequest.Builder
@NonNull
public PeriodicWorkRequest buildInternal() {
if (!this.mBackoffCriteriaSet || Build.VERSION.SDK_INT < 23 || !this.mWorkSpec.constraints.requiresDeviceIdle()) {
WorkSpec workSpec = this.mWorkSpec;
if (!workSpec.runInForeground || Build.VERSION.SDK_INT < 23 || !workSpec.constraints.requiresDeviceIdle()) {
return new PeriodicWorkRequest(this);
}
throw new IllegalArgumentException("Cannot run in foreground with an idle mode constraint");
}
throw new IllegalArgumentException("Cannot set backoff criteria on an idle mode job");
}
@Override // androidx.work.WorkRequest.Builder
@NonNull
public Builder getThis() {
return this;
}
}
public PeriodicWorkRequest(Builder builder) {
super(builder.mId, builder.mWorkSpec, builder.mTags);
}
}