public class android.media.MediaController2 implements java.lang.AutoCloseable
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.media.MediaController2
  super_class: java.lang.Object
{
  private final android.media.update.MediaController2Provider mProvider;
    descriptor: Landroid/media/update/MediaController2Provider;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(android.content.Context, android.media.SessionToken2, java.util.concurrent.Executor, android.media.MediaController2$ControllerCallback);
    descriptor: (Landroid/content/Context;Landroid/media/SessionToken2;Ljava/util/concurrent/Executor;Landroid/media/MediaController2$ControllerCallback;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // android.media.MediaController2 this
        start local 1 // android.content.Context context
        start local 2 // android.media.SessionToken2 token
        start local 3 // java.util.concurrent.Executor executor
        start local 4 // android.media.MediaController2$ControllerCallback callback
         0: .line 350
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 352
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* token */
            aload 3 /* executor */
            aload 4 /* callback */
            invokevirtual android.media.MediaController2.createProvider:(Landroid/content/Context;Landroid/media/SessionToken2;Ljava/util/concurrent/Executor;Landroid/media/MediaController2$ControllerCallback;)Landroid/media/update/MediaController2Provider;
            putfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
         2: .line 358
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            invokeinterface android.media.update.MediaController2Provider.initialize:()V
         3: .line 359
            return
        end local 4 // android.media.MediaController2$ControllerCallback callback
        end local 3 // java.util.concurrent.Executor executor
        end local 2 // android.media.SessionToken2 token
        end local 1 // android.content.Context context
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Landroid/media/MediaController2;
            0    4     1   context  Landroid/content/Context;
            0    4     2     token  Landroid/media/SessionToken2;
            0    4     3  executor  Ljava/util/concurrent/Executor;
            0    4     4  callback  Landroid/media/MediaController2$ControllerCallback;
    MethodParameters:
          Name  Flags
      context   
      token     
      executor  
      callback  

  android.media.update.MediaController2Provider createProvider(android.content.Context, android.media.SessionToken2, java.util.concurrent.Executor, android.media.MediaController2$ControllerCallback);
    descriptor: (Landroid/content/Context;Landroid/media/SessionToken2;Ljava/util/concurrent/Executor;Landroid/media/MediaController2$ControllerCallback;)Landroid/media/update/MediaController2Provider;
    flags: (0x0000) 
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // android.media.MediaController2 this
        start local 1 // android.content.Context context
        start local 2 // android.media.SessionToken2 token
        start local 3 // java.util.concurrent.Executor executor
        start local 4 // android.media.MediaController2$ControllerCallback callback
         0: .line 364
            invokestatic android.media.update.ApiLoader.getProvider:()Landroid/media/update/StaticProvider;
         1: .line 365
            aload 1 /* context */
            aload 0 /* this */
            aload 2 /* token */
            aload 3 /* executor */
            aload 4 /* callback */
         2: .line 364
            invokeinterface android.media.update.StaticProvider.createMediaController2:(Landroid/content/Context;Landroid/media/MediaController2;Landroid/media/SessionToken2;Ljava/util/concurrent/Executor;Landroid/media/MediaController2$ControllerCallback;)Landroid/media/update/MediaController2Provider;
            areturn
        end local 4 // android.media.MediaController2$ControllerCallback callback
        end local 3 // java.util.concurrent.Executor executor
        end local 2 // android.media.SessionToken2 token
        end local 1 // android.content.Context context
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Landroid/media/MediaController2;
            0    3     1   context  Landroid/content/Context;
            0    3     2     token  Landroid/media/SessionToken2;
            0    3     3  executor  Ljava/util/concurrent/Executor;
            0    3     4  callback  Landroid/media/MediaController2$ControllerCallback;
    MethodParameters:
          Name  Flags
      context   
      token     
      executor  
      callback  

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 374
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            invokeinterface android.media.update.MediaController2Provider.close_impl:()V
         1: .line 375
            return
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaController2;

  public android.media.update.MediaController2Provider getProvider();
    descriptor: ()Landroid/media/update/MediaController2Provider;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 381
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            areturn
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaController2;

  public android.media.SessionToken2 getSessionToken();
    descriptor: ()Landroid/media/SessionToken2;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 388
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            invokeinterface android.media.update.MediaController2Provider.getSessionToken_impl:()Landroid/media/SessionToken2;
            areturn
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaController2;

  public boolean isConnected();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 395
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            invokeinterface android.media.update.MediaController2Provider.isConnected_impl:()Z
            ireturn
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaController2;

  public void play();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 399
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            invokeinterface android.media.update.MediaController2Provider.play_impl:()V
         1: .line 400
            return
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaController2;

  public void pause();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 403
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            invokeinterface android.media.update.MediaController2Provider.pause_impl:()V
         1: .line 404
            return
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaController2;

  public void stop();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 407
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            invokeinterface android.media.update.MediaController2Provider.stop_impl:()V
         1: .line 408
            return
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaController2;

  public void prepare();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 418
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            invokeinterface android.media.update.MediaController2Provider.prepare_impl:()V
         1: .line 419
            return
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaController2;

  public void fastForward();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 425
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            invokeinterface android.media.update.MediaController2Provider.fastForward_impl:()V
         1: .line 426
            return
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaController2;

  public void rewind();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 432
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            invokeinterface android.media.update.MediaController2Provider.rewind_impl:()V
         1: .line 433
            return
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaController2;

  public void seekTo(long);
    descriptor: (J)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.media.MediaController2 this
        start local 1 // long pos
         0: .line 441
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            lload 1 /* pos */
            invokeinterface android.media.update.MediaController2Provider.seekTo_impl:(J)V
         1: .line 442
            return
        end local 1 // long pos
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaController2;
            0    2     1   pos  J
    MethodParameters:
      Name  Flags
      pos   

  public void skipForward();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 451
            return
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaController2;

  public void skipBackward();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 459
            return
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaController2;

  public void playFromMediaId(java.lang.String, android.os.Bundle);
    descriptor: (Ljava/lang/String;Landroid/os/Bundle;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.media.MediaController2 this
        start local 1 // java.lang.String mediaId
        start local 2 // android.os.Bundle extras
         0: .line 469
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            aload 1 /* mediaId */
            aload 2 /* extras */
            invokeinterface android.media.update.MediaController2Provider.playFromMediaId_impl:(Ljava/lang/String;Landroid/os/Bundle;)V
         1: .line 470
            return
        end local 2 // android.os.Bundle extras
        end local 1 // java.lang.String mediaId
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/media/MediaController2;
            0    2     1  mediaId  Ljava/lang/String;
            0    2     2   extras  Landroid/os/Bundle;
    MethodParameters:
         Name  Flags
      mediaId  
      extras   

  public void playFromSearch(java.lang.String, android.os.Bundle);
    descriptor: (Ljava/lang/String;Landroid/os/Bundle;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.media.MediaController2 this
        start local 1 // java.lang.String query
        start local 2 // android.os.Bundle extras
         0: .line 479
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            aload 1 /* query */
            aload 2 /* extras */
            invokeinterface android.media.update.MediaController2Provider.playFromSearch_impl:(Ljava/lang/String;Landroid/os/Bundle;)V
         1: .line 480
            return
        end local 2 // android.os.Bundle extras
        end local 1 // java.lang.String query
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Landroid/media/MediaController2;
            0    2     1   query  Ljava/lang/String;
            0    2     2  extras  Landroid/os/Bundle;
    MethodParameters:
        Name  Flags
      query   
      extras  

  public void playFromUri(android.net.Uri, android.os.Bundle);
    descriptor: (Landroid/net/Uri;Landroid/os/Bundle;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.media.MediaController2 this
        start local 1 // android.net.Uri uri
        start local 2 // android.os.Bundle extras
         0: .line 490
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            aload 1 /* uri */
            aload 2 /* extras */
            invokeinterface android.media.update.MediaController2Provider.playFromUri_impl:(Landroid/net/Uri;Landroid/os/Bundle;)V
         1: .line 491
            return
        end local 2 // android.os.Bundle extras
        end local 1 // android.net.Uri uri
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Landroid/media/MediaController2;
            0    2     1     uri  Landroid/net/Uri;
            0    2     2  extras  Landroid/os/Bundle;
    MethodParameters:
        Name  Flags
      uri     
      extras  

  public void prepareFromMediaId(java.lang.String, android.os.Bundle);
    descriptor: (Ljava/lang/String;Landroid/os/Bundle;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.media.MediaController2 this
        start local 1 // java.lang.String mediaId
        start local 2 // android.os.Bundle extras
         0: .line 506
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            aload 1 /* mediaId */
            aload 2 /* extras */
            invokeinterface android.media.update.MediaController2Provider.prepareFromMediaId_impl:(Ljava/lang/String;Landroid/os/Bundle;)V
         1: .line 507
            return
        end local 2 // android.os.Bundle extras
        end local 1 // java.lang.String mediaId
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/media/MediaController2;
            0    2     1  mediaId  Ljava/lang/String;
            0    2     2   extras  Landroid/os/Bundle;
    MethodParameters:
         Name  Flags
      mediaId  
      extras   

  public void prepareFromSearch(java.lang.String, android.os.Bundle);
    descriptor: (Ljava/lang/String;Landroid/os/Bundle;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.media.MediaController2 this
        start local 1 // java.lang.String query
        start local 2 // android.os.Bundle extras
         0: .line 522
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            aload 1 /* query */
            aload 2 /* extras */
            invokeinterface android.media.update.MediaController2Provider.prepareFromSearch_impl:(Ljava/lang/String;Landroid/os/Bundle;)V
         1: .line 523
            return
        end local 2 // android.os.Bundle extras
        end local 1 // java.lang.String query
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Landroid/media/MediaController2;
            0    2     1   query  Ljava/lang/String;
            0    2     2  extras  Landroid/os/Bundle;
    MethodParameters:
        Name  Flags
      query   
      extras  

  public void prepareFromUri(android.net.Uri, android.os.Bundle);
    descriptor: (Landroid/net/Uri;Landroid/os/Bundle;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.media.MediaController2 this
        start local 1 // android.net.Uri uri
        start local 2 // android.os.Bundle extras
         0: .line 538
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            aload 1 /* uri */
            aload 2 /* extras */
            invokeinterface android.media.update.MediaController2Provider.prepareFromUri_impl:(Landroid/net/Uri;Landroid/os/Bundle;)V
         1: .line 539
            return
        end local 2 // android.os.Bundle extras
        end local 1 // android.net.Uri uri
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Landroid/media/MediaController2;
            0    2     1     uri  Landroid/net/Uri;
            0    2     2  extras  Landroid/os/Bundle;
    MethodParameters:
        Name  Flags
      uri     
      extras  

  public void setVolumeTo(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.media.MediaController2 this
        start local 1 // int value
        start local 2 // int flags
         0: .line 557
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            iload 1 /* value */
            iload 2 /* flags */
            invokeinterface android.media.update.MediaController2Provider.setVolumeTo_impl:(II)V
         1: .line 558
            return
        end local 2 // int flags
        end local 1 // int value
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Landroid/media/MediaController2;
            0    2     1  value  I
            0    2     2  flags  I
    MethodParameters:
       Name  Flags
      value  
      flags  

  public void adjustVolume(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.media.MediaController2 this
        start local 1 // int direction
        start local 2 // int flags
         0: .line 580
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            iload 1 /* direction */
            iload 2 /* flags */
            invokeinterface android.media.update.MediaController2Provider.adjustVolume_impl:(II)V
         1: .line 581
            return
        end local 2 // int flags
        end local 1 // int direction
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Landroid/media/MediaController2;
            0    2     1  direction  I
            0    2     2      flags  I
    MethodParameters:
           Name  Flags
      direction  
      flags      

  public android.app.PendingIntent getSessionActivity();
    descriptor: ()Landroid/app/PendingIntent;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 589
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            invokeinterface android.media.update.MediaController2Provider.getSessionActivity_impl:()Landroid/app/PendingIntent;
            areturn
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaController2;

  public int getPlayerState();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 599
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            invokeinterface android.media.update.MediaController2Provider.getPlayerState_impl:()I
            ireturn
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaController2;

  public long getCurrentPosition();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 611
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            invokeinterface android.media.update.MediaController2Provider.getCurrentPosition_impl:()J
            lreturn
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaController2;

  public float getPlaybackSpeed();
    descriptor: ()F
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 621
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            invokeinterface android.media.update.MediaController2Provider.getPlaybackSpeed_impl:()F
            freturn
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaController2;

  public void setPlaybackSpeed(float);
    descriptor: (F)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=2, args_size=2
        start local 0 // android.media.MediaController2 this
        start local 1 // float speed
         0: .line 629
            return
        end local 1 // float speed
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    1     0   this  Landroid/media/MediaController2;
            0    1     1  speed  F
    MethodParameters:
       Name  Flags
      speed  

  public int getBufferingState();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 640
            iconst_0
            ireturn
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaController2;

  public long getBufferedPosition();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 651
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            invokeinterface android.media.update.MediaController2Provider.getBufferedPosition_impl:()J
            lreturn
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaController2;

  public android.media.MediaController2$PlaybackInfo getPlaybackInfo();
    descriptor: ()Landroid/media/MediaController2$PlaybackInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 660
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            invokeinterface android.media.update.MediaController2Provider.getPlaybackInfo_impl:()Landroid/media/MediaController2$PlaybackInfo;
            areturn
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaController2;

  public void setRating(java.lang.String, android.media.Rating2);
    descriptor: (Ljava/lang/String;Landroid/media/Rating2;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.media.MediaController2 this
        start local 1 // java.lang.String mediaId
        start local 2 // android.media.Rating2 rating
         0: .line 676
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            aload 1 /* mediaId */
            aload 2 /* rating */
            invokeinterface android.media.update.MediaController2Provider.setRating_impl:(Ljava/lang/String;Landroid/media/Rating2;)V
         1: .line 677
            return
        end local 2 // android.media.Rating2 rating
        end local 1 // java.lang.String mediaId
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/media/MediaController2;
            0    2     1  mediaId  Ljava/lang/String;
            0    2     2   rating  Landroid/media/Rating2;
    MethodParameters:
         Name  Flags
      mediaId  
      rating   

  public void sendCustomCommand(android.media.SessionCommand2, android.os.Bundle, android.os.ResultReceiver);
    descriptor: (Landroid/media/SessionCommand2;Landroid/os/Bundle;Landroid/os/ResultReceiver;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // android.media.MediaController2 this
        start local 1 // android.media.SessionCommand2 command
        start local 2 // android.os.Bundle args
        start local 3 // android.os.ResultReceiver cb
         0: .line 688
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            aload 1 /* command */
            aload 2 /* args */
            aload 3 /* cb */
            invokeinterface android.media.update.MediaController2Provider.sendCustomCommand_impl:(Landroid/media/SessionCommand2;Landroid/os/Bundle;Landroid/os/ResultReceiver;)V
         1: .line 689
            return
        end local 3 // android.os.ResultReceiver cb
        end local 2 // android.os.Bundle args
        end local 1 // android.media.SessionCommand2 command
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/media/MediaController2;
            0    2     1  command  Landroid/media/SessionCommand2;
            0    2     2     args  Landroid/os/Bundle;
            0    2     3       cb  Landroid/os/ResultReceiver;
    MethodParameters:
         Name  Flags
      command  
      args     
      cb       

  public java.util.List<android.media.MediaItem2> getPlaylist();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 703
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            invokeinterface android.media.update.MediaController2Provider.getPlaylist_impl:()Ljava/util/List;
            areturn
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaController2;
    Signature: ()Ljava/util/List<Landroid/media/MediaItem2;>;

  public void setPlaylist(java.util.List<android.media.MediaItem2>, android.media.MediaMetadata2);
    descriptor: (Ljava/util/List;Landroid/media/MediaMetadata2;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.media.MediaController2 this
        start local 1 // java.util.List list
        start local 2 // android.media.MediaMetadata2 metadata
         0: .line 719
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            aload 1 /* list */
            aload 2 /* metadata */
            invokeinterface android.media.update.MediaController2Provider.setPlaylist_impl:(Ljava/util/List;Landroid/media/MediaMetadata2;)V
         1: .line 720
            return
        end local 2 // android.media.MediaMetadata2 metadata
        end local 1 // java.util.List list
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/media/MediaController2;
            0    2     1      list  Ljava/util/List<Landroid/media/MediaItem2;>;
            0    2     2  metadata  Landroid/media/MediaMetadata2;
    Signature: (Ljava/util/List<Landroid/media/MediaItem2;>;Landroid/media/MediaMetadata2;)V
    MethodParameters:
          Name  Flags
      list      
      metadata  

  public void updatePlaylistMetadata(android.media.MediaMetadata2);
    descriptor: (Landroid/media/MediaMetadata2;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.MediaController2 this
        start local 1 // android.media.MediaMetadata2 metadata
         0: .line 728
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            aload 1 /* metadata */
            invokeinterface android.media.update.MediaController2Provider.updatePlaylistMetadata_impl:(Landroid/media/MediaMetadata2;)V
         1: .line 729
            return
        end local 1 // android.media.MediaMetadata2 metadata
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/media/MediaController2;
            0    2     1  metadata  Landroid/media/MediaMetadata2;
    MethodParameters:
          Name  Flags
      metadata  

  public android.media.MediaMetadata2 getPlaylistMetadata();
    descriptor: ()Landroid/media/MediaMetadata2;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 739
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            invokeinterface android.media.update.MediaController2Provider.getPlaylistMetadata_impl:()Landroid/media/MediaMetadata2;
            areturn
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaController2;

  public void addPlaylistItem(int, android.media.MediaItem2);
    descriptor: (ILandroid/media/MediaItem2;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.media.MediaController2 this
        start local 1 // int index
        start local 2 // android.media.MediaItem2 item
         0: .line 755
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            iload 1 /* index */
            aload 2 /* item */
            invokeinterface android.media.update.MediaController2Provider.addPlaylistItem_impl:(ILandroid/media/MediaItem2;)V
         1: .line 756
            return
        end local 2 // android.media.MediaItem2 item
        end local 1 // int index
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Landroid/media/MediaController2;
            0    2     1  index  I
            0    2     2   item  Landroid/media/MediaItem2;
    MethodParameters:
       Name  Flags
      index  
      item   

  public void removePlaylistItem(android.media.MediaItem2);
    descriptor: (Landroid/media/MediaItem2;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.MediaController2 this
        start local 1 // android.media.MediaItem2 item
         0: .line 767
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            aload 1 /* item */
            invokeinterface android.media.update.MediaController2Provider.removePlaylistItem_impl:(Landroid/media/MediaItem2;)V
         1: .line 768
            return
        end local 1 // android.media.MediaItem2 item
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaController2;
            0    2     1  item  Landroid/media/MediaItem2;
    MethodParameters:
      Name  Flags
      item  

  public void replacePlaylistItem(int, android.media.MediaItem2);
    descriptor: (ILandroid/media/MediaItem2;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.media.MediaController2 this
        start local 1 // int index
        start local 2 // android.media.MediaItem2 item
         0: .line 778
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            iload 1 /* index */
            aload 2 /* item */
            invokeinterface android.media.update.MediaController2Provider.replacePlaylistItem_impl:(ILandroid/media/MediaItem2;)V
         1: .line 779
            return
        end local 2 // android.media.MediaItem2 item
        end local 1 // int index
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Landroid/media/MediaController2;
            0    2     1  index  I
            0    2     2   item  Landroid/media/MediaItem2;
    MethodParameters:
       Name  Flags
      index  
      item   

  public android.media.MediaItem2 getCurrentMediaItem();
    descriptor: ()Landroid/media/MediaItem2;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 788
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            invokeinterface android.media.update.MediaController2Provider.getCurrentMediaItem_impl:()Landroid/media/MediaItem2;
            areturn
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaController2;

  public void skipToPreviousItem();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 797
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            invokeinterface android.media.update.MediaController2Provider.skipToPreviousItem_impl:()V
         1: .line 798
            return
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaController2;

  public void skipToNextItem();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 806
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            invokeinterface android.media.update.MediaController2Provider.skipToNextItem_impl:()V
         1: .line 807
            return
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaController2;

  public void skipToPlaylistItem(android.media.MediaItem2);
    descriptor: (Landroid/media/MediaItem2;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.MediaController2 this
        start local 1 // android.media.MediaItem2 item
         0: .line 817
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            aload 1 /* item */
            invokeinterface android.media.update.MediaController2Provider.skipToPlaylistItem_impl:(Landroid/media/MediaItem2;)V
         1: .line 818
            return
        end local 1 // android.media.MediaItem2 item
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaController2;
            0    2     1  item  Landroid/media/MediaItem2;
    MethodParameters:
      Name  Flags
      item  

  public int getRepeatMode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 831
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            invokeinterface android.media.update.MediaController2Provider.getRepeatMode_impl:()I
            ireturn
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaController2;

  public void setRepeatMode(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.MediaController2 this
        start local 1 // int repeatMode
         0: .line 844
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            iload 1 /* repeatMode */
            invokeinterface android.media.update.MediaController2Provider.setRepeatMode_impl:(I)V
         1: .line 845
            return
        end local 1 // int repeatMode
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Landroid/media/MediaController2;
            0    2     1  repeatMode  I
    MethodParameters:
            Name  Flags
      repeatMode  

  public int getShuffleMode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaController2 this
         0: .line 857
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            invokeinterface android.media.update.MediaController2Provider.getShuffleMode_impl:()I
            ireturn
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaController2;

  public void setShuffleMode(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.MediaController2 this
        start local 1 // int shuffleMode
         0: .line 869
            aload 0 /* this */
            getfield android.media.MediaController2.mProvider:Landroid/media/update/MediaController2Provider;
            iload 1 /* shuffleMode */
            invokeinterface android.media.update.MediaController2Provider.setShuffleMode_impl:(I)V
         1: .line 870
            return
        end local 1 // int shuffleMode
        end local 0 // android.media.MediaController2 this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Landroid/media/MediaController2;
            0    2     1  shuffleMode  I
    MethodParameters:
             Name  Flags
      shuffleMode  
}
SourceFile: "MediaController2.java"
NestMembers:
  android.media.MediaController2$ControllerCallback  android.media.MediaController2$PlaybackInfo
InnerClasses:
  public abstract ControllerCallback = android.media.MediaController2$ControllerCallback of android.media.MediaController2
  public final PlaybackInfo = android.media.MediaController2$PlaybackInfo of android.media.MediaController2