.class Landroidx/work/impl/background/systemjob/SystemJobInfoConverter; .super Ljava/lang/Object; .source "SourceFile" # annotations .annotation build Landroid/annotation/SuppressLint; value = { "ClassVerificationFailure" } .end annotation .annotation build Landroidx/annotation/RequiresApi; api = 0x17 .end annotation .annotation build Landroidx/annotation/RestrictTo; value = { .enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY_GROUP:Landroidx/annotation/RestrictTo$Scope; } .end annotation # static fields .field static final EXTRA_IS_PERIODIC:Ljava/lang/String; = "EXTRA_IS_PERIODIC" .field static final EXTRA_WORK_SPEC_GENERATION:Ljava/lang/String; = "EXTRA_WORK_SPEC_GENERATION" .field static final EXTRA_WORK_SPEC_ID:Ljava/lang/String; = "EXTRA_WORK_SPEC_ID" .field private static final TAG:Ljava/lang/String; # instance fields .field private final mClock:Landroidx/work/Clock; .field private final mMarkImportantWhileForeground:Z .field private final mWorkServiceComponent:Landroid/content/ComponentName; # direct methods .method static constructor ()V .locals 1 const-string v0, "SystemJobInfoConverter" .line 49 invoke-static {v0}, Landroidx/work/Logger;->tagWithPrefix(Ljava/lang/String;)Ljava/lang/String; move-result-object v0 sput-object v0, Landroidx/work/impl/background/systemjob/SystemJobInfoConverter;->TAG:Ljava/lang/String; return-void .end method .method public constructor (Landroid/content/Context;Landroidx/work/Clock;Z)V .locals 1 .param p1 # Landroid/content/Context; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .line 60 invoke-direct {p0}, Ljava/lang/Object;->()V iput-object p2, p0, Landroidx/work/impl/background/systemjob/SystemJobInfoConverter;->mClock:Landroidx/work/Clock; .line 62 invoke-virtual {p1}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context; move-result-object p1 .line 63 new-instance p2, Landroid/content/ComponentName; const-class v0, Landroidx/work/impl/background/systemjob/SystemJobService; invoke-direct {p2, p1, v0}, Landroid/content/ComponentName;->(Landroid/content/Context;Ljava/lang/Class;)V iput-object p2, p0, Landroidx/work/impl/background/systemjob/SystemJobInfoConverter;->mWorkServiceComponent:Landroid/content/ComponentName; iput-boolean p3, p0, Landroidx/work/impl/background/systemjob/SystemJobInfoConverter;->mMarkImportantWhileForeground:Z return-void .end method .method private static convertContentUriTrigger(Landroidx/work/Constraints$ContentUriTrigger;)Landroid/app/job/JobInfo$TriggerContentUri; .locals 2 .annotation build Landroidx/annotation/RequiresApi; value = 0x18 .end annotation .line 155 invoke-virtual {p0}, Landroidx/work/Constraints$ContentUriTrigger;->isTriggeredForDescendants()Z move-result v0 .line 157 new-instance v1, Landroid/app/job/JobInfo$TriggerContentUri; invoke-virtual {p0}, Landroidx/work/Constraints$ContentUriTrigger;->getUri()Landroid/net/Uri; move-result-object p0 invoke-direct {v1, p0, v0}, Landroid/app/job/JobInfo$TriggerContentUri;->(Landroid/net/Uri;I)V return-object v1 .end method .method public static convertNetworkType(Landroidx/work/NetworkType;)I .locals 5 .line 189 sget-object v0, Landroidx/work/impl/background/systemjob/SystemJobInfoConverter$1;->$SwitchMap$androidx$work$NetworkType:[I invoke-virtual {p0}, Ljava/lang/Enum;->ordinal()I move-result v1 aget v0, v0, v1 const/4 v1, 0x1 if-eq v0, v1, :cond_4 const/4 v2, 0x2 if-eq v0, v2, :cond_3 const/4 v3, 0x3 if-eq v0, v3, :cond_2 const/4 v2, 0x4 if-eq v0, v2, :cond_1 const/4 v3, 0x5 if-eq v0, v3, :cond_0 .line 207 invoke-static {}, Landroidx/work/Logger;->get()Landroidx/work/Logger; move-result-object v0 sget-object v2, Landroidx/work/impl/background/systemjob/SystemJobInfoConverter;->TAG:Ljava/lang/String; new-instance v3, Ljava/lang/StringBuilder; invoke-direct {v3}, Ljava/lang/StringBuilder;->()V const-string v4, "API version too low. Cannot convert network type value " invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p0 invoke-virtual {v0, v2, p0}, Landroidx/work/Logger;->debug(Ljava/lang/String;Ljava/lang/String;)V return v1 :cond_0 return v2 :cond_1 return v3 :cond_2 return v2 :cond_3 return v1 :cond_4 const/4 p0, 0x0 return p0 .end method .method public static setRequiredNetwork(Landroid/app/job/JobInfo$Builder;Landroidx/work/NetworkType;)V .locals 2 .param p0 # Landroid/app/job/JobInfo$Builder; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .param p1 # Landroidx/work/NetworkType; .annotation build Landroidx/annotation/NonNull; .end annotation .end param sget v0, Landroid/os/Build$VERSION;->SDK_INT:I const/16 v1, 0x1e if-lt v0, v1, :cond_0 .line 170 sget-object v0, Landroidx/work/NetworkType;->TEMPORARILY_UNMETERED:Landroidx/work/NetworkType; if-ne p1, v0, :cond_0 .line 171 new-instance p1, Landroid/net/NetworkRequest$Builder; invoke-direct {p1}, Landroid/net/NetworkRequest$Builder;->()V const/16 v0, 0x19 .line 172 invoke-virtual {p1, v0}, Landroid/net/NetworkRequest$Builder;->addCapability(I)Landroid/net/NetworkRequest$Builder; move-result-object p1 .line 173 invoke-virtual {p1}, Landroid/net/NetworkRequest$Builder;->build()Landroid/net/NetworkRequest; move-result-object p1 .line 175 invoke-static {p0, p1}, Landroidx/work/impl/background/systemjob/SystemJobInfoConverter$$ExternalSyntheticApiModelOutline0;->m(Landroid/app/job/JobInfo$Builder;Landroid/net/NetworkRequest;)Landroid/app/job/JobInfo$Builder; goto :goto_0 .line 177 :cond_0 invoke-static {p1}, Landroidx/work/impl/background/systemjob/SystemJobInfoConverter;->convertNetworkType(Landroidx/work/NetworkType;)I move-result p1 invoke-virtual {p0, p1}, Landroid/app/job/JobInfo$Builder;->setRequiredNetworkType(I)Landroid/app/job/JobInfo$Builder; :goto_0 return-void .end method # virtual methods .method public convert(Landroidx/work/impl/model/WorkSpec;I)Landroid/app/job/JobInfo; .locals 10 .line 77 iget-object v0, p1, Landroidx/work/impl/model/WorkSpec;->constraints:Landroidx/work/Constraints; .line 78 new-instance v1, Landroid/os/PersistableBundle; invoke-direct {v1}, Landroid/os/PersistableBundle;->()V const-string v2, "EXTRA_WORK_SPEC_ID" .line 79 iget-object v3, p1, Landroidx/work/impl/model/WorkSpec;->id:Ljava/lang/String; invoke-virtual {v1, v2, v3}, Landroid/os/BaseBundle;->putString(Ljava/lang/String;Ljava/lang/String;)V const-string v2, "EXTRA_WORK_SPEC_GENERATION" .line 80 invoke-virtual {p1}, Landroidx/work/impl/model/WorkSpec;->getGeneration()I move-result v3 invoke-virtual {v1, v2, v3}, Landroid/os/BaseBundle;->putInt(Ljava/lang/String;I)V const-string v2, "EXTRA_IS_PERIODIC" .line 81 invoke-virtual {p1}, Landroidx/work/impl/model/WorkSpec;->isPeriodic()Z move-result v3 invoke-virtual {v1, v2, v3}, Landroid/os/BaseBundle;->putBoolean(Ljava/lang/String;Z)V .line 82 new-instance v2, Landroid/app/job/JobInfo$Builder; iget-object v3, p0, Landroidx/work/impl/background/systemjob/SystemJobInfoConverter;->mWorkServiceComponent:Landroid/content/ComponentName; invoke-direct {v2, p2, v3}, Landroid/app/job/JobInfo$Builder;->(ILandroid/content/ComponentName;)V .line 83 invoke-virtual {v0}, Landroidx/work/Constraints;->requiresCharging()Z move-result p2 invoke-virtual {v2, p2}, Landroid/app/job/JobInfo$Builder;->setRequiresCharging(Z)Landroid/app/job/JobInfo$Builder; move-result-object p2 .line 84 invoke-virtual {v0}, Landroidx/work/Constraints;->requiresDeviceIdle()Z move-result v2 invoke-virtual {p2, v2}, Landroid/app/job/JobInfo$Builder;->setRequiresDeviceIdle(Z)Landroid/app/job/JobInfo$Builder; move-result-object p2 .line 85 invoke-virtual {p2, v1}, Landroid/app/job/JobInfo$Builder;->setExtras(Landroid/os/PersistableBundle;)Landroid/app/job/JobInfo$Builder; move-result-object p2 .line 86 invoke-virtual {v0}, Landroidx/work/Constraints;->getRequiredNetworkRequest()Landroid/net/NetworkRequest; move-result-object v1 sget v2, Landroid/os/Build$VERSION;->SDK_INT:I const/16 v3, 0x1c if-lt v2, v3, :cond_0 if-eqz v1, :cond_0 .line 88 invoke-static {p2, v1}, Landroidx/work/impl/background/systemjob/SystemJobInfoConverterExtKt;->setRequiredNetworkRequest(Landroid/app/job/JobInfo$Builder;Landroid/net/NetworkRequest;)V goto :goto_0 .line 90 :cond_0 invoke-virtual {v0}, Landroidx/work/Constraints;->getRequiredNetworkType()Landroidx/work/NetworkType; move-result-object v1 invoke-static {p2, v1}, Landroidx/work/impl/background/systemjob/SystemJobInfoConverter;->setRequiredNetwork(Landroid/app/job/JobInfo$Builder;Landroidx/work/NetworkType;)V .line 93 :goto_0 invoke-virtual {v0}, Landroidx/work/Constraints;->requiresDeviceIdle()Z move-result v1 const/4 v4, 0x0 const/4 v5, 0x1 if-nez v1, :cond_2 .line 95 iget-object v1, p1, Landroidx/work/impl/model/WorkSpec;->backoffPolicy:Landroidx/work/BackoffPolicy; sget-object v6, Landroidx/work/BackoffPolicy;->LINEAR:Landroidx/work/BackoffPolicy; if-ne v1, v6, :cond_1 move v1, v4 goto :goto_1 :cond_1 move v1, v5 .line 97 :goto_1 iget-wide v6, p1, Landroidx/work/impl/model/WorkSpec;->backoffDelayDuration:J invoke-virtual {p2, v6, v7, v1}, Landroid/app/job/JobInfo$Builder;->setBackoffCriteria(JI)Landroid/app/job/JobInfo$Builder; .line 100 :cond_2 invoke-virtual {p1}, Landroidx/work/impl/model/WorkSpec;->calculateNextRunTime()J move-result-wide v6 iget-object v1, p0, Landroidx/work/impl/background/systemjob/SystemJobInfoConverter;->mClock:Landroidx/work/Clock; .line 101 invoke-interface {v1}, Landroidx/work/Clock;->currentTimeMillis()J move-result-wide v8 sub-long/2addr v6, v8 const-wide/16 v8, 0x0 .line 102 invoke-static {v6, v7, v8, v9}, Ljava/lang/Math;->max(JJ)J move-result-wide v6 if-gt v2, v3, :cond_3 .line 108 invoke-virtual {p2, v6, v7}, Landroid/app/job/JobInfo$Builder;->setMinimumLatency(J)Landroid/app/job/JobInfo$Builder; goto :goto_2 :cond_3 cmp-long v1, v6, v8 if-lez v1, :cond_4 .line 112 invoke-virtual {p2, v6, v7}, Landroid/app/job/JobInfo$Builder;->setMinimumLatency(J)Landroid/app/job/JobInfo$Builder; goto :goto_2 .line 113 :cond_4 iget-boolean v1, p1, Landroidx/work/impl/model/WorkSpec;->expedited:Z if-nez v1, :cond_5 iget-boolean v1, p0, Landroidx/work/impl/background/systemjob/SystemJobInfoConverter;->mMarkImportantWhileForeground:Z if-eqz v1, :cond_5 .line 115 invoke-static {p2, v5}, Landroidx/work/impl/background/systemjob/SystemJobInfoConverter$$ExternalSyntheticApiModelOutline1;->m(Landroid/app/job/JobInfo$Builder;Z)Landroid/app/job/JobInfo$Builder; .line 119 :cond_5 :goto_2 invoke-virtual {v0}, Landroidx/work/Constraints;->hasContentUriTriggers()Z move-result v1 if-eqz v1, :cond_7 .line 121 invoke-virtual {v0}, Landroidx/work/Constraints;->getContentUriTriggers()Ljava/util/Set; move-result-object v1 invoke-interface {v1}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object v1 :goto_3 invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z move-result v2 if-eqz v2, :cond_6 invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v2 check-cast v2, Landroidx/work/Constraints$ContentUriTrigger; .line 122 invoke-static {v2}, Landroidx/work/impl/background/systemjob/SystemJobInfoConverter;->convertContentUriTrigger(Landroidx/work/Constraints$ContentUriTrigger;)Landroid/app/job/JobInfo$TriggerContentUri; move-result-object v2 invoke-virtual {p2, v2}, Landroid/app/job/JobInfo$Builder;->addTriggerContentUri(Landroid/app/job/JobInfo$TriggerContentUri;)Landroid/app/job/JobInfo$Builder; goto :goto_3 .line 124 :cond_6 invoke-virtual {v0}, Landroidx/work/Constraints;->getContentTriggerUpdateDelayMillis()J move-result-wide v1 invoke-virtual {p2, v1, v2}, Landroid/app/job/JobInfo$Builder;->setTriggerContentUpdateDelay(J)Landroid/app/job/JobInfo$Builder; .line 125 invoke-virtual {v0}, Landroidx/work/Constraints;->getContentTriggerMaxDelayMillis()J move-result-wide v1 invoke-virtual {p2, v1, v2}, Landroid/app/job/JobInfo$Builder;->setTriggerContentMaxDelay(J)Landroid/app/job/JobInfo$Builder; .line 130 :cond_7 invoke-virtual {p2, v4}, Landroid/app/job/JobInfo$Builder;->setPersisted(Z)Landroid/app/job/JobInfo$Builder; sget v1, Landroid/os/Build$VERSION;->SDK_INT:I .line 132 invoke-virtual {v0}, Landroidx/work/Constraints;->requiresBatteryNotLow()Z move-result v2 invoke-virtual {p2, v2}, Landroid/app/job/JobInfo$Builder;->setRequiresBatteryNotLow(Z)Landroid/app/job/JobInfo$Builder; .line 133 invoke-virtual {v0}, Landroidx/work/Constraints;->requiresStorageNotLow()Z move-result v0 invoke-virtual {p2, v0}, Landroid/app/job/JobInfo$Builder;->setRequiresStorageNotLow(Z)Landroid/app/job/JobInfo$Builder; .line 136 iget v0, p1, Landroidx/work/impl/model/WorkSpec;->runAttemptCount:I if-lez v0, :cond_8 move v0, v5 goto :goto_4 :cond_8 move v0, v4 :goto_4 cmp-long v2, v6, v8 if-lez v2, :cond_9 move v4, v5 :cond_9 const/16 v2, 0x1f if-lt v1, v2, :cond_a .line 138 iget-boolean v2, p1, Landroidx/work/impl/model/WorkSpec;->expedited:Z if-eqz v2, :cond_a if-nez v0, :cond_a if-nez v4, :cond_a .line 140 invoke-static {p2, v5}, Landroidx/work/impl/background/systemjob/SystemJobInfoConverter$$ExternalSyntheticApiModelOutline2;->m(Landroid/app/job/JobInfo$Builder;Z)Landroid/app/job/JobInfo$Builder; :cond_a const/16 v0, 0x23 if-lt v1, v0, :cond_b .line 144 invoke-virtual {p1}, Landroidx/work/impl/model/WorkSpec;->getTraceTag()Ljava/lang/String; move-result-object p1 if-eqz p1, :cond_b .line 146 invoke-virtual {p2, p1}, Landroid/app/job/JobInfo$Builder;->setTraceTag(Ljava/lang/String;)Landroid/app/job/JobInfo$Builder; .line 149 :cond_b invoke-virtual {p2}, Landroid/app/job/JobInfo$Builder;->build()Landroid/app/job/JobInfo; move-result-object p1 return-object p1 .end method