JobIntentService.smali
.class public abstract Lim/tpelyyftgw/messenger/support/JobIntentService;
.super Landroid/app/Service;
.source "JobIntentService.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lim/tpelyyftgw/messenger/support/JobIntentService$CommandProcessor;,
Lim/tpelyyftgw/messenger/support/JobIntentService$CompatWorkItem;,
Lim/tpelyyftgw/messenger/support/JobIntentService$GenericWorkItem;,
Lim/tpelyyftgw/messenger/support/JobIntentService$JobWorkEnqueuer;,
Lim/tpelyyftgw/messenger/support/JobIntentService$JobServiceEngineImpl;,
Lim/tpelyyftgw/messenger/support/JobIntentService$CompatWorkEnqueuer;,
Lim/tpelyyftgw/messenger/support/JobIntentService$CompatJobEngine;,
Lim/tpelyyftgw/messenger/support/JobIntentService$WorkEnqueuer;
}
.end annotation
# static fields
.field static final DEBUG:Z = false
.field static final TAG:Ljava/lang/String; = "JobIntentService"
.field static final sClassWorkEnqueuer:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap<",
"Landroid/content/ComponentName;",
"Lim/tpelyyftgw/messenger/support/JobIntentService$WorkEnqueuer;",
">;"
}
.end annotation
.end field
.field static final sLock:Ljava/lang/Object;
# instance fields
.field final mCompatQueue:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList<",
"Lim/tpelyyftgw/messenger/support/JobIntentService$CompatWorkItem;",
">;"
}
.end annotation
.end field
.field mCompatWorkEnqueuer:Lim/tpelyyftgw/messenger/support/JobIntentService$WorkEnqueuer;
.field mCurProcessor:Lim/tpelyyftgw/messenger/support/JobIntentService$CommandProcessor;
.field mDestroyed:Z
.field mInterruptIfStopped:Z
.field mJobImpl:Lim/tpelyyftgw/messenger/support/JobIntentService$CompatJobEngine;
.field mStopped:Z
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 56
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
sput-object v0, Lim/tpelyyftgw/messenger/support/JobIntentService;->sLock:Ljava/lang/Object;
.line 57
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
sput-object v0, Lim/tpelyyftgw/messenger/support/JobIntentService;->sClassWorkEnqueuer:Ljava/util/HashMap;
return-void
.end method
.method public constructor <init>()V
.registers 3
.line 380
invoke-direct {p0}, Landroid/app/Service;-><init>()V
.line 50
const/4 v0, 0x0
iput-boolean v0, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mInterruptIfStopped:Z
.line 51
iput-boolean v0, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mStopped:Z
.line 52
iput-boolean v0, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mDestroyed:Z
.line 381
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x1a
if-lt v0, v1, :cond_14
.line 382
const/4 v0, 0x0
iput-object v0, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mCompatQueue:Ljava/util/ArrayList;
goto :goto_1b
.line 384
:cond_14
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iput-object v0, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mCompatQueue:Ljava/util/ArrayList;
.line 386
:goto_1b
return-void
.end method
.method public static enqueueWork(Landroid/content/Context;Landroid/content/ComponentName;ILandroid/content/Intent;)V
.registers 6
.param p0, "context" # Landroid/content/Context;
.param p1, "component" # Landroid/content/ComponentName;
.param p2, "jobId" # I
.param p3, "work" # Landroid/content/Intent;
.line 481
if-eqz p3, :cond_15
.line 484
sget-object v0, Lim/tpelyyftgw/messenger/support/JobIntentService;->sLock:Ljava/lang/Object;
monitor-enter v0
.line 485
const/4 v1, 0x1
:try_start_6
invoke-static {p0, p1, v1, p2}, Lim/tpelyyftgw/messenger/support/JobIntentService;->getWorkEnqueuer(Landroid/content/Context;Landroid/content/ComponentName;ZI)Lim/tpelyyftgw/messenger/support/JobIntentService$WorkEnqueuer;
move-result-object v1
.line 486
.local v1, "we":Lim/tpelyyftgw/messenger/support/JobIntentService$WorkEnqueuer;
invoke-virtual {v1, p2}, Lim/tpelyyftgw/messenger/support/JobIntentService$WorkEnqueuer;->ensureJobId(I)V
.line 487
invoke-virtual {v1, p3}, Lim/tpelyyftgw/messenger/support/JobIntentService$WorkEnqueuer;->enqueueWork(Landroid/content/Intent;)V
.line 488
.end local v1 # "we":Lim/tpelyyftgw/messenger/support/JobIntentService$WorkEnqueuer;
monitor-exit v0
.line 489
return-void
.line 488
:catchall_12
move-exception v1
monitor-exit v0
:try_end_14
.catchall {:try_start_6 .. :try_end_14} :catchall_12
throw v1
.line 482
:cond_15
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string/jumbo v1, "work must not be null"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public static enqueueWork(Landroid/content/Context;Ljava/lang/Class;ILandroid/content/Intent;)V
.registers 5
.param p0, "context" # Landroid/content/Context;
.param p1, "cls" # Ljava/lang/Class;
.param p2, "jobId" # I
.param p3, "work" # Landroid/content/Intent;
.line 465
new-instance v0, Landroid/content/ComponentName;
invoke-direct {v0, p0, p1}, Landroid/content/ComponentName;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
invoke-static {p0, v0, p2, p3}, Lim/tpelyyftgw/messenger/support/JobIntentService;->enqueueWork(Landroid/content/Context;Landroid/content/ComponentName;ILandroid/content/Intent;)V
.line 466
return-void
.end method
.method static getWorkEnqueuer(Landroid/content/Context;Landroid/content/ComponentName;ZI)Lim/tpelyyftgw/messenger/support/JobIntentService$WorkEnqueuer;
.registers 7
.param p0, "context" # Landroid/content/Context;
.param p1, "cn" # Landroid/content/ComponentName;
.param p2, "hasJobId" # Z
.param p3, "jobId" # I
.line 493
sget-object v0, Lim/tpelyyftgw/messenger/support/JobIntentService;->sClassWorkEnqueuer:Ljava/util/HashMap;
invoke-virtual {v0, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lim/tpelyyftgw/messenger/support/JobIntentService$WorkEnqueuer;
.line 494
.local v0, "we":Lim/tpelyyftgw/messenger/support/JobIntentService$WorkEnqueuer;
if-nez v0, :cond_2c
.line 495
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0x1a
if-lt v1, v2, :cond_21
.line 496
if-eqz p2, :cond_19
.line 499
new-instance v1, Lim/tpelyyftgw/messenger/support/JobIntentService$JobWorkEnqueuer;
invoke-direct {v1, p0, p1, p3}, Lim/tpelyyftgw/messenger/support/JobIntentService$JobWorkEnqueuer;-><init>(Landroid/content/Context;Landroid/content/ComponentName;I)V
move-object v0, v1
goto :goto_27
.line 497
:cond_19
new-instance v1, Ljava/lang/IllegalArgumentException;
const-string v2, "Can\'t be here without a job id"
invoke-direct {v1, v2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v1
.line 501
:cond_21
new-instance v1, Lim/tpelyyftgw/messenger/support/JobIntentService$CompatWorkEnqueuer;
invoke-direct {v1, p0, p1}, Lim/tpelyyftgw/messenger/support/JobIntentService$CompatWorkEnqueuer;-><init>(Landroid/content/Context;Landroid/content/ComponentName;)V
move-object v0, v1
.line 503
:goto_27
sget-object v1, Lim/tpelyyftgw/messenger/support/JobIntentService;->sClassWorkEnqueuer:Ljava/util/HashMap;
invoke-virtual {v1, p1, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 505
:cond_2c
return-object v0
.end method
# virtual methods
.method dequeueWork()Lim/tpelyyftgw/messenger/support/JobIntentService$GenericWorkItem;
.registers 4
.line 603
iget-object v0, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mJobImpl:Lim/tpelyyftgw/messenger/support/JobIntentService$CompatJobEngine;
if-eqz v0, :cond_9
.line 604
invoke-interface {v0}, Lim/tpelyyftgw/messenger/support/JobIntentService$CompatJobEngine;->dequeueWork()Lim/tpelyyftgw/messenger/support/JobIntentService$GenericWorkItem;
move-result-object v0
return-object v0
.line 606
:cond_9
iget-object v0, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mCompatQueue:Ljava/util/ArrayList;
monitor-enter v0
.line 607
:try_start_c
iget-object v1, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mCompatQueue:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->size()I
move-result v1
if-lez v1, :cond_1f
.line 608
iget-object v1, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mCompatQueue:Ljava/util/ArrayList;
const/4 v2, 0x0
invoke-virtual {v1, v2}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lim/tpelyyftgw/messenger/support/JobIntentService$GenericWorkItem;
monitor-exit v0
return-object v1
.line 610
:cond_1f
const/4 v1, 0x0
monitor-exit v0
return-object v1
.line 612
:catchall_22
move-exception v1
monitor-exit v0
:try_end_24
.catchall {:try_start_c .. :try_end_24} :catchall_22
throw v1
.end method
.method doStopCurrentWork()Z
.registers 3
.line 563
iget-object v0, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mCurProcessor:Lim/tpelyyftgw/messenger/support/JobIntentService$CommandProcessor;
if-eqz v0, :cond_9
.line 564
iget-boolean v1, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mInterruptIfStopped:Z
invoke-virtual {v0, v1}, Lim/tpelyyftgw/messenger/support/JobIntentService$CommandProcessor;->cancel(Z)Z
.line 566
:cond_9
const/4 v0, 0x1
iput-boolean v0, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mStopped:Z
.line 567
invoke-virtual {p0}, Lim/tpelyyftgw/messenger/support/JobIntentService;->onStopCurrentWork()Z
move-result v0
return v0
.end method
.method ensureProcessorRunningLocked(Z)V
.registers 5
.param p1, "reportStarted" # Z
.line 571
iget-object v0, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mCurProcessor:Lim/tpelyyftgw/messenger/support/JobIntentService$CommandProcessor;
if-nez v0, :cond_1e
.line 572
new-instance v0, Lim/tpelyyftgw/messenger/support/JobIntentService$CommandProcessor;
invoke-direct {v0, p0}, Lim/tpelyyftgw/messenger/support/JobIntentService$CommandProcessor;-><init>(Lim/tpelyyftgw/messenger/support/JobIntentService;)V
iput-object v0, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mCurProcessor:Lim/tpelyyftgw/messenger/support/JobIntentService$CommandProcessor;
.line 573
iget-object v0, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mCompatWorkEnqueuer:Lim/tpelyyftgw/messenger/support/JobIntentService$WorkEnqueuer;
if-eqz v0, :cond_14
if-eqz p1, :cond_14
.line 574
invoke-virtual {v0}, Lim/tpelyyftgw/messenger/support/JobIntentService$WorkEnqueuer;->serviceProcessingStarted()V
.line 577
:cond_14
iget-object v0, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mCurProcessor:Lim/tpelyyftgw/messenger/support/JobIntentService$CommandProcessor;
sget-object v1, Landroid/os/AsyncTask;->THREAD_POOL_EXECUTOR:Ljava/util/concurrent/Executor;
const/4 v2, 0x0
new-array v2, v2, [Ljava/lang/Void;
invoke-virtual {v0, v1, v2}, Lim/tpelyyftgw/messenger/support/JobIntentService$CommandProcessor;->executeOnExecutor(Ljava/util/concurrent/Executor;[Ljava/lang/Object;)Landroid/os/AsyncTask;
.line 579
:cond_1e
return-void
.end method
.method public isStopped()Z
.registers 2
.line 544
iget-boolean v0, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mStopped:Z
return v0
.end method
.method public onBind(Landroid/content/Intent;)Landroid/os/IBinder;
.registers 3
.param p1, "intent" # Landroid/content/Intent;
.line 429
iget-object v0, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mJobImpl:Lim/tpelyyftgw/messenger/support/JobIntentService$CompatJobEngine;
if-eqz v0, :cond_9
.line 430
invoke-interface {v0}, Lim/tpelyyftgw/messenger/support/JobIntentService$CompatJobEngine;->compatGetBinder()Landroid/os/IBinder;
move-result-object v0
.line 432
.local v0, "engine":Landroid/os/IBinder;
return-object v0
.line 434
.end local v0 # "engine":Landroid/os/IBinder;
:cond_9
const/4 v0, 0x0
return-object v0
.end method
.method public onCreate()V
.registers 4
.line 390
invoke-super {p0}, Landroid/app/Service;->onCreate()V
.line 392
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/4 v1, 0x0
const/16 v2, 0x1a
if-lt v0, v2, :cond_14
.line 393
new-instance v0, Lim/tpelyyftgw/messenger/support/JobIntentService$JobServiceEngineImpl;
invoke-direct {v0, p0}, Lim/tpelyyftgw/messenger/support/JobIntentService$JobServiceEngineImpl;-><init>(Lim/tpelyyftgw/messenger/support/JobIntentService;)V
iput-object v0, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mJobImpl:Lim/tpelyyftgw/messenger/support/JobIntentService$CompatJobEngine;
.line 394
iput-object v1, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mCompatWorkEnqueuer:Lim/tpelyyftgw/messenger/support/JobIntentService$WorkEnqueuer;
goto :goto_26
.line 396
:cond_14
iput-object v1, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mJobImpl:Lim/tpelyyftgw/messenger/support/JobIntentService$CompatJobEngine;
.line 397
new-instance v0, Landroid/content/ComponentName;
invoke-virtual {p0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
invoke-direct {v0, p0, v1}, Landroid/content/ComponentName;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
.line 398
.local v0, "cn":Landroid/content/ComponentName;
const/4 v1, 0x0
invoke-static {p0, v0, v1, v1}, Lim/tpelyyftgw/messenger/support/JobIntentService;->getWorkEnqueuer(Landroid/content/Context;Landroid/content/ComponentName;ZI)Lim/tpelyyftgw/messenger/support/JobIntentService$WorkEnqueuer;
move-result-object v1
iput-object v1, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mCompatWorkEnqueuer:Lim/tpelyyftgw/messenger/support/JobIntentService$WorkEnqueuer;
.line 400
.end local v0 # "cn":Landroid/content/ComponentName;
:goto_26
return-void
.end method
.method public onDestroy()V
.registers 3
.line 440
invoke-super {p0}, Landroid/app/Service;->onDestroy()V
.line 441
iget-object v0, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mCompatQueue:Ljava/util/ArrayList;
if-eqz v0, :cond_15
.line 442
monitor-enter v0
.line 443
const/4 v1, 0x1
:try_start_9
iput-boolean v1, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mDestroyed:Z
.line 444
iget-object v1, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mCompatWorkEnqueuer:Lim/tpelyyftgw/messenger/support/JobIntentService$WorkEnqueuer;
invoke-virtual {v1}, Lim/tpelyyftgw/messenger/support/JobIntentService$WorkEnqueuer;->serviceProcessingFinished()V
.line 445
monitor-exit v0
goto :goto_15
:catchall_12
move-exception v1
monitor-exit v0
:try_end_14
.catchall {:try_start_9 .. :try_end_14} :catchall_12
throw v1
.line 447
:cond_15
:goto_15
return-void
.end method
.method protected abstract onHandleWork(Landroid/content/Intent;)V
.end method
.method public onStartCommand(Landroid/content/Intent;II)I
.registers 8
.param p1, "intent" # Landroid/content/Intent;
.param p2, "flags" # I
.param p3, "startId" # I
.line 408
iget-object v0, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mCompatQueue:Ljava/util/ArrayList;
if-eqz v0, :cond_29
.line 409
iget-object v0, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mCompatWorkEnqueuer:Lim/tpelyyftgw/messenger/support/JobIntentService$WorkEnqueuer;
invoke-virtual {v0}, Lim/tpelyyftgw/messenger/support/JobIntentService$WorkEnqueuer;->serviceStartReceived()V
.line 411
iget-object v0, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mCompatQueue:Ljava/util/ArrayList;
monitor-enter v0
.line 412
:try_start_c
iget-object v1, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mCompatQueue:Ljava/util/ArrayList;
new-instance v2, Lim/tpelyyftgw/messenger/support/JobIntentService$CompatWorkItem;
if-eqz p1, :cond_14
move-object v3, p1
goto :goto_19
:cond_14
new-instance v3, Landroid/content/Intent;
invoke-direct {v3}, Landroid/content/Intent;-><init>()V
:goto_19
invoke-direct {v2, p0, v3, p3}, Lim/tpelyyftgw/messenger/support/JobIntentService$CompatWorkItem;-><init>(Lim/tpelyyftgw/messenger/support/JobIntentService;Landroid/content/Intent;I)V
invoke-virtual {v1, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 414
const/4 v1, 0x1
invoke-virtual {p0, v1}, Lim/tpelyyftgw/messenger/support/JobIntentService;->ensureProcessorRunningLocked(Z)V
.line 415
monitor-exit v0
.line 416
const/4 v0, 0x3
return v0
.line 415
:catchall_26
move-exception v1
monitor-exit v0
:try_end_28
.catchall {:try_start_c .. :try_end_28} :catchall_26
throw v1
.line 419
:cond_29
const/4 v0, 0x2
return v0
.end method
.method public onStopCurrentWork()Z
.registers 2
.line 559
const/4 v0, 0x1
return v0
.end method
.method processorFinished()V
.registers 3
.line 582
iget-object v0, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mCompatQueue:Ljava/util/ArrayList;
if-eqz v0, :cond_27
.line 583
monitor-enter v0
.line 584
const/4 v1, 0x0
:try_start_6
iput-object v1, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mCurProcessor:Lim/tpelyyftgw/messenger/support/JobIntentService$CommandProcessor;
.line 593
iget-object v1, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mCompatQueue:Ljava/util/ArrayList;
if-eqz v1, :cond_19
iget-object v1, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mCompatQueue:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->size()I
move-result v1
if-lez v1, :cond_19
.line 594
const/4 v1, 0x0
invoke-virtual {p0, v1}, Lim/tpelyyftgw/messenger/support/JobIntentService;->ensureProcessorRunningLocked(Z)V
goto :goto_22
.line 595
:cond_19
iget-boolean v1, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mDestroyed:Z
if-nez v1, :cond_22
.line 596
iget-object v1, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mCompatWorkEnqueuer:Lim/tpelyyftgw/messenger/support/JobIntentService$WorkEnqueuer;
invoke-virtual {v1}, Lim/tpelyyftgw/messenger/support/JobIntentService$WorkEnqueuer;->serviceProcessingFinished()V
.line 598
:cond_22
:goto_22
monitor-exit v0
goto :goto_27
:catchall_24
move-exception v1
monitor-exit v0
:try_end_26
.catchall {:try_start_6 .. :try_end_26} :catchall_24
throw v1
.line 600
:cond_27
:goto_27
return-void
.end method
.method public setInterruptIfStopped(Z)V
.registers 2
.param p1, "interruptIfStopped" # Z
.line 536
iput-boolean p1, p0, Lim/tpelyyftgw/messenger/support/JobIntentService;->mInterruptIfStopped:Z
.line 537
return-void
.end method