public class com.android.systemui.ForegroundServiceControllerImpl implements com.android.systemui.ForegroundServiceController
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.android.systemui.ForegroundServiceControllerImpl
super_class: java.lang.Object
{
public static final long FG_SERVICE_GRACE_MILLIS;
descriptor: J
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 5000
private static final java.lang.String TAG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "FgServiceController"
private static final boolean DBG;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private final android.content.Context mContext;
descriptor: Landroid/content/Context;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final android.util.SparseArray<com.android.systemui.ForegroundServiceControllerImpl$UserServices> mUserServices;
descriptor: Landroid/util/SparseArray;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Landroid/util/SparseArray<Lcom/android/systemui/ForegroundServiceControllerImpl$UserServices;>;
private final java.lang.Object mMutex;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(android.content.Context);
descriptor: (Landroid/content/Context;)V
flags: (0x0001) ACC_PUBLIC
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
new android.util.SparseArray
dup
invokespecial android.util.SparseArray.<init>:()V
putfield com.android.systemui.ForegroundServiceControllerImpl.mUserServices:Landroid/util/SparseArray;
2: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield com.android.systemui.ForegroundServiceControllerImpl.mMutex:Ljava/lang/Object;
3: aload 0
aload 1
putfield com.android.systemui.ForegroundServiceControllerImpl.mContext:Landroid/content/Context;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/android/systemui/ForegroundServiceControllerImpl;
0 5 1 context Landroid/content/Context;
MethodParameters:
Name Flags
context
public boolean isDungeonNeededForUser(int);
descriptor: (I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.android.systemui.ForegroundServiceControllerImpl.mMutex:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
getfield com.android.systemui.ForegroundServiceControllerImpl.mUserServices:Landroid/util/SparseArray;
iload 1
invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
checkcast com.android.systemui.ForegroundServiceControllerImpl$UserServices
astore 3
start local 3 2: aload 3
ifnonnull 4
aload 2
monitorexit
3: iconst_0
ireturn
4: StackMap locals: java.lang.Object com.android.systemui.ForegroundServiceControllerImpl$UserServices
StackMap stack:
aload 3
invokevirtual com.android.systemui.ForegroundServiceControllerImpl$UserServices.isDungeonNeeded:()Z
aload 2
monitorexit
5: ireturn
end local 3 6: StackMap locals: com.android.systemui.ForegroundServiceControllerImpl int java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
7: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/android/systemui/ForegroundServiceControllerImpl;
0 8 1 userId I
2 6 3 services Lcom/android/systemui/ForegroundServiceControllerImpl$UserServices;
Exception table:
from to target type
1 3 6 any
4 5 6 any
6 7 6 any
MethodParameters:
Name Flags
userId
public boolean isSystemAlertWarningNeeded(int, java.lang.String);
descriptor: (ILjava/lang/String;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.android.systemui.ForegroundServiceControllerImpl.mMutex:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
getfield com.android.systemui.ForegroundServiceControllerImpl.mUserServices:Landroid/util/SparseArray;
iload 1
invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
checkcast com.android.systemui.ForegroundServiceControllerImpl$UserServices
astore 4
start local 4 2: aload 4
ifnonnull 4
aload 3
monitorexit
3: iconst_0
ireturn
4: StackMap locals: java.lang.Object com.android.systemui.ForegroundServiceControllerImpl$UserServices
StackMap stack:
aload 4
aload 2
invokevirtual com.android.systemui.ForegroundServiceControllerImpl$UserServices.getStandardLayoutKey:(Ljava/lang/String;)Ljava/lang/String;
ifnonnull 5
iconst_1
goto 6
StackMap locals:
StackMap stack:
5: iconst_0
StackMap locals:
StackMap stack: int
6: aload 3
monitorexit
7: ireturn
end local 4 8: StackMap locals: com.android.systemui.ForegroundServiceControllerImpl int java.lang.String java.lang.Object
StackMap stack: java.lang.Throwable
aload 3
monitorexit
9: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/android/systemui/ForegroundServiceControllerImpl;
0 10 1 userId I
0 10 2 pkg Ljava/lang/String;
2 8 4 services Lcom/android/systemui/ForegroundServiceControllerImpl$UserServices;
Exception table:
from to target type
1 3 8 any
4 7 8 any
8 9 8 any
MethodParameters:
Name Flags
userId
pkg
public java.lang.String getStandardLayoutKey(int, java.lang.String);
descriptor: (ILjava/lang/String;)Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.android.systemui.ForegroundServiceControllerImpl.mMutex:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
getfield com.android.systemui.ForegroundServiceControllerImpl.mUserServices:Landroid/util/SparseArray;
iload 1
invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
checkcast com.android.systemui.ForegroundServiceControllerImpl$UserServices
astore 4
start local 4 2: aload 4
ifnonnull 4
aload 3
monitorexit
3: aconst_null
areturn
4: StackMap locals: java.lang.Object com.android.systemui.ForegroundServiceControllerImpl$UserServices
StackMap stack:
aload 4
aload 2
invokevirtual com.android.systemui.ForegroundServiceControllerImpl$UserServices.getStandardLayoutKey:(Ljava/lang/String;)Ljava/lang/String;
aload 3
monitorexit
5: areturn
end local 4 6: StackMap locals: com.android.systemui.ForegroundServiceControllerImpl int java.lang.String java.lang.Object
StackMap stack: java.lang.Throwable
aload 3
monitorexit
7: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/android/systemui/ForegroundServiceControllerImpl;
0 8 1 userId I
0 8 2 pkg Ljava/lang/String;
2 6 4 services Lcom/android/systemui/ForegroundServiceControllerImpl$UserServices;
Exception table:
from to target type
1 3 6 any
4 5 6 any
6 7 6 any
MethodParameters:
Name Flags
userId
pkg
public android.util.ArraySet<java.lang.Integer> getAppOps(int, java.lang.String);
descriptor: (ILjava/lang/String;)Landroid/util/ArraySet;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.android.systemui.ForegroundServiceControllerImpl.mMutex:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
getfield com.android.systemui.ForegroundServiceControllerImpl.mUserServices:Landroid/util/SparseArray;
iload 1
invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
checkcast com.android.systemui.ForegroundServiceControllerImpl$UserServices
astore 4
start local 4 2: aload 4
ifnonnull 5
3: aload 3
monitorexit
4: aconst_null
areturn
5: StackMap locals: java.lang.Object com.android.systemui.ForegroundServiceControllerImpl$UserServices
StackMap stack:
aload 4
aload 2
invokevirtual com.android.systemui.ForegroundServiceControllerImpl$UserServices.getFeatures:(Ljava/lang/String;)Landroid/util/ArraySet;
aload 3
monitorexit
6: areturn
end local 4 7: StackMap locals: com.android.systemui.ForegroundServiceControllerImpl int java.lang.String java.lang.Object
StackMap stack: java.lang.Throwable
aload 3
monitorexit
8: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/android/systemui/ForegroundServiceControllerImpl;
0 9 1 userId I
0 9 2 pkg Ljava/lang/String;
2 7 4 services Lcom/android/systemui/ForegroundServiceControllerImpl$UserServices;
Exception table:
from to target type
1 4 7 any
5 6 7 any
7 8 7 any
Signature: (ILjava/lang/String;)Landroid/util/ArraySet<Ljava/lang/Integer;>;
MethodParameters:
Name Flags
userId
pkg
public void onAppOpChanged(int, int, java.lang.String, boolean);
descriptor: (IILjava/lang/String;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 2
invokestatic android.os.UserHandle.getUserId:(I)I
istore 5
start local 5 1: aload 0
getfield com.android.systemui.ForegroundServiceControllerImpl.mMutex:Ljava/lang/Object;
dup
astore 6
monitorenter
2: aload 0
getfield com.android.systemui.ForegroundServiceControllerImpl.mUserServices:Landroid/util/SparseArray;
iload 5
invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
checkcast com.android.systemui.ForegroundServiceControllerImpl$UserServices
astore 7
start local 7 3: aload 7
ifnonnull 6
4: new com.android.systemui.ForegroundServiceControllerImpl$UserServices
dup
invokespecial com.android.systemui.ForegroundServiceControllerImpl$UserServices.<init>:()V
astore 7
5: aload 0
getfield com.android.systemui.ForegroundServiceControllerImpl.mUserServices:Landroid/util/SparseArray;
iload 5
aload 7
invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
6: StackMap locals: int java.lang.Object com.android.systemui.ForegroundServiceControllerImpl$UserServices
StackMap stack:
iload 4
ifeq 9
7: aload 7
aload 3
iload 1
invokevirtual com.android.systemui.ForegroundServiceControllerImpl$UserServices.addOp:(Ljava/lang/String;I)V
8: goto 10
9: StackMap locals:
StackMap stack:
aload 7
aload 3
iload 1
invokevirtual com.android.systemui.ForegroundServiceControllerImpl$UserServices.removeOp:(Ljava/lang/String;I)Z
pop
end local 7 10: StackMap locals:
StackMap stack:
aload 6
monitorexit
11: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
12: aload 6
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/android/systemui/ForegroundServiceControllerImpl;
0 15 1 code I
0 15 2 uid I
0 15 3 packageName Ljava/lang/String;
0 15 4 active Z
1 15 5 userId I
3 10 7 userServices Lcom/android/systemui/ForegroundServiceControllerImpl$UserServices;
Exception table:
from to target type
2 11 12 any
12 13 12 any
MethodParameters:
Name Flags
code
uid
packageName
active
public void addNotification(android.service.notification.StatusBarNotification, int);
descriptor: (Landroid/service/notification/StatusBarNotification;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
iload 2
invokevirtual com.android.systemui.ForegroundServiceControllerImpl.updateNotification:(Landroid/service/notification/StatusBarNotification;I)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/android/systemui/ForegroundServiceControllerImpl;
0 2 1 sbn Landroid/service/notification/StatusBarNotification;
0 2 2 importance I
MethodParameters:
Name Flags
sbn
importance
public boolean removeNotification(android.service.notification.StatusBarNotification);
descriptor: (Landroid/service/notification/StatusBarNotification;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield com.android.systemui.ForegroundServiceControllerImpl.mMutex:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
getfield com.android.systemui.ForegroundServiceControllerImpl.mUserServices:Landroid/util/SparseArray;
aload 1
invokevirtual android.service.notification.StatusBarNotification.getUserId:()I
invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
checkcast com.android.systemui.ForegroundServiceControllerImpl$UserServices
astore 3
start local 3 2: aload 3
ifnonnull 5
3: aload 2
monitorexit
4: iconst_0
ireturn
5: StackMap locals: java.lang.Object com.android.systemui.ForegroundServiceControllerImpl$UserServices
StackMap stack:
aload 0
aload 1
invokevirtual com.android.systemui.ForegroundServiceControllerImpl.isDungeonNotification:(Landroid/service/notification/StatusBarNotification;)Z
ifeq 9
6: aload 3
aconst_null
lconst_0
invokevirtual com.android.systemui.ForegroundServiceControllerImpl$UserServices.setRunningServices:([Ljava/lang/String;J)V
7: aload 2
monitorexit
8: iconst_1
ireturn
9: StackMap locals:
StackMap stack:
aload 3
aload 1
invokevirtual android.service.notification.StatusBarNotification.getPackageName:()Ljava/lang/String;
aload 1
invokevirtual android.service.notification.StatusBarNotification.getKey:()Ljava/lang/String;
invokevirtual com.android.systemui.ForegroundServiceControllerImpl$UserServices.removeNotification:(Ljava/lang/String;Ljava/lang/String;)Z
aload 2
monitorexit
10: ireturn
end local 3 11: StackMap locals: com.android.systemui.ForegroundServiceControllerImpl android.service.notification.StatusBarNotification java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
12: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/android/systemui/ForegroundServiceControllerImpl;
0 13 1 sbn Landroid/service/notification/StatusBarNotification;
2 11 3 userServices Lcom/android/systemui/ForegroundServiceControllerImpl$UserServices;
Exception table:
from to target type
1 4 11 any
5 8 11 any
9 10 11 any
11 12 11 any
MethodParameters:
Name Flags
sbn
public void updateNotification(android.service.notification.StatusBarNotification, int);
descriptor: (Landroid/service/notification/StatusBarNotification;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.android.systemui.ForegroundServiceControllerImpl.mMutex:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
getfield com.android.systemui.ForegroundServiceControllerImpl.mUserServices:Landroid/util/SparseArray;
aload 1
invokevirtual android.service.notification.StatusBarNotification.getUserId:()I
invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
checkcast com.android.systemui.ForegroundServiceControllerImpl$UserServices
astore 4
start local 4 2: aload 4
ifnonnull 5
3: new com.android.systemui.ForegroundServiceControllerImpl$UserServices
dup
invokespecial com.android.systemui.ForegroundServiceControllerImpl$UserServices.<init>:()V
astore 4
4: aload 0
getfield com.android.systemui.ForegroundServiceControllerImpl.mUserServices:Landroid/util/SparseArray;
aload 1
invokevirtual android.service.notification.StatusBarNotification.getUserId:()I
aload 4
invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
5: StackMap locals: java.lang.Object com.android.systemui.ForegroundServiceControllerImpl$UserServices
StackMap stack:
aload 0
aload 1
invokevirtual com.android.systemui.ForegroundServiceControllerImpl.isDungeonNotification:(Landroid/service/notification/StatusBarNotification;)Z
ifeq 11
6: aload 1
invokevirtual android.service.notification.StatusBarNotification.getNotification:()Landroid/app/Notification;
getfield android.app.Notification.extras:Landroid/os/Bundle;
astore 5
start local 5 7: aload 5
ifnull 21
8: aload 5
ldc "android.foregroundApps"
invokevirtual android.os.Bundle.getStringArray:(Ljava/lang/String;)[Ljava/lang/String;
astore 6
start local 6 9: aload 4
aload 6
aload 1
invokevirtual android.service.notification.StatusBarNotification.getNotification:()Landroid/app/Notification;
getfield android.app.Notification.when:J
invokevirtual com.android.systemui.ForegroundServiceControllerImpl$UserServices.setRunningServices:([Ljava/lang/String;J)V
end local 6 end local 5 10: goto 21
11: StackMap locals:
StackMap stack:
aload 4
aload 1
invokevirtual android.service.notification.StatusBarNotification.getPackageName:()Ljava/lang/String;
aload 1
invokevirtual android.service.notification.StatusBarNotification.getKey:()Ljava/lang/String;
invokevirtual com.android.systemui.ForegroundServiceControllerImpl$UserServices.removeNotification:(Ljava/lang/String;Ljava/lang/String;)Z
pop
12: aload 1
invokevirtual android.service.notification.StatusBarNotification.getNotification:()Landroid/app/Notification;
getfield android.app.Notification.flags:I
bipush 64
iand
ifeq 21
13: iload 2
iconst_1
if_icmple 15
14: aload 4
aload 1
invokevirtual android.service.notification.StatusBarNotification.getPackageName:()Ljava/lang/String;
aload 1
invokevirtual android.service.notification.StatusBarNotification.getKey:()Ljava/lang/String;
invokevirtual com.android.systemui.ForegroundServiceControllerImpl$UserServices.addImportantNotification:(Ljava/lang/String;Ljava/lang/String;)V
15: StackMap locals:
StackMap stack:
aload 0
getfield com.android.systemui.ForegroundServiceControllerImpl.mContext:Landroid/content/Context;
aload 1
invokevirtual android.service.notification.StatusBarNotification.getNotification:()Landroid/app/Notification;
16: invokestatic android.app.Notification$Builder.recoverBuilder:(Landroid/content/Context;Landroid/app/Notification;)Landroid/app/Notification$Builder;
astore 5
start local 5 17: aload 5
invokevirtual android.app.Notification$Builder.usesStandardHeader:()Z
ifeq 21
18: aload 4
19: aload 1
invokevirtual android.service.notification.StatusBarNotification.getPackageName:()Ljava/lang/String;
aload 1
invokevirtual android.service.notification.StatusBarNotification.getKey:()Ljava/lang/String;
20: invokevirtual com.android.systemui.ForegroundServiceControllerImpl$UserServices.addStandardLayoutNotification:(Ljava/lang/String;Ljava/lang/String;)V
end local 5 end local 4 21: StackMap locals:
StackMap stack:
aload 3
monitorexit
22: goto 25
StackMap locals:
StackMap stack: java.lang.Throwable
23: aload 3
monitorexit
24: athrow
25: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 26 0 this Lcom/android/systemui/ForegroundServiceControllerImpl;
0 26 1 sbn Landroid/service/notification/StatusBarNotification;
0 26 2 newImportance I
2 21 4 userServices Lcom/android/systemui/ForegroundServiceControllerImpl$UserServices;
7 10 5 extras Landroid/os/Bundle;
9 10 6 svcs [Ljava/lang/String;
17 21 5 builder Landroid/app/Notification$Builder;
Exception table:
from to target type
1 22 23 any
23 24 23 any
MethodParameters:
Name Flags
sbn
newImportance
public boolean isDungeonNotification(android.service.notification.StatusBarNotification);
descriptor: (Landroid/service/notification/StatusBarNotification;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tSystemMessageProto cannot be resolved to a variable\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/android/systemui/ForegroundServiceControllerImpl;
MethodParameters:
Name Flags
sbn
public boolean isSystemAlertNotification(android.service.notification.StatusBarNotification);
descriptor: (Landroid/service/notification/StatusBarNotification;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual android.service.notification.StatusBarNotification.getPackageName:()Ljava/lang/String;
ldc "android"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 4
1: aload 1
invokevirtual android.service.notification.StatusBarNotification.getTag:()Ljava/lang/String;
ifnull 4
2: aload 1
invokevirtual android.service.notification.StatusBarNotification.getTag:()Ljava/lang/String;
ldc "AlertWindowNotification"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
ifeq 4
3: iconst_1
ireturn
StackMap locals:
StackMap stack:
4: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/android/systemui/ForegroundServiceControllerImpl;
0 5 1 sbn Landroid/service/notification/StatusBarNotification;
MethodParameters:
Name Flags
sbn
}
SourceFile: "ForegroundServiceControllerImpl.java"
NestMembers:
com.android.systemui.ForegroundServiceControllerImpl$UserServices
InnerClasses:
public Builder = android.app.Notification$Builder of android.app.Notification
private UserServices = com.android.systemui.ForegroundServiceControllerImpl$UserServices of com.android.systemui.ForegroundServiceControllerImpl