package androidx.work.impl.model; import androidx.annotation.IntRange; import androidx.annotation.NonNull; import androidx.annotation.RestrictTo; import androidx.arch.core.util.Function; import androidx.room.ColumnInfo; import androidx.room.Embedded; import androidx.room.Entity; import androidx.room.Index; import androidx.room.PrimaryKey; import androidx.room.Relation; import androidx.work.BackoffPolicy; import androidx.work.Constraints; import androidx.work.Data; import androidx.work.Logger; import androidx.work.WorkInfo; import androidx.work.WorkRequest; import c.d.b.a.a; import com.discord.models.domain.ModelAuditLogEntry; import java.util.ArrayList; import java.util.List; import java.util.UUID; @Entity(indices = {@Index({"schedule_requested_at"}), @Index({"period_start_time"})}) @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP}) public final class WorkSpec { public static final long SCHEDULE_NOT_REQUESTED_YET = -1; private static final String TAG = Logger.tagWithPrefix("WorkSpec"); public static final Function, List> WORK_INFO_MAPPER = new AnonymousClass1(); @ColumnInfo(name = "backoff_delay_duration") public long backoffDelayDuration; @NonNull @ColumnInfo(name = "backoff_policy") public BackoffPolicy backoffPolicy; @NonNull @Embedded public Constraints constraints; @ColumnInfo(name = "flex_duration") public long flexDuration; @NonNull @PrimaryKey @ColumnInfo(name = ModelAuditLogEntry.CHANGE_KEY_ID) /* renamed from: id reason: collision with root package name */ public String f29id; @ColumnInfo(name = "initial_delay") public long initialDelay; @NonNull @ColumnInfo(name = "input") public Data input; @ColumnInfo(name = "input_merger_class_name") public String inputMergerClassName; @ColumnInfo(name = "interval_duration") public long intervalDuration; @ColumnInfo(name = "minimum_retention_duration") public long minimumRetentionDuration; @NonNull @ColumnInfo(name = "output") public Data output; @ColumnInfo(name = "period_start_time") public long periodStartTime; @IntRange(from = 0) @ColumnInfo(name = "run_attempt_count") public int runAttemptCount; @ColumnInfo(name = "run_in_foreground") public boolean runInForeground; @ColumnInfo(name = "schedule_requested_at") public long scheduleRequestedAt; @NonNull @ColumnInfo(name = "state") public WorkInfo.State state = WorkInfo.State.ENQUEUED; @NonNull @ColumnInfo(name = "worker_class_name") public String workerClassName; /* renamed from: androidx.work.impl.model.WorkSpec$1 reason: invalid class name */ public class AnonymousClass1 implements Function, List> { public List apply(List list) { if (list == null) { return null; } ArrayList arrayList = new ArrayList(list.size()); for (WorkInfoPojo workInfoPojo : list) { arrayList.add(workInfoPojo.toWorkInfo()); } return arrayList; } } public static class IdAndState { @ColumnInfo(name = ModelAuditLogEntry.CHANGE_KEY_ID) /* renamed from: id reason: collision with root package name */ public String f30id; @ColumnInfo(name = "state") public WorkInfo.State state; public boolean equals(Object obj) { if (this == obj) { return true; } if (!(obj instanceof IdAndState)) { return false; } IdAndState idAndState = (IdAndState) obj; if (this.state != idAndState.state) { return false; } return this.f30id.equals(idAndState.f30id); } public int hashCode() { return this.state.hashCode() + (this.f30id.hashCode() * 31); } } public static class WorkInfoPojo { @ColumnInfo(name = ModelAuditLogEntry.CHANGE_KEY_ID) /* renamed from: id reason: collision with root package name */ public String f31id; @ColumnInfo(name = "output") public Data output; @Relation(entity = WorkProgress.class, entityColumn = "work_spec_id", parentColumn = ModelAuditLogEntry.CHANGE_KEY_ID, projection = {"progress"}) public List progress; @ColumnInfo(name = "run_attempt_count") public int runAttemptCount; @ColumnInfo(name = "state") public WorkInfo.State state; @Relation(entity = WorkTag.class, entityColumn = "work_spec_id", parentColumn = ModelAuditLogEntry.CHANGE_KEY_ID, projection = {"tag"}) public List tags; public boolean equals(Object obj) { if (this == obj) { return true; } if (!(obj instanceof WorkInfoPojo)) { return false; } WorkInfoPojo workInfoPojo = (WorkInfoPojo) obj; if (this.runAttemptCount != workInfoPojo.runAttemptCount) { return false; } String str = this.f31id; if (str == null ? workInfoPojo.f31id != null : !str.equals(workInfoPojo.f31id)) { return false; } if (this.state != workInfoPojo.state) { return false; } Data data = this.output; if (data == null ? workInfoPojo.output != null : !data.equals(workInfoPojo.output)) { return false; } List list = this.tags; if (list == null ? workInfoPojo.tags != null : !list.equals(workInfoPojo.tags)) { return false; } List list2 = this.progress; List list3 = workInfoPojo.progress; return list2 != null ? list2.equals(list3) : list3 == null; } public int hashCode() { String str = this.f31id; int i = 0; int hashCode = (str != null ? str.hashCode() : 0) * 31; WorkInfo.State state = this.state; int hashCode2 = (hashCode + (state != null ? state.hashCode() : 0)) * 31; Data data = this.output; int hashCode3 = (((hashCode2 + (data != null ? data.hashCode() : 0)) * 31) + this.runAttemptCount) * 31; List list = this.tags; int hashCode4 = (hashCode3 + (list != null ? list.hashCode() : 0)) * 31; List list2 = this.progress; if (list2 != null) { i = list2.hashCode(); } return hashCode4 + i; } @NonNull public WorkInfo toWorkInfo() { List list = this.progress; return new WorkInfo(UUID.fromString(this.f31id), this.state, this.output, this.tags, (list == null || list.isEmpty()) ? Data.EMPTY : this.progress.get(0), this.runAttemptCount); } } public WorkSpec(@NonNull WorkSpec workSpec) { Data data = Data.EMPTY; this.input = data; this.output = data; this.constraints = Constraints.NONE; this.backoffPolicy = BackoffPolicy.EXPONENTIAL; this.backoffDelayDuration = 30000; this.scheduleRequestedAt = -1; this.f29id = workSpec.f29id; this.workerClassName = workSpec.workerClassName; this.state = workSpec.state; this.inputMergerClassName = workSpec.inputMergerClassName; this.input = new Data(workSpec.input); this.output = new Data(workSpec.output); this.initialDelay = workSpec.initialDelay; this.intervalDuration = workSpec.intervalDuration; this.flexDuration = workSpec.flexDuration; this.constraints = new Constraints(workSpec.constraints); this.runAttemptCount = workSpec.runAttemptCount; this.backoffPolicy = workSpec.backoffPolicy; this.backoffDelayDuration = workSpec.backoffDelayDuration; this.periodStartTime = workSpec.periodStartTime; this.minimumRetentionDuration = workSpec.minimumRetentionDuration; this.scheduleRequestedAt = workSpec.scheduleRequestedAt; this.runInForeground = workSpec.runInForeground; } public WorkSpec(@NonNull String str, @NonNull String str2) { Data data = Data.EMPTY; this.input = data; this.output = data; this.constraints = Constraints.NONE; this.backoffPolicy = BackoffPolicy.EXPONENTIAL; this.backoffDelayDuration = 30000; this.scheduleRequestedAt = -1; this.f29id = str; this.workerClassName = str2; } public long calculateNextRunTime() { long j; long j2; boolean z2 = false; if (isBackedOff()) { if (this.backoffPolicy == BackoffPolicy.LINEAR) { z2 = true; } long scalb = z2 ? this.backoffDelayDuration * ((long) this.runAttemptCount) : (long) Math.scalb((float) this.backoffDelayDuration, this.runAttemptCount - 1); j2 = this.periodStartTime; j = Math.min((long) WorkRequest.MAX_BACKOFF_MILLIS, scalb); } else { long j3 = 0; if (isPeriodic()) { long currentTimeMillis = System.currentTimeMillis(); long j4 = this.periodStartTime; long j5 = j4 == 0 ? currentTimeMillis + this.initialDelay : j4; long j6 = this.flexDuration; long j7 = this.intervalDuration; if (j6 != j7) { z2 = true; } if (z2) { if (j4 == 0) { j3 = j6 * -1; } return j5 + j7 + j3; } if (j4 != 0) { j3 = j7; } return j5 + j3; } j = this.periodStartTime; if (j == 0) { j = System.currentTimeMillis(); } j2 = this.initialDelay; } return j + j2; } public boolean equals(Object obj) { if (this == obj) { return true; } if (!(obj instanceof WorkSpec)) { return false; } WorkSpec workSpec = (WorkSpec) obj; if (this.initialDelay != workSpec.initialDelay || this.intervalDuration != workSpec.intervalDuration || this.flexDuration != workSpec.flexDuration || this.runAttemptCount != workSpec.runAttemptCount || this.backoffDelayDuration != workSpec.backoffDelayDuration || this.periodStartTime != workSpec.periodStartTime || this.minimumRetentionDuration != workSpec.minimumRetentionDuration || this.scheduleRequestedAt != workSpec.scheduleRequestedAt || this.runInForeground != workSpec.runInForeground || !this.f29id.equals(workSpec.f29id) || this.state != workSpec.state || !this.workerClassName.equals(workSpec.workerClassName)) { return false; } String str = this.inputMergerClassName; if (str == null ? workSpec.inputMergerClassName == null : str.equals(workSpec.inputMergerClassName)) { return this.input.equals(workSpec.input) && this.output.equals(workSpec.output) && this.constraints.equals(workSpec.constraints) && this.backoffPolicy == workSpec.backoffPolicy; } return false; } public boolean hasConstraints() { return !Constraints.NONE.equals(this.constraints); } public int hashCode() { int m = a.m(this.workerClassName, (this.state.hashCode() + (this.f29id.hashCode() * 31)) * 31, 31); String str = this.inputMergerClassName; int hashCode = str != null ? str.hashCode() : 0; int hashCode2 = this.input.hashCode(); int hashCode3 = this.output.hashCode(); long j = this.initialDelay; long j2 = this.intervalDuration; long j3 = this.flexDuration; int hashCode4 = this.constraints.hashCode(); int hashCode5 = this.backoffPolicy.hashCode(); long j4 = this.backoffDelayDuration; long j5 = this.periodStartTime; long j6 = this.minimumRetentionDuration; long j7 = this.scheduleRequestedAt; return ((((((((((hashCode5 + ((((hashCode4 + ((((((((hashCode3 + ((hashCode2 + ((m + hashCode) * 31)) * 31)) * 31) + ((int) (j ^ (j >>> 32)))) * 31) + ((int) (j2 ^ (j2 >>> 32)))) * 31) + ((int) (j3 ^ (j3 >>> 32)))) * 31)) * 31) + this.runAttemptCount) * 31)) * 31) + ((int) (j4 ^ (j4 >>> 32)))) * 31) + ((int) (j5 ^ (j5 >>> 32)))) * 31) + ((int) (j6 ^ (j6 >>> 32)))) * 31) + ((int) (j7 ^ (j7 >>> 32)))) * 31) + (this.runInForeground ? 1 : 0); } public boolean isBackedOff() { return this.state == WorkInfo.State.ENQUEUED && this.runAttemptCount > 0; } public boolean isPeriodic() { return this.intervalDuration != 0; } public void setBackoffDelayDuration(long j) { if (j > WorkRequest.MAX_BACKOFF_MILLIS) { Logger.get().warning(TAG, "Backoff delay duration exceeds maximum value", new Throwable[0]); j = 18000000; } if (j < 10000) { Logger.get().warning(TAG, "Backoff delay duration less than minimum value", new Throwable[0]); j = 10000; } this.backoffDelayDuration = j; } public void setPeriodic(long j) { if (j < 900000) { Logger.get().warning(TAG, String.format("Interval duration lesser than minimum allowed value; Changed to %s", 900000L), new Throwable[0]); j = 900000; } setPeriodic(j, j); } public void setPeriodic(long j, long j2) { if (j < 900000) { Logger.get().warning(TAG, String.format("Interval duration lesser than minimum allowed value; Changed to %s", 900000L), new Throwable[0]); j = 900000; } if (j2 < 300000) { Logger.get().warning(TAG, String.format("Flex duration lesser than minimum allowed value; Changed to %s", 300000L), new Throwable[0]); j2 = 300000; } if (j2 > j) { Logger.get().warning(TAG, String.format("Flex duration greater than interval duration; Changed to %s", Long.valueOf(j)), new Throwable[0]); j2 = j; } this.intervalDuration = j; this.flexDuration = j2; } @NonNull public String toString() { return a.C(a.K("{WorkSpec: "), this.f29id, "}"); } }