class android.widget.RemoteViewsAdapter$RemoteServiceHandler extends android.os.Handler implements android.content.ServiceConnection
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: android.widget.RemoteViewsAdapter$RemoteServiceHandler
super_class: android.os.Handler
{
private final java.lang.ref.WeakReference<android.widget.RemoteViewsAdapter> mAdapter;
descriptor: Ljava/lang/ref/WeakReference;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/lang/ref/WeakReference<Landroid/widget/RemoteViewsAdapter;>;
private final android.content.Context mContext;
descriptor: Landroid/content/Context;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private com.android.internal.widget.IRemoteViewsFactory mRemoteViewsFactory;
descriptor: Lcom/android/internal/widget/IRemoteViewsFactory;
flags: (0x0002) ACC_PRIVATE
private boolean mNotifyDataSetChangedPending;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean mBindRequested;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
void <init>(android.os.Looper, android.widget.RemoteViewsAdapter, android.content.Context);
descriptor: (Landroid/os/Looper;Landroid/widget/RemoteViewsAdapter;Landroid/content/Context;)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokespecial android.os.Handler.<init>:(Landroid/os/Looper;)V
1: aload 0
iconst_0
putfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mNotifyDataSetChangedPending:Z
2: aload 0
iconst_0
putfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mBindRequested:Z
3: aload 0
new java.lang.ref.WeakReference
dup
aload 2
invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
putfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mAdapter:Ljava/lang/ref/WeakReference;
4: aload 0
aload 3
putfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mContext:Landroid/content/Context;
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/widget/RemoteViewsAdapter$RemoteServiceHandler;
0 6 1 workerLooper Landroid/os/Looper;
0 6 2 adapter Landroid/widget/RemoteViewsAdapter;
0 6 3 context Landroid/content/Context;
MethodParameters:
Name Flags
workerLooper
adapter
context
public void onServiceConnected(android.content.ComponentName, android.os.IBinder);
descriptor: (Landroid/content/ComponentName;Landroid/os/IBinder;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokestatic com.android.internal.widget.IRemoteViewsFactory$Stub.asInterface:(Landroid/os/IBinder;)Lcom/android/internal/widget/IRemoteViewsFactory;
putfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mRemoteViewsFactory:Lcom/android/internal/widget/IRemoteViewsFactory;
1: aload 0
invokevirtual android.widget.RemoteViewsAdapter$RemoteServiceHandler.enqueueDeferredUnbindServiceMessage:()V
2: aload 0
getfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mAdapter:Ljava/lang/ref/WeakReference;
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
checkcast android.widget.RemoteViewsAdapter
astore 3
start local 3 3: aload 3
ifnonnull 5
4: return
5: StackMap locals: android.widget.RemoteViewsAdapter
StackMap stack:
aload 0
getfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mNotifyDataSetChangedPending:Z
ifeq 11
6: aload 0
iconst_0
putfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mNotifyDataSetChangedPending:Z
7: aload 0
iconst_2
invokestatic android.os.Message.obtain:(Landroid/os/Handler;I)Landroid/os/Message;
astore 4
start local 4 8: aload 0
aload 4
invokevirtual android.widget.RemoteViewsAdapter$RemoteServiceHandler.handleMessage:(Landroid/os/Message;)V
9: aload 4
invokevirtual android.os.Message.recycle:()V
end local 4 10: goto 16
11: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual android.widget.RemoteViewsAdapter$RemoteServiceHandler.sendNotifyDataSetChange:(Z)Z
ifne 13
12: return
13: StackMap locals:
StackMap stack:
aload 3
aload 0
getfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mRemoteViewsFactory:Lcom/android/internal/widget/IRemoteViewsFactory;
invokevirtual android.widget.RemoteViewsAdapter.updateTemporaryMetaData:(Lcom/android/internal/widget/IRemoteViewsFactory;)V
14: aload 3
getfield android.widget.RemoteViewsAdapter.mMainHandler:Landroid/os/Handler;
iconst_1
invokevirtual android.os.Handler.sendEmptyMessage:(I)Z
pop
15: aload 3
getfield android.widget.RemoteViewsAdapter.mMainHandler:Landroid/os/Handler;
iconst_3
invokevirtual android.os.Handler.sendEmptyMessage:(I)Z
pop
16: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Landroid/widget/RemoteViewsAdapter$RemoteServiceHandler;
0 17 1 name Landroid/content/ComponentName;
0 17 2 service Landroid/os/IBinder;
3 17 3 adapter Landroid/widget/RemoteViewsAdapter;
8 10 4 msg Landroid/os/Message;
MethodParameters:
Name Flags
name
service
public void onServiceDisconnected(android.content.ComponentName);
descriptor: (Landroid/content/ComponentName;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aconst_null
putfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mRemoteViewsFactory:Lcom/android/internal/widget/IRemoteViewsFactory;
1: aload 0
getfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mAdapter:Ljava/lang/ref/WeakReference;
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
checkcast android.widget.RemoteViewsAdapter
astore 2
start local 2 2: aload 2
ifnull 4
3: aload 2
getfield android.widget.RemoteViewsAdapter.mMainHandler:Landroid/os/Handler;
iconst_4
invokevirtual android.os.Handler.sendEmptyMessage:(I)Z
pop
4: StackMap locals: android.widget.RemoteViewsAdapter
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/widget/RemoteViewsAdapter$RemoteServiceHandler;
0 5 1 name Landroid/content/ComponentName;
2 5 2 adapter Landroid/widget/RemoteViewsAdapter;
MethodParameters:
Name Flags
name
public void handleMessage(android.os.Message);
descriptor: (Landroid/os/Message;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=9, args_size=2
start local 0 start local 1 0: aload 0
getfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mAdapter:Ljava/lang/ref/WeakReference;
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
checkcast android.widget.RemoteViewsAdapter
astore 2
start local 2 1: aload 1
getfield android.os.Message.what:I
tableswitch { // 1 - 4
1: 2
2: 14
3: 48
4: 58
default: 60
}
2: StackMap locals: android.widget.RemoteViewsAdapter
StackMap stack:
aload 2
ifnull 3
aload 0
getfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mRemoteViewsFactory:Lcom/android/internal/widget/IRemoteViewsFactory;
ifnull 4
3: StackMap locals:
StackMap stack:
aload 0
invokevirtual android.widget.RemoteViewsAdapter$RemoteServiceHandler.enqueueDeferredUnbindServiceMessage:()V
4: StackMap locals:
StackMap stack:
aload 0
getfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mBindRequested:Z
ifeq 6
5: return
6: StackMap locals:
StackMap stack:
ldc 33554433
istore 3
start local 3 7: aload 0
getfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mContext:Landroid/content/Context;
aload 0
aload 0
iload 3
invokevirtual android.content.Context.getServiceDispatcher:(Landroid/content/ServiceConnection;Landroid/os/Handler;I)Landroid/app/IServiceConnection;
astore 4
start local 4 8: aload 1
getfield android.os.Message.obj:Ljava/lang/Object;
checkcast android.content.Intent
astore 5
start local 5 9: aload 1
getfield android.os.Message.arg1:I
istore 6
start local 6 10: aload 0
aload 0
getfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mContext:Landroid/content/Context;
invokestatic android.appwidget.AppWidgetManager.getInstance:(Landroid/content/Context;)Landroid/appwidget/AppWidgetManager;
11: aload 0
getfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mContext:Landroid/content/Context;
iload 6
aload 5
aload 4
iload 3
invokevirtual android.appwidget.AppWidgetManager.bindRemoteViewsService:(Landroid/content/Context;ILandroid/content/Intent;Landroid/app/IServiceConnection;I)Z
12: putfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mBindRequested:Z
13: return
end local 6 end local 5 end local 4 end local 3 14: StackMap locals:
StackMap stack:
aload 0
invokevirtual android.widget.RemoteViewsAdapter$RemoteServiceHandler.enqueueDeferredUnbindServiceMessage:()V
15: aload 2
ifnonnull 17
16: return
17: StackMap locals:
StackMap stack:
aload 0
getfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mRemoteViewsFactory:Lcom/android/internal/widget/IRemoteViewsFactory;
ifnonnull 21
18: aload 0
iconst_1
putfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mNotifyDataSetChangedPending:Z
19: aload 2
invokevirtual android.widget.RemoteViewsAdapter.requestBindService:()V
20: return
21: StackMap locals:
StackMap stack:
aload 0
iconst_1
invokevirtual android.widget.RemoteViewsAdapter$RemoteServiceHandler.sendNotifyDataSetChange:(Z)Z
ifne 23
22: return
23: StackMap locals:
StackMap stack:
aload 2
getfield android.widget.RemoteViewsAdapter.mCache:Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;
dup
astore 3
monitorenter
24: aload 2
getfield android.widget.RemoteViewsAdapter.mCache:Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;
invokevirtual android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.reset:()V
25: aload 3
monitorexit
26: goto 29
StackMap locals: android.widget.RemoteViewsAdapter$RemoteServiceHandler android.os.Message android.widget.RemoteViewsAdapter android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache
StackMap stack: java.lang.Throwable
27: aload 3
monitorexit
28: athrow
29: StackMap locals:
StackMap stack:
aload 2
aload 0
getfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mRemoteViewsFactory:Lcom/android/internal/widget/IRemoteViewsFactory;
invokevirtual android.widget.RemoteViewsAdapter.updateTemporaryMetaData:(Lcom/android/internal/widget/IRemoteViewsFactory;)V
30: aload 2
getfield android.widget.RemoteViewsAdapter.mCache:Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;
invokevirtual android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.getTemporaryMetaData:()Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;
dup
astore 5
monitorenter
31: aload 2
getfield android.widget.RemoteViewsAdapter.mCache:Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;
invokevirtual android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.getTemporaryMetaData:()Landroid/widget/RemoteViewsAdapter$RemoteViewsMetaData;
getfield android.widget.RemoteViewsAdapter$RemoteViewsMetaData.count:I
istore 3
start local 3 32: aload 2
iload 3
invokevirtual android.widget.RemoteViewsAdapter.getVisibleWindow:(I)[I
astore 4
start local 4 33: aload 5
monitorexit
34: goto 37
end local 4 end local 3 StackMap locals: android.widget.RemoteViewsAdapter$RemoteServiceHandler android.os.Message android.widget.RemoteViewsAdapter top top android.widget.RemoteViewsAdapter$RemoteViewsMetaData
StackMap stack: java.lang.Throwable
35: aload 5
monitorexit
36: athrow
start local 3 start local 4 37: StackMap locals: android.widget.RemoteViewsAdapter$RemoteServiceHandler android.os.Message android.widget.RemoteViewsAdapter int int[]
StackMap stack:
aload 4
dup
astore 8
arraylength
istore 7
iconst_0
istore 6
goto 42
StackMap locals: android.widget.RemoteViewsAdapter$RemoteServiceHandler android.os.Message android.widget.RemoteViewsAdapter int int[] top int int int[]
StackMap stack:
38: aload 8
iload 6
iaload
istore 5
start local 5 39: iload 5
iload 3
if_icmpge 41
40: aload 2
aload 0
getfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mRemoteViewsFactory:Lcom/android/internal/widget/IRemoteViewsFactory;
iload 5
iconst_0
invokevirtual android.widget.RemoteViewsAdapter.updateRemoteViews:(Lcom/android/internal/widget/IRemoteViewsFactory;IZ)V
end local 5 41: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
42: iload 6
iload 7
if_icmplt 38
43: aload 2
getfield android.widget.RemoteViewsAdapter.mMainHandler:Landroid/os/Handler;
iconst_1
invokevirtual android.os.Handler.sendEmptyMessage:(I)Z
pop
44: aload 2
getfield android.widget.RemoteViewsAdapter.mMainHandler:Landroid/os/Handler;
45: iconst_2
46: invokevirtual android.os.Handler.sendEmptyMessage:(I)Z
pop
47: return
end local 4 end local 3 48: StackMap locals: android.widget.RemoteViewsAdapter$RemoteServiceHandler android.os.Message android.widget.RemoteViewsAdapter
StackMap stack:
aload 2
ifnull 49
aload 0
getfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mRemoteViewsFactory:Lcom/android/internal/widget/IRemoteViewsFactory;
ifnonnull 50
49: StackMap locals:
StackMap stack:
return
50: StackMap locals:
StackMap stack:
aload 0
iconst_4
invokevirtual android.widget.RemoteViewsAdapter$RemoteServiceHandler.removeMessages:(I)V
51: aload 2
getfield android.widget.RemoteViewsAdapter.mCache:Landroid/widget/RemoteViewsAdapter$FixedSizeRemoteViewsCache;
invokevirtual android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache.getNextIndexToLoad:()I
istore 3
start local 3 52: iload 3
iconst_m1
if_icmple 56
53: aload 2
aload 0
getfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mRemoteViewsFactory:Lcom/android/internal/widget/IRemoteViewsFactory;
iload 3
iconst_1
invokevirtual android.widget.RemoteViewsAdapter.updateRemoteViews:(Lcom/android/internal/widget/IRemoteViewsFactory;IZ)V
54: aload 0
iconst_3
invokevirtual android.widget.RemoteViewsAdapter$RemoteServiceHandler.sendEmptyMessage:(I)Z
pop
55: goto 57
56: StackMap locals: int
StackMap stack:
aload 0
invokevirtual android.widget.RemoteViewsAdapter$RemoteServiceHandler.enqueueDeferredUnbindServiceMessage:()V
57: StackMap locals:
StackMap stack:
return
end local 3 58: StackMap locals:
StackMap stack:
aload 0
invokevirtual android.widget.RemoteViewsAdapter$RemoteServiceHandler.unbindNow:()V
59: return
60: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 61 0 this Landroid/widget/RemoteViewsAdapter$RemoteServiceHandler;
0 61 1 msg Landroid/os/Message;
1 61 2 adapter Landroid/widget/RemoteViewsAdapter;
7 14 3 flags I
8 14 4 sd Landroid/app/IServiceConnection;
9 14 5 intent Landroid/content/Intent;
10 14 6 appWidgetId I
32 35 3 newCount I
37 48 3 newCount I
33 35 4 visibleWindow [I
37 48 4 visibleWindow [I
39 41 5 position I
52 58 3 position I
Exception table:
from to target type
24 26 27 any
27 28 27 any
31 34 35 any
35 36 35 any
MethodParameters:
Name Flags
msg
protected void unbindNow();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mBindRequested:Z
ifeq 3
1: aload 0
iconst_0
putfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mBindRequested:Z
2: aload 0
getfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mContext:Landroid/content/Context;
aload 0
invokevirtual android.content.Context.unbindService:(Landroid/content/ServiceConnection;)V
3: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mRemoteViewsFactory:Lcom/android/internal/widget/IRemoteViewsFactory;
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/widget/RemoteViewsAdapter$RemoteServiceHandler;
private boolean sendNotifyDataSetChange(boolean);
descriptor: (Z)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iload 1
ifne 1
aload 0
getfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mRemoteViewsFactory:Lcom/android/internal/widget/IRemoteViewsFactory;
invokeinterface com.android.internal.widget.IRemoteViewsFactory.isCreated:()Z
ifne 2
1: StackMap locals:
StackMap stack:
aload 0
getfield android.widget.RemoteViewsAdapter$RemoteServiceHandler.mRemoteViewsFactory:Lcom/android/internal/widget/IRemoteViewsFactory;
invokeinterface com.android.internal.widget.IRemoteViewsFactory.onDataSetChanged:()V
2: StackMap locals:
StackMap stack:
iconst_1
ireturn
3: StackMap locals:
StackMap stack: java.lang.Exception
astore 2
start local 2 4: ldc "RemoteViewsAdapter"
new java.lang.StringBuilder
dup
ldc "Error in updateNotifyDataSetChanged(): "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.Exception.getMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
5: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/widget/RemoteViewsAdapter$RemoteServiceHandler;
0 6 1 always Z
4 6 2 e Ljava/lang/Exception;
Exception table:
from to target type
0 2 3 Class android.os.RemoteException
0 2 3 Class java.lang.RuntimeException
MethodParameters:
Name Flags
always
private void enqueueDeferredUnbindServiceMessage();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
iconst_4
invokevirtual android.widget.RemoteViewsAdapter$RemoteServiceHandler.removeMessages:(I)V
1: aload 0
iconst_4
ldc 5000
invokevirtual android.widget.RemoteViewsAdapter$RemoteServiceHandler.sendEmptyMessageDelayed:(IJ)Z
pop
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/widget/RemoteViewsAdapter$RemoteServiceHandler;
}
SourceFile: "RemoteViewsAdapter.java"
NestHost: android.widget.RemoteViewsAdapter
InnerClasses:
private FixedSizeRemoteViewsCache = android.widget.RemoteViewsAdapter$FixedSizeRemoteViewsCache of android.widget.RemoteViewsAdapter
private RemoteServiceHandler = android.widget.RemoteViewsAdapter$RemoteServiceHandler of android.widget.RemoteViewsAdapter
private RemoteViewsMetaData = android.widget.RemoteViewsAdapter$RemoteViewsMetaData of android.widget.RemoteViewsAdapter
public abstract Stub = com.android.internal.widget.IRemoteViewsFactory$Stub of com.android.internal.widget.IRemoteViewsFactory