public class com.android.mtp.MtpDocumentsService extends android.app.Service
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.android.mtp.MtpDocumentsService
  super_class: android.app.Service
{
  static final java.lang.String ACTION_UPDATE_NOTIFICATION;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "com.android.mtp.UPDATE_NOTIFICATION"

  static final java.lang.String EXTRA_DEVICE_IDS;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "deviceIds"

  static final java.lang.String EXTRA_DEVICE_NOTIFICATIONS;
    descriptor: Ljava/lang/String;
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: "deviceNotifications"

  private android.app.NotificationManager mNotificationManager;
    descriptor: Landroid/app/NotificationManager;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.android.mtp.MtpDocumentsService this
         0: .line 38
            aload 0 /* this */
            invokespecial android.app.Service.<init>:()V
            return
        end local 0 // com.android.mtp.MtpDocumentsService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/android/mtp/MtpDocumentsService;

  public android.os.IBinder onBind(android.content.Intent);
    descriptor: (Landroid/content/Intent;)Landroid/os/IBinder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.android.mtp.MtpDocumentsService this
        start local 1 // android.content.Intent intent
         0: .line 48
            aconst_null
            areturn
        end local 1 // android.content.Intent intent
        end local 0 // com.android.mtp.MtpDocumentsService this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/android/mtp/MtpDocumentsService;
            0    1     1  intent  Landroid/content/Intent;
    MethodParameters:
        Name  Flags
      intent  

  public void onCreate();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.android.mtp.MtpDocumentsService this
         0: .line 53
            aload 0 /* this */
            invokespecial android.app.Service.onCreate:()V
         1: .line 54
            aload 0 /* this */
            aload 0 /* this */
            ldc Landroid/app/NotificationManager;
            invokevirtual com.android.mtp.MtpDocumentsService.getSystemService:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast android.app.NotificationManager
            putfield com.android.mtp.MtpDocumentsService.mNotificationManager:Landroid/app/NotificationManager;
         2: .line 55
            return
        end local 0 // com.android.mtp.MtpDocumentsService this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/android/mtp/MtpDocumentsService;

  public int onStartCommand(android.content.Intent, int, int);
    descriptor: (Landroid/content/Intent;II)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // com.android.mtp.MtpDocumentsService this
        start local 1 // android.content.Intent intent
        start local 2 // int flags
        start local 3 // int startId
         0: .line 60
            aload 1 /* intent */
            ifnull 1
            ldc "com.android.mtp.UPDATE_NOTIFICATION"
            aload 1 /* intent */
            invokevirtual android.content.Intent.getAction:()Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 15
         1: .line 61
      StackMap locals:
      StackMap stack:
            aload 1 /* intent */
            ldc "deviceIds"
            invokevirtual android.content.Intent.hasExtra:(Ljava/lang/String;)Z
            ifeq 3
         2: .line 62
            aload 1 /* intent */
            invokevirtual android.content.Intent.getExtras:()Landroid/os/Bundle;
            ldc "deviceIds"
            invokevirtual android.os.Bundle.getIntArray:(Ljava/lang/String;)[I
            goto 4
      StackMap locals:
      StackMap stack:
         3: aconst_null
         4: .line 61
      StackMap locals:
      StackMap stack: int[]
            astore 4 /* ids */
        start local 4 // int[] ids
         5: .line 63
            aload 1 /* intent */
            ldc "deviceNotifications"
            invokevirtual android.content.Intent.hasExtra:(Ljava/lang/String;)Z
            ifeq 10
         6: .line 64
            aload 1 /* intent */
            invokevirtual android.content.Intent.getExtras:()Landroid/os/Bundle;
         7: .line 65
            ldc "deviceNotifications"
         8: .line 64
            invokevirtual android.os.Bundle.getParcelableArray:(Ljava/lang/String;)[Landroid/os/Parcelable;
            invokestatic com.android.mtp.MtpDocumentsService.castToNotifications:([Landroid/os/Parcelable;)[Landroid/app/Notification;
         9: .line 65
            goto 11
      StackMap locals: int[]
      StackMap stack:
        10: aconst_null
        11: .line 63
      StackMap locals:
      StackMap stack: android.app.Notification[]
            astore 5 /* notifications */
        start local 5 // android.app.Notification[] notifications
        12: .line 66
            aload 0 /* this */
            aload 4 /* ids */
            aload 5 /* notifications */
            invokevirtual com.android.mtp.MtpDocumentsService.updateForegroundState:([I[Landroid/app/Notification;)Z
            ifeq 13
            iconst_1
            goto 14
      StackMap locals: android.app.Notification[]
      StackMap stack:
        13: iconst_2
      StackMap locals:
      StackMap stack: int
        14: ireturn
        end local 5 // android.app.Notification[] notifications
        end local 4 // int[] ids
        15: .line 68
      StackMap locals:
      StackMap stack:
            iconst_2
            ireturn
        end local 3 // int startId
        end local 2 // int flags
        end local 1 // android.content.Intent intent
        end local 0 // com.android.mtp.MtpDocumentsService this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   16     0           this  Lcom/android/mtp/MtpDocumentsService;
            0   16     1         intent  Landroid/content/Intent;
            0   16     2          flags  I
            0   16     3        startId  I
            5   15     4            ids  [I
           12   15     5  notifications  [Landroid/app/Notification;
    MethodParameters:
         Name  Flags
      intent   
      flags    
      startId  

  private boolean updateForegroundState(int[], android.app.Notification[]);
    descriptor: ([I[Landroid/app/Notification;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // com.android.mtp.MtpDocumentsService this
        start local 1 // int[] ids
        start local 2 // android.app.Notification[] notifications
         0: .line 77
            new java.util.HashSet
            dup
            invokespecial java.util.HashSet.<init>:()V
            astore 3 /* openedNotification */
        start local 3 // java.util.Set openedNotification
         1: .line 78
            aload 1 /* ids */
            ifnull 2
            aload 1 /* ids */
            arraylength
            goto 3
      StackMap locals: java.util.Set
      StackMap stack:
         2: iconst_0
      StackMap locals:
      StackMap stack: int
         3: istore 4 /* size */
        start local 4 // int size
         4: .line 79
            iload 4 /* size */
            ifeq 14
         5: .line 80
            aload 1 /* ids */
            ifnull 6
            iconst_1
            goto 7
      StackMap locals: int
      StackMap stack:
         6: iconst_0
      StackMap locals:
      StackMap stack: int
         7: invokestatic com.android.internal.util.Preconditions.checkArgument:(Z)V
         8: .line 81
            aload 2 /* notifications */
            ifnull 9
            iconst_1
            goto 10
      StackMap locals:
      StackMap stack:
         9: iconst_0
      StackMap locals:
      StackMap stack: int
        10: invokestatic com.android.internal.util.Preconditions.checkArgument:(Z)V
        11: .line 82
            aload 1 /* ids */
            arraylength
            aload 2 /* notifications */
            arraylength
            if_icmpne 12
            iconst_1
            goto 13
      StackMap locals:
      StackMap stack:
        12: iconst_0
      StackMap locals:
      StackMap stack: int
        13: invokestatic com.android.internal.util.Preconditions.checkArgument:(Z)V
        14: .line 85
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 5 /* i */
        start local 5 // int i
        15: goto 22
        16: .line 86
      StackMap locals: int
      StackMap stack:
            iload 5 /* i */
            ifne 19
        17: .line 89
            aload 0 /* this */
            aload 1 /* ids */
            iload 5 /* i */
            iaload
            aload 2 /* notifications */
            iload 5 /* i */
            aaload
            invokevirtual com.android.mtp.MtpDocumentsService.startForeground:(ILandroid/app/Notification;)V
        18: .line 90
            goto 20
        19: .line 93
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.android.mtp.MtpDocumentsService.mNotificationManager:Landroid/app/NotificationManager;
            aload 1 /* ids */
            iload 5 /* i */
            iaload
            aload 2 /* notifications */
            iload 5 /* i */
            aaload
            invokevirtual android.app.NotificationManager.notify:(ILandroid/app/Notification;)V
        20: .line 95
      StackMap locals:
      StackMap stack:
            aload 3 /* openedNotification */
            aload 1 /* ids */
            iload 5 /* i */
            iaload
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
            pop
        21: .line 85
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
        22: iload 5 /* i */
            iload 4 /* size */
            if_icmplt 16
        end local 5 // int i
        23: .line 99
            aload 0 /* this */
            getfield com.android.mtp.MtpDocumentsService.mNotificationManager:Landroid/app/NotificationManager;
            invokevirtual android.app.NotificationManager.getActiveNotifications:()[Landroid/service/notification/StatusBarNotification;
        24: .line 98
            astore 5 /* activeNotifications */
        start local 5 // android.service.notification.StatusBarNotification[] activeNotifications
        25: .line 100
            aload 5 /* activeNotifications */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 30
      StackMap locals: com.android.mtp.MtpDocumentsService int[] android.app.Notification[] java.util.Set int android.service.notification.StatusBarNotification[] top int int android.service.notification.StatusBarNotification[]
      StackMap stack:
        26: aload 9
            iload 7
            aaload
            astore 6 /* notification */
        start local 6 // android.service.notification.StatusBarNotification notification
        27: .line 101
            aload 3 /* openedNotification */
            aload 6 /* notification */
            invokevirtual android.service.notification.StatusBarNotification.getId:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
            ifne 29
        28: .line 102
            aload 0 /* this */
            getfield com.android.mtp.MtpDocumentsService.mNotificationManager:Landroid/app/NotificationManager;
            aload 6 /* notification */
            invokevirtual android.service.notification.StatusBarNotification.getId:()I
            invokevirtual android.app.NotificationManager.cancel:(I)V
        end local 6 // android.service.notification.StatusBarNotification notification
        29: .line 100
      StackMap locals:
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
        30: iload 7
            iload 8
            if_icmplt 26
        31: .line 106
            iload 4 /* size */
            ifne 35
        32: .line 108
            aload 0 /* this */
            iconst_1
            invokevirtual com.android.mtp.MtpDocumentsService.stopForeground:(Z)V
        33: .line 109
            aload 0 /* this */
            invokevirtual com.android.mtp.MtpDocumentsService.stopSelf:()V
        34: .line 110
            iconst_0
            ireturn
        35: .line 113
      StackMap locals: com.android.mtp.MtpDocumentsService int[] android.app.Notification[] java.util.Set int android.service.notification.StatusBarNotification[]
      StackMap stack:
            iconst_1
            ireturn
        end local 5 // android.service.notification.StatusBarNotification[] activeNotifications
        end local 4 // int size
        end local 3 // java.util.Set openedNotification
        end local 2 // android.app.Notification[] notifications
        end local 1 // int[] ids
        end local 0 // com.android.mtp.MtpDocumentsService this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   36     0                 this  Lcom/android/mtp/MtpDocumentsService;
            0   36     1                  ids  [I
            0   36     2        notifications  [Landroid/app/Notification;
            1   36     3   openedNotification  Ljava/util/Set<Ljava/lang/Integer;>;
            4   36     4                 size  I
           15   23     5                    i  I
           25   36     5  activeNotifications  [Landroid/service/notification/StatusBarNotification;
           27   29     6         notification  Landroid/service/notification/StatusBarNotification;
    MethodParameters:
               Name  Flags
      ids            
      notifications  

  private static android.app.Notification[] castToNotifications(android.os.Parcelable[]);
    descriptor: ([Landroid/os/Parcelable;)[Landroid/app/Notification;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // android.os.Parcelable[] src
         0: .line 117
            aload 0 /* src */
            invokestatic com.android.internal.util.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 118
            aload 0 /* src */
            arraylength
            anewarray android.app.Notification
            astore 1 /* notifications */
        start local 1 // android.app.Notification[] notifications
         2: .line 119
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         3: goto 6
         4: .line 120
      StackMap locals: android.app.Notification[] int
      StackMap stack:
            aload 1 /* notifications */
            iload 2 /* i */
            aload 0 /* src */
            iload 2 /* i */
            aaload
            checkcast android.app.Notification
            aastore
         5: .line 119
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 0 /* src */
            arraylength
            if_icmplt 4
        end local 2 // int i
         7: .line 122
            aload 1 /* notifications */
            areturn
        end local 1 // android.app.Notification[] notifications
        end local 0 // android.os.Parcelable[] src
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0            src  [Landroid/os/Parcelable;
            2    8     1  notifications  [Landroid/app/Notification;
            3    7     2              i  I
    MethodParameters:
      Name  Flags
      src   
}
SourceFile: "MtpDocumentsService.java"