public final class android.accessibilityservice.AccessibilityButtonController
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: android.accessibilityservice.AccessibilityButtonController
super_class: java.lang.Object
{
private static final java.lang.String LOG_TAG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "A11yButtonController"
private final android.accessibilityservice.IAccessibilityServiceConnection mServiceConnection;
descriptor: Landroid/accessibilityservice/IAccessibilityServiceConnection;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object mLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private android.util.ArrayMap<android.accessibilityservice.AccessibilityButtonController$AccessibilityButtonCallback, android.os.Handler> mCallbacks;
descriptor: Landroid/util/ArrayMap;
flags: (0x0002) ACC_PRIVATE
Signature: Landroid/util/ArrayMap<Landroid/accessibilityservice/AccessibilityButtonController$AccessibilityButtonCallback;Landroid/os/Handler;>;
void <init>(android.accessibilityservice.IAccessibilityServiceConnection);
descriptor: (Landroid/accessibilityservice/IAccessibilityServiceConnection;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield android.accessibilityservice.AccessibilityButtonController.mServiceConnection:Landroid/accessibilityservice/IAccessibilityServiceConnection;
2: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield android.accessibilityservice.AccessibilityButtonController.mLock:Ljava/lang/Object;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/accessibilityservice/AccessibilityButtonController;
0 4 1 serviceConnection Landroid/accessibilityservice/IAccessibilityServiceConnection;
MethodParameters:
Name Flags
serviceConnection
public boolean isAccessibilityButtonAvailable();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield android.accessibilityservice.AccessibilityButtonController.mServiceConnection:Landroid/accessibilityservice/IAccessibilityServiceConnection;
invokeinterface android.accessibilityservice.IAccessibilityServiceConnection.isAccessibilityButtonAvailable:()Z
1: ireturn
2: StackMap locals:
StackMap stack: android.os.RemoteException
astore 1
start local 1 3: ldc "A11yButtonController"
ldc "Failed to get accessibility button availability."
aload 1
invokestatic android.util.Slog.w:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
pop
4: aload 1
invokevirtual android.os.RemoteException.rethrowFromSystemServer:()Ljava/lang/RuntimeException;
pop
5: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/accessibilityservice/AccessibilityButtonController;
3 6 1 re Landroid/os/RemoteException;
Exception table:
from to target type
0 1 2 Class android.os.RemoteException
public void registerAccessibilityButtonCallback(android.accessibilityservice.AccessibilityButtonController$AccessibilityButtonCallback);
descriptor: (Landroid/accessibilityservice/AccessibilityButtonController$AccessibilityButtonCallback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
new android.os.Handler
dup
invokestatic android.os.Looper.getMainLooper:()Landroid/os/Looper;
invokespecial android.os.Handler.<init>:(Landroid/os/Looper;)V
invokevirtual android.accessibilityservice.AccessibilityButtonController.registerAccessibilityButtonCallback:(Landroid/accessibilityservice/AccessibilityButtonController$AccessibilityButtonCallback;Landroid/os/Handler;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/accessibilityservice/AccessibilityButtonController;
0 2 1 callback Landroid/accessibilityservice/AccessibilityButtonController$AccessibilityButtonCallback;
MethodParameters:
Name Flags
callback
public void registerAccessibilityButtonCallback(android.accessibilityservice.AccessibilityButtonController$AccessibilityButtonCallback, android.os.Handler);
descriptor: (Landroid/accessibilityservice/AccessibilityButtonController$AccessibilityButtonCallback;Landroid/os/Handler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, 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 2
invokestatic com.android.internal.util.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 0
getfield android.accessibilityservice.AccessibilityButtonController.mLock:Ljava/lang/Object;
dup
astore 3
monitorenter
3: aload 0
getfield android.accessibilityservice.AccessibilityButtonController.mCallbacks:Landroid/util/ArrayMap;
ifnonnull 5
4: aload 0
new android.util.ArrayMap
dup
invokespecial android.util.ArrayMap.<init>:()V
putfield android.accessibilityservice.AccessibilityButtonController.mCallbacks:Landroid/util/ArrayMap;
5: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield android.accessibilityservice.AccessibilityButtonController.mCallbacks:Landroid/util/ArrayMap;
aload 1
aload 2
invokevirtual android.util.ArrayMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
6: aload 3
monitorexit
7: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 3
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/accessibilityservice/AccessibilityButtonController;
0 11 1 callback Landroid/accessibilityservice/AccessibilityButtonController$AccessibilityButtonCallback;
0 11 2 handler Landroid/os/Handler;
Exception table:
from to target type
3 7 8 any
8 9 8 any
MethodParameters:
Name Flags
callback
handler
public void unregisterAccessibilityButtonCallback(android.accessibilityservice.AccessibilityButtonController$AccessibilityButtonCallback);
descriptor: (Landroid/accessibilityservice/AccessibilityButtonController$AccessibilityButtonCallback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, 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.accessibilityservice.AccessibilityButtonController.mLock:Ljava/lang/Object;
dup
astore 2
monitorenter
2: aload 0
getfield android.accessibilityservice.AccessibilityButtonController.mCallbacks:Landroid/util/ArrayMap;
ifnonnull 5
3: aload 2
monitorexit
4: return
5: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield android.accessibilityservice.AccessibilityButtonController.mCallbacks:Landroid/util/ArrayMap;
aload 1
invokevirtual android.util.ArrayMap.indexOfKey:(Ljava/lang/Object;)I
istore 3
start local 3 6: iload 3
iflt 7
iconst_1
goto 8
StackMap locals: int
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: istore 4
start local 4 9: iload 4
ifeq 11
10: aload 0
getfield android.accessibilityservice.AccessibilityButtonController.mCallbacks:Landroid/util/ArrayMap;
iload 3
invokevirtual android.util.ArrayMap.removeAt:(I)Ljava/lang/Object;
pop
end local 4 end local 3 11: StackMap locals:
StackMap stack:
aload 2
monitorexit
12: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
13: aload 2
monitorexit
14: athrow
15: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Landroid/accessibilityservice/AccessibilityButtonController;
0 16 1 callback Landroid/accessibilityservice/AccessibilityButtonController$AccessibilityButtonCallback;
6 11 3 keyIndex I
9 11 4 hasKey Z
Exception table:
from to target type
2 4 13 any
5 12 13 any
13 14 13 any
MethodParameters:
Name Flags
callback
void dispatchAccessibilityButtonClicked();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=6, args_size=1
start local 0 0: aload 0
getfield android.accessibilityservice.AccessibilityButtonController.mLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
getfield android.accessibilityservice.AccessibilityButtonController.mCallbacks:Landroid/util/ArrayMap;
ifnull 2
aload 0
getfield android.accessibilityservice.AccessibilityButtonController.mCallbacks:Landroid/util/ArrayMap;
invokevirtual android.util.ArrayMap.isEmpty:()Z
ifeq 5
2: StackMap locals: android.accessibilityservice.AccessibilityButtonController top java.lang.Object
StackMap stack:
ldc "A11yButtonController"
ldc "Received accessibility button click with no callbacks!"
invokestatic android.util.Slog.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
3: aload 2
monitorexit
4: return
5: StackMap locals:
StackMap stack:
new android.util.ArrayMap
dup
aload 0
getfield android.accessibilityservice.AccessibilityButtonController.mCallbacks:Landroid/util/ArrayMap;
invokespecial android.util.ArrayMap.<init>:(Landroid/util/ArrayMap;)V
astore 1
start local 1 6: aload 2
monitorexit
7: goto 10
end local 1 StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 2
monitorexit
9: athrow
start local 1 10: StackMap locals: android.accessibilityservice.AccessibilityButtonController android.util.ArrayMap
StackMap stack:
iconst_0
istore 2
start local 2 11: aload 1
invokevirtual android.util.ArrayMap.size:()I
istore 3
start local 3 12: goto 17
13: StackMap locals: int int
StackMap stack:
aload 1
iload 2
invokevirtual android.util.ArrayMap.keyAt:(I)Ljava/lang/Object;
checkcast android.accessibilityservice.AccessibilityButtonController$AccessibilityButtonCallback
astore 4
start local 4 14: aload 1
iload 2
invokevirtual android.util.ArrayMap.valueAt:(I)Ljava/lang/Object;
checkcast android.os.Handler
astore 5
start local 5 15: aload 5
aload 0
aload 4
invokedynamic run(Landroid/accessibilityservice/AccessibilityButtonController;Landroid/accessibilityservice/AccessibilityButtonController$AccessibilityButtonCallback;)Ljava/lang/Runnable;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()V
android/accessibilityservice/AccessibilityButtonController.lambda$0(Landroid/accessibilityservice/AccessibilityButtonController$AccessibilityButtonCallback;)V (7)
()V
invokevirtual android.os.Handler.post:(Ljava/lang/Runnable;)Z
pop
end local 5 end local 4 16: iinc 2 1
StackMap locals:
StackMap stack:
17: iload 2
iload 3
if_icmplt 13
end local 3 end local 2 18: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Landroid/accessibilityservice/AccessibilityButtonController;
6 8 1 entries Landroid/util/ArrayMap<Landroid/accessibilityservice/AccessibilityButtonController$AccessibilityButtonCallback;Landroid/os/Handler;>;
10 19 1 entries Landroid/util/ArrayMap<Landroid/accessibilityservice/AccessibilityButtonController$AccessibilityButtonCallback;Landroid/os/Handler;>;
11 18 2 i I
12 18 3 count I
14 16 4 callback Landroid/accessibilityservice/AccessibilityButtonController$AccessibilityButtonCallback;
15 16 5 handler Landroid/os/Handler;
Exception table:
from to target type
1 4 8 any
5 7 8 any
8 9 8 any
void dispatchAccessibilityButtonAvailabilityChanged(boolean);
descriptor: (Z)V
flags: (0x0000)
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield android.accessibilityservice.AccessibilityButtonController.mLock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
getfield android.accessibilityservice.AccessibilityButtonController.mCallbacks:Landroid/util/ArrayMap;
ifnull 2
aload 0
getfield android.accessibilityservice.AccessibilityButtonController.mCallbacks:Landroid/util/ArrayMap;
invokevirtual android.util.ArrayMap.isEmpty:()Z
ifeq 7
2: StackMap locals: android.accessibilityservice.AccessibilityButtonController int top java.lang.Object
StackMap stack:
ldc "A11yButtonController"
3: ldc "Received accessibility button availability change with no callbacks!"
4: invokestatic android.util.Slog.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
5: aload 3
monitorexit
6: return
7: StackMap locals:
StackMap stack:
new android.util.ArrayMap
dup
aload 0
getfield android.accessibilityservice.AccessibilityButtonController.mCallbacks:Landroid/util/ArrayMap;
invokespecial android.util.ArrayMap.<init>:(Landroid/util/ArrayMap;)V
astore 2
start local 2 8: aload 3
monitorexit
9: goto 12
end local 2 StackMap locals:
StackMap stack: java.lang.Throwable
10: aload 3
monitorexit
11: athrow
start local 2 12: StackMap locals: android.accessibilityservice.AccessibilityButtonController int android.util.ArrayMap
StackMap stack:
iconst_0
istore 3
start local 3 13: aload 2
invokevirtual android.util.ArrayMap.size:()I
istore 4
start local 4 14: goto 19
15: StackMap locals: int int
StackMap stack:
aload 2
iload 3
invokevirtual android.util.ArrayMap.keyAt:(I)Ljava/lang/Object;
checkcast android.accessibilityservice.AccessibilityButtonController$AccessibilityButtonCallback
astore 5
start local 5 16: aload 2
iload 3
invokevirtual android.util.ArrayMap.valueAt:(I)Ljava/lang/Object;
checkcast android.os.Handler
astore 6
start local 6 17: aload 6
aload 0
aload 5
iload 1
invokedynamic run(Landroid/accessibilityservice/AccessibilityButtonController;Landroid/accessibilityservice/AccessibilityButtonController$AccessibilityButtonCallback;Z)Ljava/lang/Runnable;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()V
android/accessibilityservice/AccessibilityButtonController.lambda$1(Landroid/accessibilityservice/AccessibilityButtonController$AccessibilityButtonCallback;Z)V (7)
()V
invokevirtual android.os.Handler.post:(Ljava/lang/Runnable;)Z
pop
end local 6 end local 5 18: iinc 3 1
StackMap locals:
StackMap stack:
19: iload 3
iload 4
if_icmplt 15
end local 4 end local 3 20: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Landroid/accessibilityservice/AccessibilityButtonController;
0 21 1 available Z
8 10 2 entries Landroid/util/ArrayMap<Landroid/accessibilityservice/AccessibilityButtonController$AccessibilityButtonCallback;Landroid/os/Handler;>;
12 21 2 entries Landroid/util/ArrayMap<Landroid/accessibilityservice/AccessibilityButtonController$AccessibilityButtonCallback;Landroid/os/Handler;>;
13 20 3 i I
14 20 4 count I
16 18 5 callback Landroid/accessibilityservice/AccessibilityButtonController$AccessibilityButtonCallback;
17 18 6 handler Landroid/os/Handler;
Exception table:
from to target type
1 6 10 any
7 9 10 any
10 11 10 any
MethodParameters:
Name Flags
available
private void lambda$0(android.accessibilityservice.AccessibilityButtonController$AccessibilityButtonCallback);
descriptor: (Landroid/accessibilityservice/AccessibilityButtonController$AccessibilityButtonCallback;)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 1
aload 0
invokevirtual android.accessibilityservice.AccessibilityButtonController$AccessibilityButtonCallback.onClicked:(Landroid/accessibilityservice/AccessibilityButtonController;)V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/accessibilityservice/AccessibilityButtonController;
private void lambda$1(android.accessibilityservice.AccessibilityButtonController$AccessibilityButtonCallback, boolean);
descriptor: (Landroid/accessibilityservice/AccessibilityButtonController$AccessibilityButtonCallback;Z)V
flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
start local 0 0: aload 1
aload 0
iload 2
invokevirtual android.accessibilityservice.AccessibilityButtonController$AccessibilityButtonCallback.onAvailabilityChanged:(Landroid/accessibilityservice/AccessibilityButtonController;Z)V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/accessibilityservice/AccessibilityButtonController;
}
SourceFile: "AccessibilityButtonController.java"
NestMembers:
android.accessibilityservice.AccessibilityButtonController$AccessibilityButtonCallback
InnerClasses:
public abstract AccessibilityButtonCallback = android.accessibilityservice.AccessibilityButtonController$AccessibilityButtonCallback of android.accessibilityservice.AccessibilityButtonController
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles