Merge branch 'master' of https://github.com/mateor/auto-patcher
[auto-patcher.git] / patches / pd2.0 / 4.1 / provisionals / system / framework / framework.jar.out / smali / android / os / Looper.smali
blobfee56b77e02c35e4fbed4e7a62fda776e47f2a3b
1 .class public Landroid/os/Looper;
2 .super Ljava/lang/Object;
3 .source "Looper.java"
6 # static fields
7 .field private static final TAG:Ljava/lang/String; = "Looper"
9 .field private static sMainLooper:Landroid/os/Looper;
11 .field static final sThreadLocal:Ljava/lang/ThreadLocal;
12     .annotation system Ldalvik/annotation/Signature;
13         value = {
14             "Ljava/lang/ThreadLocal",
15             "<",
16             "Landroid/os/Looper;",
17             ">;"
18         }
19     .end annotation
20 .end field
23 # instance fields
24 .field private mLogging:Landroid/util/Printer;
26 .field final mQueue:Landroid/os/MessageQueue;
28 .field volatile mRun:Z
30 .field final mThread:Ljava/lang/Thread;
33 # direct methods
34 .method static constructor <clinit>()V
35     .registers 1
37     new-instance v0, Ljava/lang/ThreadLocal;
39     invoke-direct {v0}, Ljava/lang/ThreadLocal;-><init>()V
41     sput-object v0, Landroid/os/Looper;->sThreadLocal:Ljava/lang/ThreadLocal;
43     return-void
44 .end method
46 .method private constructor <init>(Z)V
47     .registers 3
49     invoke-direct {p0}, Ljava/lang/Object;-><init>()V
51     new-instance v0, Landroid/os/MessageQueue;
53     invoke-direct {v0, p1}, Landroid/os/MessageQueue;-><init>(Z)V
55     iput-object v0, p0, Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
57     const/4 v0, 0x1
59     iput-boolean v0, p0, Landroid/os/Looper;->mRun:Z
61     invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
63     move-result-object v0
65     iput-object v0, p0, Landroid/os/Looper;->mThread:Ljava/lang/Thread;
67     return-void
68 .end method
70 .method public static getMainLooper()Landroid/os/Looper;
71     .registers 2
73     const-class v1, Landroid/os/Looper;
75     monitor-enter v1
77     :try_start_3
78     sget-object v0, Landroid/os/Looper;->sMainLooper:Landroid/os/Looper;
80     monitor-exit v1
82     return-object v0
84     :catchall_7
85     move-exception v0
87     monitor-exit v1
88     :try_end_9
89     .catchall {:try_start_3 .. :try_end_9} :catchall_7
91     throw v0
92 .end method
94 .method public static loop()V
95     .registers 11
97     invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;
99     move-result-object v3
101     if-nez v3, :cond_e
103     new-instance v8, Ljava/lang/RuntimeException;
105     const-string v9, "No Looper; Looper.prepare() wasn\'t called on this thread."
107     invoke-direct {v8, v9}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
109     throw v8
111     :cond_e
112     iget-object v7, v3, Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
114     invoke-static {}, Landroid/os/Binder;->clearCallingIdentity()J
116     invoke-static {}, Landroid/os/Binder;->clearCallingIdentity()J
118     move-result-wide v0
120     :goto_17
121     invoke-virtual {v7}, Landroid/os/MessageQueue;->next()Landroid/os/Message;
123     move-result-object v4
125     if-nez v4, :cond_1e
127     return-void
129     :cond_1e
130     iget-object v2, v3, Landroid/os/Looper;->mLogging:Landroid/util/Printer;
132     if-eqz v2, :cond_52
134     new-instance v8, Ljava/lang/StringBuilder;
136     invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V
138     const-string v9, ">>>>> Dispatching to "
140     invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
142     move-result-object v8
144     iget-object v9, v4, Landroid/os/Message;->target:Landroid/os/Handler;
146     invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
148     move-result-object v8
150     const-string v9, " "
152     invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
154     move-result-object v8
156     iget-object v9, v4, Landroid/os/Message;->callback:Ljava/lang/Runnable;
158     invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
160     move-result-object v8
162     const-string v9, ": "
164     invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
166     move-result-object v8
168     iget v9, v4, Landroid/os/Message;->what:I
170     invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
172     move-result-object v8
174     invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
176     move-result-object v8
178     invoke-interface {v2, v8}, Landroid/util/Printer;->println(Ljava/lang/String;)V
180     :cond_52
181     iget-object v8, v4, Landroid/os/Message;->target:Landroid/os/Handler;
183     invoke-virtual {v8, v4}, Landroid/os/Handler;->dispatchMessage(Landroid/os/Message;)V
185     if-eqz v2, :cond_7d
187     new-instance v8, Ljava/lang/StringBuilder;
189     invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V
191     const-string v9, "<<<<< Finished to "
193     invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
195     move-result-object v8
197     iget-object v9, v4, Landroid/os/Message;->target:Landroid/os/Handler;
199     invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
201     move-result-object v8
203     const-string v9, " "
205     invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
207     move-result-object v8
209     iget-object v9, v4, Landroid/os/Message;->callback:Ljava/lang/Runnable;
211     invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
213     move-result-object v8
215     invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
217     move-result-object v8
219     invoke-interface {v2, v8}, Landroid/util/Printer;->println(Ljava/lang/String;)V
221     :cond_7d
222     invoke-static {}, Landroid/os/Binder;->clearCallingIdentity()J
224     move-result-wide v5
226     cmp-long v8, v0, v5
228     if-eqz v8, :cond_db
230     const-string v8, "Looper"
232     new-instance v9, Ljava/lang/StringBuilder;
234     invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V
236     const-string v10, "Thread identity changed from 0x"
238     invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
240     move-result-object v9
242     invoke-static {v0, v1}, Ljava/lang/Long;->toHexString(J)Ljava/lang/String;
244     move-result-object v10
246     invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
248     move-result-object v9
250     const-string v10, " to 0x"
252     invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
254     move-result-object v9
256     invoke-static {v5, v6}, Ljava/lang/Long;->toHexString(J)Ljava/lang/String;
258     move-result-object v10
260     invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
262     move-result-object v9
264     const-string v10, " while dispatching to "
266     invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
268     move-result-object v9
270     iget-object v10, v4, Landroid/os/Message;->target:Landroid/os/Handler;
272     invoke-virtual {v10}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
274     move-result-object v10
276     invoke-virtual {v10}, Ljava/lang/Class;->getName()Ljava/lang/String;
278     move-result-object v10
280     invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
282     move-result-object v9
284     const-string v10, " "
286     invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
288     move-result-object v9
290     iget-object v10, v4, Landroid/os/Message;->callback:Ljava/lang/Runnable;
292     invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
294     move-result-object v9
296     const-string v10, " what="
298     invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
300     move-result-object v9
302     iget v10, v4, Landroid/os/Message;->what:I
304     invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
306     move-result-object v9
308     invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
310     move-result-object v9
312     invoke-static {v8, v9}, Landroid/util/Log;->wtf(Ljava/lang/String;Ljava/lang/String;)I
314     :cond_db
315     invoke-virtual {v4}, Landroid/os/Message;->recycle()V
317     goto/16 :goto_17
318 .end method
320 .method public static myLooper()Landroid/os/Looper;
321     .registers 1
323     sget-object v0, Landroid/os/Looper;->sThreadLocal:Ljava/lang/ThreadLocal;
325     invoke-virtual {v0}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object;
327     move-result-object v0
329     check-cast v0, Landroid/os/Looper;
331     return-object v0
332 .end method
334 .method public static myQueue()Landroid/os/MessageQueue;
335     .registers 1
337     invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;
339     move-result-object v0
341     iget-object v0, v0, Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
343     return-object v0
344 .end method
346 .method public static prepare()V
347     .registers 1
349     const/4 v0, 0x1
351     invoke-static {v0}, Landroid/os/Looper;->prepare(Z)V
353     return-void
354 .end method
356 .method private static prepare(Z)V
357     .registers 3
359     sget-object v0, Landroid/os/Looper;->sThreadLocal:Ljava/lang/ThreadLocal;
361     invoke-virtual {v0}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object;
363     move-result-object v0
365     if-eqz v0, :cond_10
367     new-instance v0, Ljava/lang/RuntimeException;
369     const-string v1, "Only one Looper may be created per thread"
371     invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
373     throw v0
375     :cond_10
376     sget-object v0, Landroid/os/Looper;->sThreadLocal:Ljava/lang/ThreadLocal;
378     new-instance v1, Landroid/os/Looper;
380     invoke-direct {v1, p0}, Landroid/os/Looper;-><init>(Z)V
382     invoke-virtual {v0, v1}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V
384     return-void
385 .end method
387 .method public static prepareMainLooper()V
388     .registers 3
390     const/4 v0, 0x0
392     invoke-static {v0}, Landroid/os/Looper;->prepare(Z)V
394     const-class v1, Landroid/os/Looper;
396     monitor-enter v1
398     :try_start_7
399     sget-object v0, Landroid/os/Looper;->sMainLooper:Landroid/os/Looper;
401     if-eqz v0, :cond_16
403     new-instance v0, Ljava/lang/IllegalStateException;
405     const-string v2, "The main Looper has already been prepared."
407     invoke-direct {v0, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
409     throw v0
411     :catchall_13
412     move-exception v0
414     monitor-exit v1
415     :try_end_15
416     .catchall {:try_start_7 .. :try_end_15} :catchall_13
418     throw v0
420     :cond_16
421     :try_start_16
422     invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;
424     move-result-object v0
426     sput-object v0, Landroid/os/Looper;->sMainLooper:Landroid/os/Looper;
428     monitor-exit v1
429     :try_end_1d
430     .catchall {:try_start_16 .. :try_end_1d} :catchall_13
432     return-void
433 .end method
436 # virtual methods
437 .method public dump(Landroid/util/Printer;Ljava/lang/String;)V
438     .registers 10
440     invoke-static {p1, p2}, Landroid/util/PrefixPrinter;->create(Landroid/util/Printer;Ljava/lang/String;)Landroid/util/Printer;
442     move-result-object p1
444     invoke-virtual {p0}, Landroid/os/Looper;->toString()Ljava/lang/String;
446     move-result-object v4
448     invoke-interface {p1, v4}, Landroid/util/Printer;->println(Ljava/lang/String;)V
450     new-instance v4, Ljava/lang/StringBuilder;
452     invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
454     const-string/jumbo v5, "mRun="
456     invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
458     move-result-object v4
460     iget-boolean v5, p0, Landroid/os/Looper;->mRun:Z
462     invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
464     move-result-object v4
466     invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
468     move-result-object v4
470     invoke-interface {p1, v4}, Landroid/util/Printer;->println(Ljava/lang/String;)V
472     new-instance v4, Ljava/lang/StringBuilder;
474     invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
476     const-string/jumbo v5, "mThread="
478     invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
480     move-result-object v4
482     iget-object v5, p0, Landroid/os/Looper;->mThread:Ljava/lang/Thread;
484     invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
486     move-result-object v4
488     invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
490     move-result-object v4
492     invoke-interface {p1, v4}, Landroid/util/Printer;->println(Ljava/lang/String;)V
494     new-instance v4, Ljava/lang/StringBuilder;
496     invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
498     const-string/jumbo v5, "mQueue="
500     invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
502     move-result-object v5
504     iget-object v4, p0, Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
506     if-eqz v4, :cond_95
508     iget-object v4, p0, Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
510     :goto_4f
511     invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
513     move-result-object v4
515     invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
517     move-result-object v4
519     invoke-interface {p1, v4}, Landroid/util/Printer;->println(Ljava/lang/String;)V
521     iget-object v4, p0, Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
523     if-eqz v4, :cond_b5
525     iget-object v5, p0, Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
527     monitor-enter v5
529     :try_start_61
530     invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
532     move-result-wide v2
534     iget-object v4, p0, Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
536     iget-object v0, v4, Landroid/os/MessageQueue;->mMessages:Landroid/os/Message;
538     const/4 v1, 0x0
540     :goto_6a
541     if-eqz v0, :cond_98
543     new-instance v4, Ljava/lang/StringBuilder;
545     invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
547     const-string v6, "  Message "
549     invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
551     move-result-object v4
553     invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
555     move-result-object v4
557     const-string v6, ": "
559     invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
561     move-result-object v4
563     invoke-virtual {v0, v2, v3}, Landroid/os/Message;->toString(J)Ljava/lang/String;
565     move-result-object v6
567     invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
569     move-result-object v4
571     invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
573     move-result-object v4
575     invoke-interface {p1, v4}, Landroid/util/Printer;->println(Ljava/lang/String;)V
577     add-int/lit8 v1, v1, 0x1
579     iget-object v0, v0, Landroid/os/Message;->next:Landroid/os/Message;
580     :try_end_94
581     .catchall {:try_start_61 .. :try_end_94} :catchall_b6
583     goto :goto_6a
585     :cond_95
586     const-string v4, "(null"
588     goto :goto_4f
590     :cond_98
591     :try_start_98
592     new-instance v4, Ljava/lang/StringBuilder;
594     invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
596     const-string v6, "(Total messages: "
598     invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
600     move-result-object v4
602     invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
604     move-result-object v4
606     const-string v6, ")"
608     invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
610     move-result-object v4
612     invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
614     move-result-object v4
616     invoke-interface {p1, v4}, Landroid/util/Printer;->println(Ljava/lang/String;)V
618     monitor-exit v5
620     :cond_b5
621     return-void
623     :catchall_b6
624     move-exception v4
626     monitor-exit v5
627     :try_end_b8
628     .catchall {:try_start_98 .. :try_end_b8} :catchall_b6
630     throw v4
631 .end method
633 .method public getQueue()Landroid/os/MessageQueue;
634     .registers 2
636     iget-object v0, p0, Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
638     return-object v0
639 .end method
641 .method public getThread()Ljava/lang/Thread;
642     .registers 2
644     iget-object v0, p0, Landroid/os/Looper;->mThread:Ljava/lang/Thread;
646     return-object v0
647 .end method
649 .method public final postSyncBarrier()I
650     .registers 4
652     iget-object v0, p0, Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
654     invoke-static {}, Landroid/os/SystemClock;->uptimeMillis()J
656     move-result-wide v1
658     invoke-virtual {v0, v1, v2}, Landroid/os/MessageQueue;->enqueueSyncBarrier(J)I
660     move-result v0
662     return v0
663 .end method
665 .method public quit()V
666     .registers 2
668     iget-object v0, p0, Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
670     invoke-virtual {v0}, Landroid/os/MessageQueue;->quit()V
672     return-void
673 .end method
675 .method public final removeSyncBarrier(I)V
676     .registers 3
678     iget-object v0, p0, Landroid/os/Looper;->mQueue:Landroid/os/MessageQueue;
680     invoke-virtual {v0, p1}, Landroid/os/MessageQueue;->removeSyncBarrier(I)V
682     return-void
683 .end method
685 .method public setMessageLogging(Landroid/util/Printer;)V
686     .registers 2
688     iput-object p1, p0, Landroid/os/Looper;->mLogging:Landroid/util/Printer;
690     return-void
691 .end method
693 .method public toString()Ljava/lang/String;
694     .registers 3
696     new-instance v0, Ljava/lang/StringBuilder;
698     invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
700     const-string v1, "Looper{"
702     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
704     move-result-object v0
706     invoke-static {p0}, Ljava/lang/System;->identityHashCode(Ljava/lang/Object;)I
708     move-result v1
710     invoke-static {v1}, Ljava/lang/Integer;->toHexString(I)Ljava/lang/String;
712     move-result-object v1
714     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
716     move-result-object v0
718     const-string/jumbo v1, "}"
720     invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
722     move-result-object v0
724     invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
726     move-result-object v0
728     return-object v0
729 .end method