.class public Landroidx/work/impl/background/systemjob/SystemJobInfoConverter; .super Ljava/lang/Object; .source "SystemJobInfoConverter.java" # annotations .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 public static final EXTRA_IS_PERIODIC:Ljava/lang/String; = "EXTRA_IS_PERIODIC" .field public static final EXTRA_WORK_SPEC_ID:Ljava/lang/String; = "EXTRA_WORK_SPEC_ID" .field public static final TAG:Ljava/lang/String; # instance fields .field public final mWorkServiceComponent:Landroid/content/ComponentName; # direct methods .method public static constructor ()V .locals 1 const-string v0, "SystemJobInfoConverter" 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;)V .locals 2 .param p1 # Landroid/content/Context; .annotation build Landroidx/annotation/NonNull; .end annotation .end param .annotation build Landroidx/annotation/VisibleForTesting; otherwise = 0x3 .end annotation invoke-direct {p0}, Ljava/lang/Object;->()V invoke-virtual {p1}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context; move-result-object p1 new-instance v0, Landroid/content/ComponentName; const-class v1, Landroidx/work/impl/background/systemjob/SystemJobService; invoke-direct {v0, p1, v1}, Landroid/content/ComponentName;->(Landroid/content/Context;Ljava/lang/Class;)V iput-object v0, p0, Landroidx/work/impl/background/systemjob/SystemJobInfoConverter;->mWorkServiceComponent:Landroid/content/ComponentName; return-void .end method .method public static convertContentUriTrigger(Landroidx/work/ContentUriTriggers$Trigger;)Landroid/app/job/JobInfo$TriggerContentUri; .locals 2 .annotation build Landroidx/annotation/RequiresApi; value = 0x18 .end annotation invoke-virtual {p0}, Landroidx/work/ContentUriTriggers$Trigger;->shouldTriggerForDescendants()Z move-result v0 new-instance v1, Landroid/app/job/JobInfo$TriggerContentUri; invoke-virtual {p0}, Landroidx/work/ContentUriTriggers$Trigger;->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 invoke-virtual {p0}, Ljava/lang/Enum;->ordinal()I move-result v0 const/4 v1, 0x0 if-eqz v0, :cond_5 const/4 v2, 0x1 if-eq v0, v2, :cond_4 const/4 v3, 0x2 if-eq v0, v3, :cond_3 const/4 v3, 0x3 if-eq v0, v3, :cond_1 const/4 v3, 0x4 if-eq v0, v3, :cond_0 goto :goto_0 :cond_0 sget v0, Landroid/os/Build$VERSION;->SDK_INT:I const/16 v4, 0x1a if-lt v0, v4, :cond_2 return v3 :cond_1 sget v0, Landroid/os/Build$VERSION;->SDK_INT:I const/16 v4, 0x18 if-lt v0, v4, :cond_2 return v3 :cond_2 :goto_0 invoke-static {}, Landroidx/work/Logger;->get()Landroidx/work/Logger; move-result-object v0 sget-object v3, Landroidx/work/impl/background/systemjob/SystemJobInfoConverter;->TAG:Ljava/lang/String; new-array v4, v2, [Ljava/lang/Object; aput-object p0, v4, v1 const-string p0, "API version too low. Cannot convert network type value %s" invoke-static {p0, v4}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String; move-result-object p0 new-array v1, v1, [Ljava/lang/Throwable; invoke-virtual {v0, v3, p0, v1}, Landroidx/work/Logger;->debug(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Throwable;)V return v2 :cond_3 return v3 :cond_4 return v2 :cond_5 return v1 .end method # virtual methods .method public convert(Landroidx/work/impl/model/WorkSpec;I)Landroid/app/job/JobInfo; .locals 7 iget-object v0, p1, Landroidx/work/impl/model/WorkSpec;->constraints:Landroidx/work/Constraints; invoke-virtual {v0}, Landroidx/work/Constraints;->getRequiredNetworkType()Landroidx/work/NetworkType; move-result-object v1 invoke-static {v1}, Landroidx/work/impl/background/systemjob/SystemJobInfoConverter;->convertNetworkType(Landroidx/work/NetworkType;)I move-result v1 new-instance v2, Landroid/os/PersistableBundle; invoke-direct {v2}, Landroid/os/PersistableBundle;->()V iget-object v3, p1, Landroidx/work/impl/model/WorkSpec;->id:Ljava/lang/String; const-string v4, "EXTRA_WORK_SPEC_ID" invoke-virtual {v2, v4, v3}, Landroid/os/PersistableBundle;->putString(Ljava/lang/String;Ljava/lang/String;)V invoke-virtual {p1}, Landroidx/work/impl/model/WorkSpec;->isPeriodic()Z move-result v3 const-string v4, "EXTRA_IS_PERIODIC" invoke-virtual {v2, v4, v3}, Landroid/os/PersistableBundle;->putBoolean(Ljava/lang/String;Z)V new-instance v3, Landroid/app/job/JobInfo$Builder; iget-object v4, p0, Landroidx/work/impl/background/systemjob/SystemJobInfoConverter;->mWorkServiceComponent:Landroid/content/ComponentName; invoke-direct {v3, p2, v4}, Landroid/app/job/JobInfo$Builder;->(ILandroid/content/ComponentName;)V invoke-virtual {v3, v1}, Landroid/app/job/JobInfo$Builder;->setRequiredNetworkType(I)Landroid/app/job/JobInfo$Builder; move-result-object p2 invoke-virtual {v0}, Landroidx/work/Constraints;->requiresCharging()Z move-result v1 invoke-virtual {p2, v1}, Landroid/app/job/JobInfo$Builder;->setRequiresCharging(Z)Landroid/app/job/JobInfo$Builder; move-result-object p2 invoke-virtual {v0}, Landroidx/work/Constraints;->requiresDeviceIdle()Z move-result v1 invoke-virtual {p2, v1}, Landroid/app/job/JobInfo$Builder;->setRequiresDeviceIdle(Z)Landroid/app/job/JobInfo$Builder; move-result-object p2 invoke-virtual {p2, v2}, Landroid/app/job/JobInfo$Builder;->setExtras(Landroid/os/PersistableBundle;)Landroid/app/job/JobInfo$Builder; move-result-object p2 invoke-virtual {v0}, Landroidx/work/Constraints;->requiresDeviceIdle()Z move-result v1 const/4 v2, 0x0 if-nez v1, :cond_1 iget-object v1, p1, Landroidx/work/impl/model/WorkSpec;->backoffPolicy:Landroidx/work/BackoffPolicy; sget-object v3, Landroidx/work/BackoffPolicy;->LINEAR:Landroidx/work/BackoffPolicy; if-ne v1, v3, :cond_0 const/4 v1, 0x0 goto :goto_0 :cond_0 const/4 v1, 0x1 :goto_0 iget-wide v3, p1, Landroidx/work/impl/model/WorkSpec;->backoffDelayDuration:J invoke-virtual {p2, v3, v4, v1}, Landroid/app/job/JobInfo$Builder;->setBackoffCriteria(JI)Landroid/app/job/JobInfo$Builder; :cond_1 invoke-virtual {p1}, Landroidx/work/impl/model/WorkSpec;->calculateNextRunTime()J move-result-wide v3 invoke-static {}, Ljava/lang/System;->currentTimeMillis()J move-result-wide v5 sub-long/2addr v3, v5 const-wide/16 v5, 0x0 invoke-static {v3, v4, v5, v6}, Ljava/lang/Math;->max(JJ)J move-result-wide v3 invoke-virtual {p2, v3, v4}, Landroid/app/job/JobInfo$Builder;->setMinimumLatency(J)Landroid/app/job/JobInfo$Builder; sget p1, Landroid/os/Build$VERSION;->SDK_INT:I const/16 v1, 0x18 if-lt p1, v1, :cond_3 invoke-virtual {v0}, Landroidx/work/Constraints;->hasContentUriTriggers()Z move-result p1 if-eqz p1, :cond_3 invoke-virtual {v0}, Landroidx/work/Constraints;->getContentUriTriggers()Landroidx/work/ContentUriTriggers; move-result-object p1 invoke-virtual {p1}, Landroidx/work/ContentUriTriggers;->getTriggers()Ljava/util/Set; move-result-object p1 invoke-interface {p1}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object p1 :goto_1 invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_2 invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Landroidx/work/ContentUriTriggers$Trigger; invoke-static {v1}, Landroidx/work/impl/background/systemjob/SystemJobInfoConverter;->convertContentUriTrigger(Landroidx/work/ContentUriTriggers$Trigger;)Landroid/app/job/JobInfo$TriggerContentUri; move-result-object v1 invoke-virtual {p2, v1}, Landroid/app/job/JobInfo$Builder;->addTriggerContentUri(Landroid/app/job/JobInfo$TriggerContentUri;)Landroid/app/job/JobInfo$Builder; goto :goto_1 :cond_2 invoke-virtual {v0}, Landroidx/work/Constraints;->getTriggerContentUpdateDelay()J move-result-wide v3 invoke-virtual {p2, v3, v4}, Landroid/app/job/JobInfo$Builder;->setTriggerContentUpdateDelay(J)Landroid/app/job/JobInfo$Builder; invoke-virtual {v0}, Landroidx/work/Constraints;->getTriggerMaxContentDelay()J move-result-wide v3 invoke-virtual {p2, v3, v4}, Landroid/app/job/JobInfo$Builder;->setTriggerContentMaxDelay(J)Landroid/app/job/JobInfo$Builder; :cond_3 invoke-virtual {p2, v2}, Landroid/app/job/JobInfo$Builder;->setPersisted(Z)Landroid/app/job/JobInfo$Builder; sget p1, Landroid/os/Build$VERSION;->SDK_INT:I const/16 v1, 0x1a if-lt p1, v1, :cond_4 invoke-virtual {v0}, Landroidx/work/Constraints;->requiresBatteryNotLow()Z move-result p1 invoke-virtual {p2, p1}, Landroid/app/job/JobInfo$Builder;->setRequiresBatteryNotLow(Z)Landroid/app/job/JobInfo$Builder; invoke-virtual {v0}, Landroidx/work/Constraints;->requiresStorageNotLow()Z move-result p1 invoke-virtual {p2, p1}, Landroid/app/job/JobInfo$Builder;->setRequiresStorageNotLow(Z)Landroid/app/job/JobInfo$Builder; :cond_4 invoke-virtual {p2}, Landroid/app/job/JobInfo$Builder;->build()Landroid/app/job/JobInfo; move-result-object p1 return-object p1 .end method