123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288 |
- .class public abstract Landroid/support/v4/content/WakefulBroadcastReceiver;
- .super Landroid/content/BroadcastReceiver;
- .source "WakefulBroadcastReceiver.java"
- # static fields
- .field private static final EXTRA_WAKE_LOCK_ID:Ljava/lang/String; = "android.support.content.wakelockid"
- .field private static final mActiveWakeLocks:Landroid/util/SparseArray;
- .annotation system Ldalvik/annotation/Signature;
- value = {
- "Landroid/util/SparseArray",
- "<",
- "Landroid/os/PowerManager$WakeLock;",
- ">;"
- }
- .end annotation
- .end field
- .field private static mNextId:I
- # direct methods
- .method static constructor <clinit>()V
- .locals 1
- .prologue
- .line 62
- new-instance v0, Landroid/util/SparseArray;
- invoke-direct {v0}, Landroid/util/SparseArray;-><init>()V
- sput-object v0, Landroid/support/v4/content/WakefulBroadcastReceiver;->mActiveWakeLocks:Landroid/util/SparseArray;
- .line 64
- const/4 v0, 0x1
- sput v0, Landroid/support/v4/content/WakefulBroadcastReceiver;->mNextId:I
- return-void
- .end method
- .method public constructor <init>()V
- .locals 0
- .prologue
- .line 59
- invoke-direct {p0}, Landroid/content/BroadcastReceiver;-><init>()V
- return-void
- .end method
- .method public static completeWakefulIntent(Landroid/content/Intent;)Z
- .locals 7
- .param p0, "intent" # Landroid/content/Intent;
- .prologue
- const/4 v3, 0x1
- const/4 v2, 0x0
- .line 113
- const-string v4, "android.support.content.wakelockid"
- invoke-virtual {p0, v4, v2}, Landroid/content/Intent;->getIntExtra(Ljava/lang/String;I)I
- move-result v0
- .line 114
- .local v0, "id":I
- if-nez v0, :cond_0
- .line 131
- :goto_0
- return v2
- .line 117
- :cond_0
- sget-object v4, Landroid/support/v4/content/WakefulBroadcastReceiver;->mActiveWakeLocks:Landroid/util/SparseArray;
- monitor-enter v4
- .line 118
- :try_start_0
- sget-object v2, Landroid/support/v4/content/WakefulBroadcastReceiver;->mActiveWakeLocks:Landroid/util/SparseArray;
- invoke-virtual {v2, v0}, Landroid/util/SparseArray;->get(I)Ljava/lang/Object;
- move-result-object v1
- check-cast v1, Landroid/os/PowerManager$WakeLock;
- .line 119
- .local v1, "wl":Landroid/os/PowerManager$WakeLock;
- if-eqz v1, :cond_1
- .line 120
- invoke-virtual {v1}, Landroid/os/PowerManager$WakeLock;->release()V
- .line 121
- sget-object v2, Landroid/support/v4/content/WakefulBroadcastReceiver;->mActiveWakeLocks:Landroid/util/SparseArray;
- invoke-virtual {v2, v0}, Landroid/util/SparseArray;->remove(I)V
- .line 122
- monitor-exit v4
- move v2, v3
- goto :goto_0
- .line 130
- :cond_1
- const-string v2, "WakefulBroadcastReceiver"
- new-instance v5, Ljava/lang/StringBuilder;
- invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
- const-string v6, "No active wake lock id #"
- invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
- move-result-object v5
- invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
- move-result-object v5
- invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
- move-result-object v5
- invoke-static {v2, v5}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
- .line 131
- monitor-exit v4
- move v2, v3
- goto :goto_0
- .line 132
- .end local v1 # "wl":Landroid/os/PowerManager$WakeLock;
- :catchall_0
- move-exception v2
- monitor-exit v4
- :try_end_0
- .catchall {:try_start_0 .. :try_end_0} :catchall_0
- throw v2
- .end method
- .method public static startWakefulService(Landroid/content/Context;Landroid/content/Intent;)Landroid/content/ComponentName;
- .locals 8
- .param p0, "context" # Landroid/content/Context;
- .param p1, "intent" # Landroid/content/Intent;
- .prologue
- .line 81
- sget-object v5, Landroid/support/v4/content/WakefulBroadcastReceiver;->mActiveWakeLocks:Landroid/util/SparseArray;
- monitor-enter v5
- .line 82
- :try_start_0
- sget v1, Landroid/support/v4/content/WakefulBroadcastReceiver;->mNextId:I
- .line 83
- .local v1, "id":I
- sget v4, Landroid/support/v4/content/WakefulBroadcastReceiver;->mNextId:I
- add-int/lit8 v4, v4, 0x1
- sput v4, Landroid/support/v4/content/WakefulBroadcastReceiver;->mNextId:I
- .line 84
- sget v4, Landroid/support/v4/content/WakefulBroadcastReceiver;->mNextId:I
- if-gtz v4, :cond_0
- .line 85
- const/4 v4, 0x1
- sput v4, Landroid/support/v4/content/WakefulBroadcastReceiver;->mNextId:I
- .line 88
- :cond_0
- const-string v4, "android.support.content.wakelockid"
- invoke-virtual {p1, v4, v1}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
- .line 89
- invoke-virtual {p0, p1}, Landroid/content/Context;->startService(Landroid/content/Intent;)Landroid/content/ComponentName;
- move-result-object v0
- .line 90
- .local v0, "comp":Landroid/content/ComponentName;
- if-nez v0, :cond_1
- .line 91
- const/4 v0, 0x0
- monitor-exit v5
- .line 100
- .end local v0 # "comp":Landroid/content/ComponentName;
- :goto_0
- return-object v0
- .line 94
- .restart local v0 # "comp":Landroid/content/ComponentName;
- :cond_1
- const-string v4, "power"
- invoke-virtual {p0, v4}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
- move-result-object v2
- check-cast v2, Landroid/os/PowerManager;
- .line 95
- .local v2, "pm":Landroid/os/PowerManager;
- const/4 v4, 0x1
- new-instance v6, Ljava/lang/StringBuilder;
- invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
- const-string v7, "wake:"
- invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
- move-result-object v6
- invoke-virtual {v0}, Landroid/content/ComponentName;->flattenToShortString()Ljava/lang/String;
- move-result-object v7
- invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
- move-result-object v6
- invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
- move-result-object v6
- invoke-virtual {v2, v4, v6}, Landroid/os/PowerManager;->newWakeLock(ILjava/lang/String;)Landroid/os/PowerManager$WakeLock;
- move-result-object v3
- .line 97
- .local v3, "wl":Landroid/os/PowerManager$WakeLock;
- const/4 v4, 0x0
- invoke-virtual {v3, v4}, Landroid/os/PowerManager$WakeLock;->setReferenceCounted(Z)V
- .line 98
- const-wide/32 v6, 0xea60
- invoke-virtual {v3, v6, v7}, Landroid/os/PowerManager$WakeLock;->acquire(J)V
- .line 99
- sget-object v4, Landroid/support/v4/content/WakefulBroadcastReceiver;->mActiveWakeLocks:Landroid/util/SparseArray;
- invoke-virtual {v4, v1, v3}, Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
- .line 100
- monitor-exit v5
- goto :goto_0
- .line 101
- .end local v0 # "comp":Landroid/content/ComponentName;
- .end local v1 # "id":I
- .end local v2 # "pm":Landroid/os/PowerManager;
- .end local v3 # "wl":Landroid/os/PowerManager$WakeLock;
- :catchall_0
- move-exception v4
- monitor-exit v5
- :try_end_0
- .catchall {:try_start_0 .. :try_end_0} :catchall_0
- throw v4
- .end method
|