InactivityTimer.smali

.class final Lcom/king/zxing/InactivityTimer;
.super Ljava/lang/Object;
.source "InactivityTimer.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/king/zxing/InactivityTimer$InactivityAsyncTask;,
        Lcom/king/zxing/InactivityTimer$PowerStatusReceiver;
    }
.end annotation


# static fields
.field private static final INACTIVITY_DELAY_MS:J = 0x493e0L

.field private static final TAG:Ljava/lang/String;


# instance fields
.field private final activity:Landroid/app/Activity;

.field private inactivityTask:Landroid/os/AsyncTask;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Landroid/os/AsyncTask<",
            "Ljava/lang/Object;",
            "Ljava/lang/Object;",
            "Ljava/lang/Object;",
            ">;"
        }
    .end annotation
.end field

.field private final powerStatusReceiver:Landroid/content/BroadcastReceiver;

.field private registered:Z


# direct methods
.method static constructor <clinit>()V
    .registers 1

    .line 38
    const-class v0, Lcom/king/zxing/InactivityTimer;

    invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;

    move-result-object v0

    sput-object v0, Lcom/king/zxing/InactivityTimer;->TAG:Ljava/lang/String;

    return-void
.end method

.method constructor <init>(Landroid/app/Activity;)V
    .registers 3
    .param p1, "activity"    # Landroid/app/Activity;

    .line 47
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 48
    iput-object p1, p0, Lcom/king/zxing/InactivityTimer;->activity:Landroid/app/Activity;

    .line 49
    new-instance v0, Lcom/king/zxing/InactivityTimer$PowerStatusReceiver;

    invoke-direct {v0, p0}, Lcom/king/zxing/InactivityTimer$PowerStatusReceiver;-><init>(Lcom/king/zxing/InactivityTimer;)V

    iput-object v0, p0, Lcom/king/zxing/InactivityTimer;->powerStatusReceiver:Landroid/content/BroadcastReceiver;

    .line 50
    const/4 v0, 0x0

    iput-boolean v0, p0, Lcom/king/zxing/InactivityTimer;->registered:Z

    .line 51
    invoke-virtual {p0}, Lcom/king/zxing/InactivityTimer;->onActivity()V

    .line 52
    return-void
.end method

.method static synthetic access$000(Lcom/king/zxing/InactivityTimer;)V
    .registers 1
    .param p0, "x0"    # Lcom/king/zxing/InactivityTimer;

    .line 36
    invoke-direct {p0}, Lcom/king/zxing/InactivityTimer;->cancel()V

    return-void
.end method

.method private cancel()V
    .registers 3

    .line 85
    iget-object v0, p0, Lcom/king/zxing/InactivityTimer;->inactivityTask:Landroid/os/AsyncTask;

    .line 86
    .local v0, "task":Landroid/os/AsyncTask;, "Landroid/os/AsyncTask<***>;"
    if-eqz v0, :cond_b

    .line 87
    const/4 v1, 0x1

    invoke-virtual {v0, v1}, Landroid/os/AsyncTask;->cancel(Z)Z

    .line 88
    const/4 v1, 0x0

    iput-object v1, p0, Lcom/king/zxing/InactivityTimer;->inactivityTask:Landroid/os/AsyncTask;

    .line 90
    :cond_b
    return-void
.end method


# virtual methods
.method onActivity()V
    .registers 4

    .line 55
    invoke-direct {p0}, Lcom/king/zxing/InactivityTimer;->cancel()V

    .line 56
    new-instance v0, Lcom/king/zxing/InactivityTimer$InactivityAsyncTask;

    iget-object v1, p0, Lcom/king/zxing/InactivityTimer;->activity:Landroid/app/Activity;

    invoke-direct {v0, v1}, Lcom/king/zxing/InactivityTimer$InactivityAsyncTask;-><init>(Landroid/app/Activity;)V

    iput-object v0, p0, Lcom/king/zxing/InactivityTimer;->inactivityTask:Landroid/os/AsyncTask;

    .line 58
    :try_start_c
    sget-object v1, Landroid/os/AsyncTask;->THREAD_POOL_EXECUTOR:Ljava/util/concurrent/Executor;

    const/4 v2, 0x0

    new-array v2, v2, [Ljava/lang/Object;

    invoke-virtual {v0, v1, v2}, Landroid/os/AsyncTask;->executeOnExecutor(Ljava/util/concurrent/Executor;[Ljava/lang/Object;)Landroid/os/AsyncTask;
    :try_end_14
    .catch Ljava/util/concurrent/RejectedExecutionException; {:try_start_c .. :try_end_14} :catch_15

    .line 61
    goto :goto_1b

    .line 59
    :catch_15
    move-exception v0

    .line 60
    .local v0, "ree":Ljava/util/concurrent/RejectedExecutionException;
    const-string v1, "Couldn\'t schedule inactivity task; ignoring"

    invoke-static {v1}, Lcom/king/zxing/util/LogUtils;->w(Ljava/lang/String;)V

    .line 62
    .end local v0    # "ree":Ljava/util/concurrent/RejectedExecutionException;
    :goto_1b
    return-void
.end method

.method onPause()V
    .registers 3

    .line 65
    invoke-direct {p0}, Lcom/king/zxing/InactivityTimer;->cancel()V

    .line 66
    iget-boolean v0, p0, Lcom/king/zxing/InactivityTimer;->registered:Z

    if-eqz v0, :cond_12

    .line 67
    iget-object v0, p0, Lcom/king/zxing/InactivityTimer;->activity:Landroid/app/Activity;

    iget-object v1, p0, Lcom/king/zxing/InactivityTimer;->powerStatusReceiver:Landroid/content/BroadcastReceiver;

    invoke-virtual {v0, v1}, Landroid/app/Activity;->unregisterReceiver(Landroid/content/BroadcastReceiver;)V

    .line 68
    const/4 v0, 0x0

    iput-boolean v0, p0, Lcom/king/zxing/InactivityTimer;->registered:Z

    goto :goto_17

    .line 70
    :cond_12
    const-string v0, "PowerStatusReceiver was never registered?"

    invoke-static {v0}, Lcom/king/zxing/util/LogUtils;->w(Ljava/lang/String;)V

    .line 72
    :goto_17
    return-void
.end method

.method onResume()V
    .registers 5

    .line 75
    iget-boolean v0, p0, Lcom/king/zxing/InactivityTimer;->registered:Z

    if-eqz v0, :cond_a

    .line 76
    const-string v0, "PowerStatusReceiver was already registered?"

    invoke-static {v0}, Lcom/king/zxing/util/LogUtils;->w(Ljava/lang/String;)V

    goto :goto_1b

    .line 78
    :cond_a
    iget-object v0, p0, Lcom/king/zxing/InactivityTimer;->activity:Landroid/app/Activity;

    iget-object v1, p0, Lcom/king/zxing/InactivityTimer;->powerStatusReceiver:Landroid/content/BroadcastReceiver;

    new-instance v2, Landroid/content/IntentFilter;

    const-string v3, "android.intent.action.BATTERY_CHANGED"

    invoke-direct {v2, v3}, Landroid/content/IntentFilter;-><init>(Ljava/lang/String;)V

    invoke-virtual {v0, v1, v2}, Landroid/app/Activity;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;

    .line 79
    const/4 v0, 0x1

    iput-boolean v0, p0, Lcom/king/zxing/InactivityTimer;->registered:Z

    .line 81
    :goto_1b
    invoke-virtual {p0}, Lcom/king/zxing/InactivityTimer;->onActivity()V

    .line 82
    return-void
.end method

.method shutdown()V
    .registers 1

    .line 93
    invoke-direct {p0}, Lcom/king/zxing/InactivityTimer;->cancel()V

    .line 94
    return-void
.end method