abstract class android.location.LocalListenerHelper<TListener>
minor version: 0
major version: 59
flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
this_class: android.location.LocalListenerHelper
super_class: java.lang.Object
{
private final java.util.HashMap<TListener, android.os.Handler> mListeners;
descriptor: Ljava/util/HashMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/HashMap<TTListener;Landroid/os/Handler;>;
private final java.lang.String mTag;
descriptor: Ljava/lang/String;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final android.content.Context mContext;
descriptor: Landroid/content/Context;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
protected void <init>(android.content.Context, java.lang.String);
descriptor: (Landroid/content/Context;Ljava/lang/String;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield android.location.LocalListenerHelper.mListeners:Ljava/util/HashMap;
2: aload 2
invokestatic com.android.internal.util.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
3: aload 0
aload 1
putfield android.location.LocalListenerHelper.mContext:Landroid/content/Context;
4: aload 0
aload 2
putfield android.location.LocalListenerHelper.mTag:Ljava/lang/String;
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/location/LocalListenerHelper<TTListener;>;
0 6 1 context Landroid/content/Context;
0 6 2 name Ljava/lang/String;
MethodParameters:
Name Flags
context
name
public boolean add(TListener, android.os.Handler);
descriptor: (Ljava/lang/Object;Landroid/os/Handler;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic com.android.internal.util.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
getfield android.location.LocalListenerHelper.mListeners:Ljava/util/HashMap;
dup
astore 3
monitorenter
2: aload 0
getfield android.location.LocalListenerHelper.mListeners:Ljava/util/HashMap;
invokevirtual java.util.HashMap.isEmpty:()Z
ifeq 13
3: aload 0
invokevirtual android.location.LocalListenerHelper.registerWithServer:()Z
istore 4
start local 4 4: goto 9
end local 4 StackMap locals: android.location.LocalListenerHelper java.lang.Object android.os.Handler java.util.HashMap
StackMap stack: android.os.RemoteException
5: astore 5
start local 5 6: aload 0
getfield android.location.LocalListenerHelper.mTag:Ljava/lang/String;
ldc "Error handling first listener."
aload 5
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
7: aload 3
monitorexit
8: iconst_0
ireturn
end local 5 start local 4 9: StackMap locals: int
StackMap stack:
iload 4
ifne 13
10: aload 0
getfield android.location.LocalListenerHelper.mTag:Ljava/lang/String;
ldc "Unable to register listener transport."
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
pop
11: aload 3
monitorexit
12: iconst_0
ireturn
end local 4 13: StackMap locals:
StackMap stack:
aload 0
getfield android.location.LocalListenerHelper.mListeners:Ljava/util/HashMap;
aload 1
invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
ifeq 16
14: aload 3
monitorexit
15: iconst_1
ireturn
16: StackMap locals:
StackMap stack:
aload 0
getfield android.location.LocalListenerHelper.mListeners:Ljava/util/HashMap;
aload 1
aload 2
invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
17: aload 3
monitorexit
18: iconst_1
ireturn
19: StackMap locals:
StackMap stack: java.lang.Throwable
aload 3
monitorexit
20: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Landroid/location/LocalListenerHelper<TTListener;>;
0 21 1 listener TTListener;
0 21 2 handler Landroid/os/Handler;
4 5 4 registeredWithService Z
9 13 4 registeredWithService Z
6 9 5 e Landroid/os/RemoteException;
Exception table:
from to target type
3 4 5 Class android.os.RemoteException
2 8 19 any
9 12 19 any
13 15 19 any
16 18 19 any
19 20 19 any
Signature: (TTListener;Landroid/os/Handler;)Z
MethodParameters:
Name Flags
listener
handler
public void remove();
descriptor: (Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokestatic com.android.internal.util.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 0
getfield android.location.LocalListenerHelper.mListeners:Ljava/util/HashMap;
dup
astore 2
monitorenter
2: aload 0
getfield android.location.LocalListenerHelper.mListeners:Ljava/util/HashMap;
aload 1
invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
istore 3
start local 3 3: aload 0
getfield android.location.LocalListenerHelper.mListeners:Ljava/util/HashMap;
aload 1
invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
4: iload 3
ifeq 5
aload 0
getfield android.location.LocalListenerHelper.mListeners:Ljava/util/HashMap;
invokevirtual java.util.HashMap.isEmpty:()Z
ifeq 5
iconst_1
goto 6
StackMap locals: java.util.HashMap int
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: istore 4
start local 4 7: iload 4
ifeq 12
8: aload 0
invokevirtual android.location.LocalListenerHelper.unregisterFromServer:()V
9: goto 12
StackMap locals: android.location.LocalListenerHelper java.lang.Object java.util.HashMap int int
StackMap stack: android.os.RemoteException
10: astore 5
start local 5 11: aload 0
getfield android.location.LocalListenerHelper.mTag:Ljava/lang/String;
ldc "Error handling last listener removal"
aload 5
invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 5 end local 4 end local 3 12: StackMap locals:
StackMap stack:
aload 2
monitorexit
13: goto 16
StackMap locals:
StackMap stack: java.lang.Throwable
14: aload 2
monitorexit
15: athrow
16: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Landroid/location/LocalListenerHelper<TTListener;>;
0 17 1 listener TTListener;
3 12 3 removed Z
7 12 4 isLastRemoved Z
11 12 5 e Landroid/os/RemoteException;
Exception table:
from to target type
8 9 10 Class android.os.RemoteException
2 13 14 any
14 15 14 any
Signature: (TTListener;)V
MethodParameters:
Name Flags
listener
protected abstract boolean registerWithServer();
descriptor: ()Z
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Exceptions:
throws android.os.RemoteException
protected abstract void unregisterFromServer();
descriptor: ()V
flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
Exceptions:
throws android.os.RemoteException
protected android.content.Context getContext();
descriptor: ()Landroid/content/Context;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.location.LocalListenerHelper.mContext:Landroid/content/Context;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/location/LocalListenerHelper<TTListener;>;
private void executeOperation(android.location.LocalListenerHelper$ListenerOperation<TListener>, );
descriptor: (Landroid/location/LocalListenerHelper$ListenerOperation;Ljava/lang/Object;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokeinterface android.location.LocalListenerHelper$ListenerOperation.execute:(Ljava/lang/Object;)V
1: goto 4
StackMap locals:
StackMap stack: android.os.RemoteException
2: astore 3
start local 3 3: aload 0
getfield android.location.LocalListenerHelper.mTag:Ljava/lang/String;
ldc "Error in monitored listener."
aload 3
invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
end local 3 4: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/location/LocalListenerHelper<TTListener;>;
0 5 1 operation Landroid/location/LocalListenerHelper$ListenerOperation<TTListener;>;
0 5 2 listener TTListener;
3 4 3 e Landroid/os/RemoteException;
Exception table:
from to target type
0 1 2 Class android.os.RemoteException
Signature: (Landroid/location/LocalListenerHelper$ListenerOperation<TTListener;>;TTListener;)V
MethodParameters:
Name Flags
operation
listener
protected void foreach(android.location.LocalListenerHelper$ListenerOperation<TListener>);
descriptor: (Landroid/location/LocalListenerHelper$ListenerOperation;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield android.location.LocalListenerHelper.mListeners:Ljava/util/HashMap;
dup
astore 3
monitorenter
1: new java.util.ArrayList
dup
aload 0
getfield android.location.LocalListenerHelper.mListeners:Ljava/util/HashMap;
invokevirtual java.util.HashMap.entrySet:()Ljava/util/Set;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 2
start local 2 2: aload 3
monitorexit
3: goto 6
end local 2 StackMap locals: android.location.LocalListenerHelper android.location.LocalListenerHelper$ListenerOperation top java.util.HashMap
StackMap stack: java.lang.Throwable
4: aload 3
monitorexit
5: athrow
start local 2 6: StackMap locals: android.location.LocalListenerHelper android.location.LocalListenerHelper$ListenerOperation java.util.Collection
StackMap stack:
aload 2
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 4
goto 12
StackMap locals: android.location.LocalListenerHelper android.location.LocalListenerHelper$ListenerOperation java.util.Collection top java.util.Iterator
StackMap stack:
7: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 3
start local 3 8: aload 3
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
ifnonnull 11
9: aload 0
aload 1
aload 3
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
invokevirtual android.location.LocalListenerHelper.executeOperation:(Landroid/location/LocalListenerHelper$ListenerOperation;Ljava/lang/Object;)V
10: goto 12
11: StackMap locals: android.location.LocalListenerHelper android.location.LocalListenerHelper$ListenerOperation java.util.Collection java.util.Map$Entry java.util.Iterator
StackMap stack:
aload 3
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast android.os.Handler
new android.location.LocalListenerHelper$1
dup
aload 0
aload 1
aload 3
invokespecial android.location.LocalListenerHelper$1.<init>:(Landroid/location/LocalListenerHelper;Landroid/location/LocalListenerHelper$ListenerOperation;Ljava/util/Map$Entry;)V
invokevirtual android.os.Handler.post:(Ljava/lang/Runnable;)Z
pop
end local 3 12: StackMap locals: android.location.LocalListenerHelper android.location.LocalListenerHelper$ListenerOperation java.util.Collection top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
13: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Landroid/location/LocalListenerHelper<TTListener;>;
0 14 1 operation Landroid/location/LocalListenerHelper$ListenerOperation<TTListener;>;
2 4 2 listeners Ljava/util/Collection<Ljava/util/Map$Entry<TTListener;Landroid/os/Handler;>;>;
6 14 2 listeners Ljava/util/Collection<Ljava/util/Map$Entry<TTListener;Landroid/os/Handler;>;>;
8 12 3 listener Ljava/util/Map$Entry<TTListener;Landroid/os/Handler;>;
Exception table:
from to target type
1 3 4 any
4 5 4 any
Signature: (Landroid/location/LocalListenerHelper$ListenerOperation<TTListener;>;)V
MethodParameters:
Name Flags
operation final
}
Signature: <TListener:Ljava/lang/Object;>Ljava/lang/Object;
SourceFile: "LocalListenerHelper.java"
NestMembers:
android.location.LocalListenerHelper$1 android.location.LocalListenerHelper$ListenerOperation
InnerClasses:
android.location.LocalListenerHelper$1
protected abstract ListenerOperation = android.location.LocalListenerHelper$ListenerOperation of android.location.LocalListenerHelper
public abstract Entry = java.util.Map$Entry of java.util.Map