public class android.media.RingtoneManager
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.media.RingtoneManager
  super_class: java.lang.Object
{
  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "RingtoneManager"

  public static final int TYPE_RINGTONE;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int TYPE_NOTIFICATION;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int TYPE_ALARM;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int TYPE_ALL;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  public static final java.lang.String ACTION_RINGTONE_PICKER;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.intent.action.RINGTONE_PICKER"

  public static final java.lang.String EXTRA_RINGTONE_SHOW_DEFAULT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.intent.extra.ringtone.SHOW_DEFAULT"

  public static final java.lang.String EXTRA_RINGTONE_SHOW_SILENT;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.intent.extra.ringtone.SHOW_SILENT"

  public static final java.lang.String EXTRA_RINGTONE_INCLUDE_DRM;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.intent.extra.ringtone.INCLUDE_DRM"
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public static final java.lang.String EXTRA_RINGTONE_EXISTING_URI;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.intent.extra.ringtone.EXISTING_URI"

  public static final java.lang.String EXTRA_RINGTONE_DEFAULT_URI;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.intent.extra.ringtone.DEFAULT_URI"

  public static final java.lang.String EXTRA_RINGTONE_TYPE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.intent.extra.ringtone.TYPE"

  public static final java.lang.String EXTRA_RINGTONE_TITLE;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.intent.extra.ringtone.TITLE"

  public static final java.lang.String EXTRA_RINGTONE_AUDIO_ATTRIBUTES_FLAGS;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.intent.extra.ringtone.AUDIO_ATTRIBUTES_FLAGS"

  public static final java.lang.String EXTRA_RINGTONE_PICKED_URI;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "android.intent.extra.ringtone.PICKED_URI"

  private static final java.lang.String[] INTERNAL_COLUMNS;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final java.lang.String[] MEDIA_COLUMNS;
    descriptor: [Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  public static final int ID_COLUMN_INDEX;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  public static final int TITLE_COLUMN_INDEX;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int URI_COLUMN_INDEX;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  private final android.app.Activity mActivity;
    descriptor: Landroid/app/Activity;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final android.content.Context mContext;
    descriptor: Landroid/content/Context;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private android.database.Cursor mCursor;
    descriptor: Landroid/database/Cursor;
    flags: (0x0002) ACC_PRIVATE

  private int mType;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private final java.util.List<java.lang.String> mFilterColumns;
    descriptor: Ljava/util/List;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/List<Ljava/lang/String;>;

  private boolean mStopPreviousRingtone;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private android.media.Ringtone mPreviousRingtone;
    descriptor: Landroid/media/Ringtone;
    flags: (0x0002) ACC_PRIVATE

  private boolean mIncludeParentRingtones;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=0, args_size=0
         0: .line 214
            iconst_4
            anewarray java.lang.String
            dup
            iconst_0
         1: .line 215
            ldc "_id"
            aastore
            dup
            iconst_1
            ldc "title"
            aastore
            dup
            iconst_2
         2: .line 216
            new java.lang.StringBuilder
            dup
            ldc "\""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic android.provider.MediaStore$Audio$Media.INTERNAL_CONTENT_URI:Landroid/net/Uri;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
            dup
            iconst_3
         3: .line 217
            ldc "title_key"
            aastore
         4: .line 214
            putstatic android.media.RingtoneManager.INTERNAL_COLUMNS:[Ljava/lang/String;
         5: .line 220
            iconst_4
            anewarray java.lang.String
            dup
            iconst_0
         6: .line 221
            ldc "_id"
            aastore
            dup
            iconst_1
            ldc "title"
            aastore
            dup
            iconst_2
         7: .line 222
            new java.lang.StringBuilder
            dup
            ldc "\""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            getstatic android.provider.MediaStore$Audio$Media.EXTERNAL_CONTENT_URI:Landroid/net/Uri;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aastore
            dup
            iconst_3
         8: .line 223
            ldc "title_key"
            aastore
         9: .line 220
            putstatic android.media.RingtoneManager.MEDIA_COLUMNS:[Ljava/lang/String;
        10: .line 242
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(android.app.Activity);
    descriptor: (Landroid/app/Activity;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.RingtoneManager this
        start local 1 // android.app.Activity activity
         0: .line 269
            aload 0 /* this */
            aload 1 /* activity */
            iconst_0
            invokespecial android.media.RingtoneManager.<init>:(Landroid/app/Activity;Z)V
         1: .line 270
            return
        end local 1 // android.app.Activity activity
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/media/RingtoneManager;
            0    2     1  activity  Landroid/app/Activity;
    MethodParameters:
          Name  Flags
      activity  

  public void <init>(android.app.Activity, boolean);
    descriptor: (Landroid/app/Activity;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.media.RingtoneManager this
        start local 1 // android.app.Activity activity
        start local 2 // boolean includeParentRingtones
         0: .line 282
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 249
            aload 0 /* this */
            iconst_1
            putfield android.media.RingtoneManager.mType:I
         2: .line 255
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield android.media.RingtoneManager.mFilterColumns:Ljava/util/List;
         3: .line 257
            aload 0 /* this */
            iconst_1
            putfield android.media.RingtoneManager.mStopPreviousRingtone:Z
         4: .line 283
            aload 0 /* this */
            aload 1 /* activity */
            putfield android.media.RingtoneManager.mActivity:Landroid/app/Activity;
         5: .line 284
            aload 0 /* this */
            aload 1 /* activity */
            putfield android.media.RingtoneManager.mContext:Landroid/content/Context;
         6: .line 285
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.RingtoneManager.mType:I
            invokevirtual android.media.RingtoneManager.setType:(I)V
         7: .line 286
            aload 0 /* this */
            iload 2 /* includeParentRingtones */
            putfield android.media.RingtoneManager.mIncludeParentRingtones:Z
         8: .line 287
            return
        end local 2 // boolean includeParentRingtones
        end local 1 // android.app.Activity activity
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    9     0                    this  Landroid/media/RingtoneManager;
            0    9     1                activity  Landroid/app/Activity;
            0    9     2  includeParentRingtones  Z
    MethodParameters:
                        Name  Flags
      activity                
      includeParentRingtones  

  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 // android.media.RingtoneManager this
        start local 1 // android.content.Context context
         0: .line 297
            aload 0 /* this */
            aload 1 /* context */
            iconst_0
            invokespecial android.media.RingtoneManager.<init>:(Landroid/content/Context;Z)V
         1: .line 298
            return
        end local 1 // android.content.Context context
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/media/RingtoneManager;
            0    2     1  context  Landroid/content/Context;
    MethodParameters:
         Name  Flags
      context  

  public void <init>(android.content.Context, boolean);
    descriptor: (Landroid/content/Context;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.media.RingtoneManager this
        start local 1 // android.content.Context context
        start local 2 // boolean includeParentRingtones
         0: .line 309
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 249
            aload 0 /* this */
            iconst_1
            putfield android.media.RingtoneManager.mType:I
         2: .line 255
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield android.media.RingtoneManager.mFilterColumns:Ljava/util/List;
         3: .line 257
            aload 0 /* this */
            iconst_1
            putfield android.media.RingtoneManager.mStopPreviousRingtone:Z
         4: .line 310
            aload 0 /* this */
            aconst_null
            putfield android.media.RingtoneManager.mActivity:Landroid/app/Activity;
         5: .line 311
            aload 0 /* this */
            aload 1 /* context */
            putfield android.media.RingtoneManager.mContext:Landroid/content/Context;
         6: .line 312
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.RingtoneManager.mType:I
            invokevirtual android.media.RingtoneManager.setType:(I)V
         7: .line 313
            aload 0 /* this */
            iload 2 /* includeParentRingtones */
            putfield android.media.RingtoneManager.mIncludeParentRingtones:Z
         8: .line 314
            return
        end local 2 // boolean includeParentRingtones
        end local 1 // android.content.Context context
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot                    Name  Signature
            0    9     0                    this  Landroid/media/RingtoneManager;
            0    9     1                 context  Landroid/content/Context;
            0    9     2  includeParentRingtones  Z
    MethodParameters:
                        Name  Flags
      context                 
      includeParentRingtones  

  public void setType(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.RingtoneManager this
        start local 1 // int type
         0: .line 325
            aload 0 /* this */
            getfield android.media.RingtoneManager.mCursor:Landroid/database/Cursor;
            ifnull 4
         1: .line 326
            new java.lang.IllegalStateException
            dup
         2: .line 327
            ldc "Setting filter columns should be done before querying for ringtones."
         3: .line 326
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 330
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* type */
            putfield android.media.RingtoneManager.mType:I
         5: .line 331
            aload 0 /* this */
            iload 1 /* type */
            invokevirtual android.media.RingtoneManager.setFilterColumnsList:(I)V
         6: .line 332
            return
        end local 1 // int type
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/media/RingtoneManager;
            0    7     1  type  I
    MethodParameters:
      Name  Flags
      type  

  public int inferStreamType();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.RingtoneManager this
         0: .line 341
            aload 0 /* this */
            getfield android.media.RingtoneManager.mType:I
            tableswitch { // 2 - 4
                    2: 2
                    3: 3
                    4: 1
              default: 3
          }
         1: .line 344
      StackMap locals:
      StackMap stack:
            iconst_4
            ireturn
         2: .line 347
      StackMap locals:
      StackMap stack:
            iconst_5
            ireturn
         3: .line 350
      StackMap locals:
      StackMap stack:
            iconst_2
            ireturn
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/media/RingtoneManager;

  public void setStopPreviousRingtone(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.RingtoneManager this
        start local 1 // boolean stopPreviousRingtone
         0: .line 365
            aload 0 /* this */
            iload 1 /* stopPreviousRingtone */
            putfield android.media.RingtoneManager.mStopPreviousRingtone:Z
         1: .line 366
            return
        end local 1 // boolean stopPreviousRingtone
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    2     0                  this  Landroid/media/RingtoneManager;
            0    2     1  stopPreviousRingtone  Z
    MethodParameters:
                      Name  Flags
      stopPreviousRingtone  

  public boolean getStopPreviousRingtone();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.RingtoneManager this
         0: .line 372
            aload 0 /* this */
            getfield android.media.RingtoneManager.mStopPreviousRingtone:Z
            ireturn
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/RingtoneManager;

  public void stopPreviousRingtone();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.RingtoneManager this
         0: .line 379
            aload 0 /* this */
            getfield android.media.RingtoneManager.mPreviousRingtone:Landroid/media/Ringtone;
            ifnull 2
         1: .line 380
            aload 0 /* this */
            getfield android.media.RingtoneManager.mPreviousRingtone:Landroid/media/Ringtone;
            invokevirtual android.media.Ringtone.stop:()V
         2: .line 382
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/media/RingtoneManager;

  public boolean getIncludeDrm();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.RingtoneManager this
         0: .line 394
            iconst_0
            ireturn
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/RingtoneManager;
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()

  public void setIncludeDrm(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.RingtoneManager this
        start local 1 // boolean includeDrm
         0: .line 406
            iload 1 /* includeDrm */
            ifeq 2
         1: .line 407
            ldc "RingtoneManager"
            ldc "setIncludeDrm no longer supported"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         2: .line 409
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean includeDrm
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Landroid/media/RingtoneManager;
            0    3     1  includeDrm  Z
    RuntimeVisibleAnnotations: 
      java.lang.Deprecated()
    MethodParameters:
            Name  Flags
      includeDrm  

  public android.database.Cursor getCursor();
    descriptor: ()Landroid/database/Cursor;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=1
        start local 0 // android.media.RingtoneManager this
         0: .line 430
            aload 0 /* this */
            getfield android.media.RingtoneManager.mCursor:Landroid/database/Cursor;
            ifnull 2
            aload 0 /* this */
            getfield android.media.RingtoneManager.mCursor:Landroid/database/Cursor;
            invokeinterface android.database.Cursor.requery:()Z
            ifeq 2
         1: .line 431
            aload 0 /* this */
            getfield android.media.RingtoneManager.mCursor:Landroid/database/Cursor;
            areturn
         2: .line 434
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 1 /* ringtoneCursors */
        start local 1 // java.util.ArrayList ringtoneCursors
         3: .line 435
            aload 1 /* ringtoneCursors */
            aload 0 /* this */
            invokevirtual android.media.RingtoneManager.getInternalRingtones:()Landroid/database/Cursor;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         4: .line 436
            aload 1 /* ringtoneCursors */
            aload 0 /* this */
            invokevirtual android.media.RingtoneManager.getMediaRingtones:()Landroid/database/Cursor;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
         5: .line 438
            aload 0 /* this */
            getfield android.media.RingtoneManager.mIncludeParentRingtones:Z
            ifeq 9
         6: .line 439
            aload 0 /* this */
            invokevirtual android.media.RingtoneManager.getParentProfileRingtones:()Landroid/database/Cursor;
            astore 2 /* parentRingtonesCursor */
        start local 2 // android.database.Cursor parentRingtonesCursor
         7: .line 440
            aload 2 /* parentRingtonesCursor */
            ifnull 9
         8: .line 441
            aload 1 /* ringtoneCursors */
            aload 2 /* parentRingtonesCursor */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 2 // android.database.Cursor parentRingtonesCursor
         9: .line 445
      StackMap locals: java.util.ArrayList
      StackMap stack:
            aload 0 /* this */
            new com.android.internal.database.SortCursor
            dup
            aload 1 /* ringtoneCursors */
            aload 1 /* ringtoneCursors */
            invokevirtual java.util.ArrayList.size:()I
            anewarray android.database.Cursor
            invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
            checkcast android.database.Cursor[]
        10: .line 446
            ldc "title_key"
            invokespecial com.android.internal.database.SortCursor.<init>:([Landroid/database/Cursor;Ljava/lang/String;)V
        11: .line 445
            dup_x1
            putfield android.media.RingtoneManager.mCursor:Landroid/database/Cursor;
            areturn
        end local 1 // java.util.ArrayList ringtoneCursors
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   12     0                   this  Landroid/media/RingtoneManager;
            3   12     1        ringtoneCursors  Ljava/util/ArrayList<Landroid/database/Cursor;>;
            7    9     2  parentRingtonesCursor  Landroid/database/Cursor;

  private android.database.Cursor getParentProfileRingtones();
    descriptor: ()Landroid/database/Cursor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // android.media.RingtoneManager this
         0: .line 450
            aload 0 /* this */
            getfield android.media.RingtoneManager.mContext:Landroid/content/Context;
            invokestatic android.os.UserManager.get:(Landroid/content/Context;)Landroid/os/UserManager;
            astore 1 /* um */
        start local 1 // android.os.UserManager um
         1: .line 451
            aload 1 /* um */
            aload 0 /* this */
            getfield android.media.RingtoneManager.mContext:Landroid/content/Context;
            invokevirtual android.content.Context.getUserId:()I
            invokevirtual android.os.UserManager.getProfileParent:(I)Landroid/content/pm/UserInfo;
            astore 2 /* parentInfo */
        start local 2 // android.content.pm.UserInfo parentInfo
         2: .line 452
            aload 2 /* parentInfo */
            ifnull 8
            aload 2 /* parentInfo */
            getfield android.content.pm.UserInfo.id:I
            aload 0 /* this */
            getfield android.media.RingtoneManager.mContext:Landroid/content/Context;
            invokevirtual android.content.Context.getUserId:()I
            if_icmpeq 8
         3: .line 453
            aload 0 /* this */
            getfield android.media.RingtoneManager.mContext:Landroid/content/Context;
            aload 2 /* parentInfo */
            getfield android.content.pm.UserInfo.id:I
            invokestatic android.media.RingtoneManager.createPackageContextAsUser:(Landroid/content/Context;I)Landroid/content/Context;
            astore 3 /* parentContext */
        start local 3 // android.content.Context parentContext
         4: .line 454
            aload 3 /* parentContext */
            ifnull 8
         5: .line 458
            new android.media.ExternalRingtonesCursorWrapper
            dup
            aload 0 /* this */
            aload 3 /* parentContext */
            invokevirtual android.media.RingtoneManager.getMediaRingtones:(Landroid/content/Context;)Landroid/database/Cursor;
         6: .line 459
            aload 2 /* parentInfo */
            getfield android.content.pm.UserInfo.id:I
         7: .line 458
            invokespecial android.media.ExternalRingtonesCursorWrapper.<init>:(Landroid/database/Cursor;I)V
            areturn
        end local 3 // android.content.Context parentContext
         8: .line 462
      StackMap locals: android.os.UserManager android.content.pm.UserInfo
      StackMap stack:
            aconst_null
            areturn
        end local 2 // android.content.pm.UserInfo parentInfo
        end local 1 // android.os.UserManager um
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0           this  Landroid/media/RingtoneManager;
            1    9     1             um  Landroid/os/UserManager;
            2    9     2     parentInfo  Landroid/content/pm/UserInfo;
            4    8     3  parentContext  Landroid/content/Context;

  public android.media.Ringtone getRingtone(int);
    descriptor: (I)Landroid/media/Ringtone;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.media.RingtoneManager this
        start local 1 // int position
         0: .line 473
            aload 0 /* this */
            getfield android.media.RingtoneManager.mStopPreviousRingtone:Z
            ifeq 2
            aload 0 /* this */
            getfield android.media.RingtoneManager.mPreviousRingtone:Landroid/media/Ringtone;
            ifnull 2
         1: .line 474
            aload 0 /* this */
            getfield android.media.RingtoneManager.mPreviousRingtone:Landroid/media/Ringtone;
            invokevirtual android.media.Ringtone.stop:()V
         2: .line 477
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.RingtoneManager.mContext:Landroid/content/Context;
            aload 0 /* this */
            iload 1 /* position */
            invokevirtual android.media.RingtoneManager.getRingtoneUri:(I)Landroid/net/Uri;
            aload 0 /* this */
            invokevirtual android.media.RingtoneManager.inferStreamType:()I
            invokestatic android.media.RingtoneManager.getRingtone:(Landroid/content/Context;Landroid/net/Uri;I)Landroid/media/Ringtone;
            putfield android.media.RingtoneManager.mPreviousRingtone:Landroid/media/Ringtone;
         3: .line 478
            aload 0 /* this */
            getfield android.media.RingtoneManager.mPreviousRingtone:Landroid/media/Ringtone;
            areturn
        end local 1 // int position
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0      this  Landroid/media/RingtoneManager;
            0    4     1  position  I
    MethodParameters:
          Name  Flags
      position  

  public android.net.Uri getRingtoneUri(int);
    descriptor: (I)Landroid/net/Uri;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.RingtoneManager this
        start local 1 // int position
         0: .line 490
            aload 0 /* this */
            getfield android.media.RingtoneManager.mCursor:Landroid/database/Cursor;
            ifnull 1
            aload 0 /* this */
            getfield android.media.RingtoneManager.mCursor:Landroid/database/Cursor;
            iload 1 /* position */
            invokeinterface android.database.Cursor.moveToPosition:(I)Z
            ifne 2
         1: .line 491
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         2: .line 494
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.RingtoneManager.mCursor:Landroid/database/Cursor;
            invokestatic android.media.RingtoneManager.getUriFromCursor:(Landroid/database/Cursor;)Landroid/net/Uri;
            areturn
        end local 1 // int position
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Landroid/media/RingtoneManager;
            0    3     1  position  I
    MethodParameters:
          Name  Flags
      position  

  private static android.net.Uri getExistingRingtoneUriFromPath(android.content.Context, java.lang.String);
    descriptor: (Landroid/content/Context;Ljava/lang/String;)Landroid/net/Uri;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=2
        start local 0 // android.content.Context context
        start local 1 // java.lang.String path
         0: .line 509
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "_id"
            aastore
            astore 2 /* proj */
        start local 2 // java.lang.String[] proj
         1: .line 510
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            aload 1 /* path */
            aastore
            astore 3 /* selectionArgs */
        start local 3 // java.lang.String[] selectionArgs
         2: .line 511
            aconst_null
            astore 4
            aconst_null
            astore 5
         3: aload 0 /* context */
            invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
         4: .line 512
            getstatic android.provider.MediaStore$Audio$Media.EXTERNAL_CONTENT_URI:Landroid/net/Uri;
            aload 2 /* proj */
         5: .line 513
            ldc "_data=? "
            aload 3 /* selectionArgs */
            aconst_null
         6: .line 511
            invokevirtual android.content.ContentResolver.query:(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
            astore 6 /* cursor */
        start local 6 // android.database.Cursor cursor
         7: .line 514
            aload 6 /* cursor */
            ifnull 8
            aload 6 /* cursor */
            invokeinterface android.database.Cursor.moveToFirst:()Z
            ifne 10
         8: .line 522
      StackMap locals: android.content.Context java.lang.String java.lang.String[] java.lang.String[] java.lang.Throwable java.lang.Throwable android.database.Cursor
      StackMap stack:
            aload 6 /* cursor */
            ifnull 9
            aload 6 /* cursor */
            invokeinterface android.database.Cursor.close:()V
         9: .line 515
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        10: .line 517
      StackMap locals:
      StackMap stack:
            aload 6 /* cursor */
            aload 6 /* cursor */
            ldc "_id"
            invokeinterface android.database.Cursor.getColumnIndex:(Ljava/lang/String;)I
            invokeinterface android.database.Cursor.getInt:(I)I
            istore 7 /* id */
        start local 7 // int id
        11: .line 518
            iload 7 /* id */
            iconst_m1
            if_icmpne 14
        12: .line 522
            aload 6 /* cursor */
            ifnull 13
            aload 6 /* cursor */
            invokeinterface android.database.Cursor.close:()V
        13: .line 519
      StackMap locals: int
      StackMap stack:
            aconst_null
            areturn
        14: .line 521
      StackMap locals:
      StackMap stack:
            getstatic android.provider.MediaStore$Audio$Media.EXTERNAL_CONTENT_URI:Landroid/net/Uri;
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            iload 7 /* id */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.net.Uri.withAppendedPath:(Landroid/net/Uri;Ljava/lang/String;)Landroid/net/Uri;
        15: .line 522
            aload 6 /* cursor */
            ifnull 16
            aload 6 /* cursor */
            invokeinterface android.database.Cursor.close:()V
        16: .line 521
      StackMap locals:
      StackMap stack: android.net.Uri
            areturn
        end local 7 // int id
      StackMap locals: android.content.Context java.lang.String java.lang.String[] java.lang.String[] java.lang.Throwable java.lang.Throwable android.database.Cursor
      StackMap stack: java.lang.Throwable
        17: astore 4
        18: .line 522
            aload 6 /* cursor */
            ifnull 19
            aload 6 /* cursor */
            invokeinterface android.database.Cursor.close:()V
        end local 6 // android.database.Cursor cursor
      StackMap locals:
      StackMap stack:
        19: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: astore 5
            aload 4
            ifnonnull 21
            aload 5
            astore 4
            goto 22
      StackMap locals:
      StackMap stack:
        21: aload 4
            aload 5
            if_acmpeq 22
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        22: aload 4
            athrow
        end local 3 // java.lang.String[] selectionArgs
        end local 2 // java.lang.String[] proj
        end local 1 // java.lang.String path
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   23     0        context  Landroid/content/Context;
            0   23     1           path  Ljava/lang/String;
            1   23     2           proj  [Ljava/lang/String;
            2   23     3  selectionArgs  [Ljava/lang/String;
            7   19     6         cursor  Landroid/database/Cursor;
           11   17     7             id  I
      Exception table:
        from    to  target  type
           7     8      17  any
          10    12      17  any
          14    15      17  any
           3     9      20  any
          10    13      20  any
          14    16      20  any
          17    20      20  any
    MethodParameters:
         Name  Flags
      context  
      path     

  private static android.net.Uri getUriFromCursor(android.database.Cursor);
    descriptor: (Landroid/database/Cursor;)Landroid/net/Uri;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.database.Cursor cursor
         0: .line 526
            aload 0 /* cursor */
            iconst_2
            invokeinterface android.database.Cursor.getString:(I)Ljava/lang/String;
            invokestatic android.net.Uri.parse:(Ljava/lang/String;)Landroid/net/Uri;
            aload 0 /* cursor */
         1: .line 527
            iconst_0
            invokeinterface android.database.Cursor.getLong:(I)J
         2: .line 526
            invokestatic android.content.ContentUris.withAppendedId:(Landroid/net/Uri;J)Landroid/net/Uri;
            areturn
        end local 0 // android.database.Cursor cursor
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0  cursor  Landroid/database/Cursor;
    MethodParameters:
        Name  Flags
      cursor  

  public int getRingtonePosition(android.net.Uri);
    descriptor: (Landroid/net/Uri;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // android.media.RingtoneManager this
        start local 1 // android.net.Uri ringtoneUri
         0: .line 538
            aload 1 /* ringtoneUri */
            ifnonnull 1
            iconst_m1
            ireturn
         1: .line 540
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.media.RingtoneManager.getCursor:()Landroid/database/Cursor;
            astore 2 /* cursor */
        start local 2 // android.database.Cursor cursor
         2: .line 541
            aload 2 /* cursor */
            invokeinterface android.database.Cursor.getCount:()I
            istore 3 /* cursorCount */
        start local 3 // int cursorCount
         3: .line 543
            aload 2 /* cursor */
            invokeinterface android.database.Cursor.moveToFirst:()Z
            ifne 5
         4: .line 544
            iconst_m1
            ireturn
         5: .line 548
      StackMap locals: android.database.Cursor int
      StackMap stack:
            aconst_null
            astore 4 /* currentUri */
        start local 4 // android.net.Uri currentUri
         6: .line 549
            aconst_null
            astore 5 /* previousUriString */
        start local 5 // java.lang.String previousUriString
         7: .line 550
            iconst_0
            istore 6 /* i */
        start local 6 // int i
         8: goto 20
         9: .line 551
      StackMap locals: android.net.Uri java.lang.String int
      StackMap stack:
            aload 2 /* cursor */
            iconst_2
            invokeinterface android.database.Cursor.getString:(I)Ljava/lang/String;
            astore 7 /* uriString */
        start local 7 // java.lang.String uriString
        10: .line 552
            aload 4 /* currentUri */
            ifnull 11
            aload 7 /* uriString */
            aload 5 /* previousUriString */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 12
        11: .line 553
      StackMap locals: java.lang.String
      StackMap stack:
            aload 7 /* uriString */
            invokestatic android.net.Uri.parse:(Ljava/lang/String;)Landroid/net/Uri;
            astore 4 /* currentUri */
        12: .line 556
      StackMap locals:
      StackMap stack:
            aload 1 /* ringtoneUri */
            aload 4 /* currentUri */
            aload 2 /* cursor */
        13: .line 557
            iconst_0
            invokeinterface android.database.Cursor.getLong:(I)J
        14: .line 556
            invokestatic android.content.ContentUris.withAppendedId:(Landroid/net/Uri;J)Landroid/net/Uri;
            invokevirtual android.net.Uri.equals:(Ljava/lang/Object;)Z
        15: .line 557
            ifeq 17
        16: .line 558
            iload 6 /* i */
            ireturn
        17: .line 561
      StackMap locals:
      StackMap stack:
            aload 2 /* cursor */
            iconst_1
            invokeinterface android.database.Cursor.move:(I)Z
            pop
        18: .line 563
            aload 7 /* uriString */
            astore 5 /* previousUriString */
        end local 7 // java.lang.String uriString
        19: .line 550
            iinc 6 /* i */ 1
      StackMap locals:
      StackMap stack:
        20: iload 6 /* i */
            iload 3 /* cursorCount */
            if_icmplt 9
        end local 6 // int i
        21: .line 566
            iconst_m1
            ireturn
        end local 5 // java.lang.String previousUriString
        end local 4 // android.net.Uri currentUri
        end local 3 // int cursorCount
        end local 2 // android.database.Cursor cursor
        end local 1 // android.net.Uri ringtoneUri
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   22     0               this  Landroid/media/RingtoneManager;
            0   22     1        ringtoneUri  Landroid/net/Uri;
            2   22     2             cursor  Landroid/database/Cursor;
            3   22     3        cursorCount  I
            6   22     4         currentUri  Landroid/net/Uri;
            7   22     5  previousUriString  Ljava/lang/String;
            8   21     6                  i  I
           10   19     7          uriString  Ljava/lang/String;
    MethodParameters:
             Name  Flags
      ringtoneUri  

  public static android.net.Uri getValidRingtoneUri(android.content.Context);
    descriptor: (Landroid/content/Context;)Landroid/net/Uri;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // android.content.Context context
         0: .line 579
            new android.media.RingtoneManager
            dup
            aload 0 /* context */
            invokespecial android.media.RingtoneManager.<init>:(Landroid/content/Context;)V
            astore 1 /* rm */
        start local 1 // android.media.RingtoneManager rm
         1: .line 581
            aload 0 /* context */
            aload 1 /* rm */
            invokevirtual android.media.RingtoneManager.getInternalRingtones:()Landroid/database/Cursor;
            invokestatic android.media.RingtoneManager.getValidRingtoneUriFromCursorAndClose:(Landroid/content/Context;Landroid/database/Cursor;)Landroid/net/Uri;
            astore 2 /* uri */
        start local 2 // android.net.Uri uri
         2: .line 583
            aload 2 /* uri */
            ifnonnull 4
         3: .line 584
            aload 0 /* context */
            aload 1 /* rm */
            invokevirtual android.media.RingtoneManager.getMediaRingtones:()Landroid/database/Cursor;
            invokestatic android.media.RingtoneManager.getValidRingtoneUriFromCursorAndClose:(Landroid/content/Context;Landroid/database/Cursor;)Landroid/net/Uri;
            astore 2 /* uri */
         4: .line 587
      StackMap locals: android.media.RingtoneManager android.net.Uri
      StackMap stack:
            aload 2 /* uri */
            areturn
        end local 2 // android.net.Uri uri
        end local 1 // android.media.RingtoneManager rm
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0  context  Landroid/content/Context;
            1    5     1       rm  Landroid/media/RingtoneManager;
            2    5     2      uri  Landroid/net/Uri;
    MethodParameters:
         Name  Flags
      context  

  private static android.net.Uri getValidRingtoneUriFromCursorAndClose(android.content.Context, android.database.Cursor);
    descriptor: (Landroid/content/Context;Landroid/database/Cursor;)Landroid/net/Uri;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=1, locals=3, args_size=2
        start local 0 // android.content.Context context
        start local 1 // android.database.Cursor cursor
         0: .line 591
            aload 1 /* cursor */
            ifnull 6
         1: .line 592
            aconst_null
            astore 2 /* uri */
        start local 2 // android.net.Uri uri
         2: .line 594
            aload 1 /* cursor */
            invokeinterface android.database.Cursor.moveToFirst:()Z
            ifeq 4
         3: .line 595
            aload 1 /* cursor */
            invokestatic android.media.RingtoneManager.getUriFromCursor:(Landroid/database/Cursor;)Landroid/net/Uri;
            astore 2 /* uri */
         4: .line 597
      StackMap locals: android.net.Uri
      StackMap stack:
            aload 1 /* cursor */
            invokeinterface android.database.Cursor.close:()V
         5: .line 599
            aload 2 /* uri */
            areturn
        end local 2 // android.net.Uri uri
         6: .line 601
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // android.database.Cursor cursor
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0  context  Landroid/content/Context;
            0    7     1   cursor  Landroid/database/Cursor;
            2    6     2      uri  Landroid/net/Uri;
    MethodParameters:
         Name  Flags
      context  
      cursor   

  private android.database.Cursor getInternalRingtones();
    descriptor: ()Landroid/database/Cursor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // android.media.RingtoneManager this
         0: .line 606
            aload 0 /* this */
         1: .line 607
            getstatic android.provider.MediaStore$Audio$Media.INTERNAL_CONTENT_URI:Landroid/net/Uri;
            getstatic android.media.RingtoneManager.INTERNAL_COLUMNS:[Ljava/lang/String;
         2: .line 608
            aload 0 /* this */
            getfield android.media.RingtoneManager.mFilterColumns:Ljava/util/List;
            invokestatic android.media.RingtoneManager.constructBooleanTrueWhereClause:(Ljava/util/List;)Ljava/lang/String;
         3: .line 609
            aconst_null
            ldc "title_key"
         4: .line 606
            invokevirtual android.media.RingtoneManager.query:(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
            areturn
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/media/RingtoneManager;

  private android.database.Cursor getMediaRingtones();
    descriptor: ()Landroid/database/Cursor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.media.RingtoneManager this
         0: .line 613
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.RingtoneManager.mContext:Landroid/content/Context;
            invokevirtual android.media.RingtoneManager.getMediaRingtones:(Landroid/content/Context;)Landroid/database/Cursor;
            areturn
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/RingtoneManager;

  private android.database.Cursor getMediaRingtones(android.content.Context);
    descriptor: (Landroid/content/Context;)Landroid/database/Cursor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.RingtoneManager this
         0: .line 618
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tandroid.Manifest.permission.READ_EXTERNAL_STORAGE cannot be resolved to a type\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/RingtoneManager;
    MethodParameters:
         Name  Flags
      context  

  private void setFilterColumnsList(int);
    descriptor: (I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.media.RingtoneManager this
        start local 1 // int type
         0: .line 636
            aload 0 /* this */
            getfield android.media.RingtoneManager.mFilterColumns:Ljava/util/List;
            astore 2 /* columns */
        start local 2 // java.util.List columns
         1: .line 637
            aload 2 /* columns */
            invokeinterface java.util.List.clear:()V
         2: .line 639
            iload 1 /* type */
            iconst_1
            iand
            ifeq 4
         3: .line 640
            aload 2 /* columns */
            ldc "is_ringtone"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         4: .line 643
      StackMap locals: java.util.List
      StackMap stack:
            iload 1 /* type */
            iconst_2
            iand
            ifeq 6
         5: .line 644
            aload 2 /* columns */
            ldc "is_notification"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         6: .line 647
      StackMap locals:
      StackMap stack:
            iload 1 /* type */
            iconst_4
            iand
            ifeq 8
         7: .line 648
            aload 2 /* columns */
            ldc "is_alarm"
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         8: .line 650
      StackMap locals:
      StackMap stack:
            return
        end local 2 // java.util.List columns
        end local 1 // int type
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Landroid/media/RingtoneManager;
            0    9     1     type  I
            1    9     2  columns  Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      type  

  private static java.lang.String constructBooleanTrueWhereClause(java.util.List<java.lang.String>);
    descriptor: (Ljava/util/List;)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // java.util.List columns
         0: .line 662
            aload 0 /* columns */
            ifnonnull 1
            aconst_null
            areturn
         1: .line 664
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* sb */
        start local 1 // java.lang.StringBuilder sb
         2: .line 665
            aload 1 /* sb */
            ldc "("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 667
            aload 0 /* columns */
            invokeinterface java.util.List.size:()I
            iconst_1
            isub
            istore 2 /* i */
        start local 2 // int i
         4: goto 7
         5: .line 668
      StackMap locals: java.lang.StringBuilder int
      StackMap stack:
            aload 1 /* sb */
            aload 0 /* columns */
            iload 2 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast java.lang.String
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "=1 or "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         6: .line 667
            iinc 2 /* i */ -1
      StackMap locals:
      StackMap stack:
         7: iload 2 /* i */
            ifge 5
        end local 2 // int i
         8: .line 671
            aload 0 /* columns */
            invokeinterface java.util.List.size:()I
            ifle 10
         9: .line 673
            aload 1 /* sb */
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.length:()I
            iconst_4
            isub
            invokevirtual java.lang.StringBuilder.setLength:(I)V
        10: .line 676
      StackMap locals:
      StackMap stack:
            aload 1 /* sb */
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        11: .line 678
            aload 1 /* sb */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 1 // java.lang.StringBuilder sb
        end local 0 // java.util.List columns
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0  columns  Ljava/util/List<Ljava/lang/String;>;
            2   12     1       sb  Ljava/lang/StringBuilder;
            4    8     2        i  I
    Signature: (Ljava/util/List<Ljava/lang/String;>;)Ljava/lang/String;
    MethodParameters:
         Name  Flags
      columns  

  private android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String);
    descriptor: (Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // android.media.RingtoneManager this
        start local 1 // android.net.Uri uri
        start local 2 // java.lang.String[] projection
        start local 3 // java.lang.String selection
        start local 4 // java.lang.String[] selectionArgs
        start local 5 // java.lang.String sortOrder
         0: .line 686
            aload 0 /* this */
            aload 1 /* uri */
            aload 2 /* projection */
            aload 3 /* selection */
            aload 4 /* selectionArgs */
            aload 5 /* sortOrder */
            aload 0 /* this */
            getfield android.media.RingtoneManager.mContext:Landroid/content/Context;
            invokevirtual android.media.RingtoneManager.query:(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/content/Context;)Landroid/database/Cursor;
            areturn
        end local 5 // java.lang.String sortOrder
        end local 4 // java.lang.String[] selectionArgs
        end local 3 // java.lang.String selection
        end local 2 // java.lang.String[] projection
        end local 1 // android.net.Uri uri
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Landroid/media/RingtoneManager;
            0    1     1            uri  Landroid/net/Uri;
            0    1     2     projection  [Ljava/lang/String;
            0    1     3      selection  Ljava/lang/String;
            0    1     4  selectionArgs  [Ljava/lang/String;
            0    1     5      sortOrder  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      uri            
      projection     
      selection      
      selectionArgs  
      sortOrder      

  private android.database.Cursor query(android.net.Uri, java.lang.String[], java.lang.String, java.lang.String[], java.lang.String, android.content.Context);
    descriptor: (Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;Landroid/content/Context;)Landroid/database/Cursor;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=7
        start local 0 // android.media.RingtoneManager this
        start local 1 // android.net.Uri uri
        start local 2 // java.lang.String[] projection
        start local 3 // java.lang.String selection
        start local 4 // java.lang.String[] selectionArgs
        start local 5 // java.lang.String sortOrder
        start local 6 // android.content.Context context
         0: .line 695
            aload 0 /* this */
            getfield android.media.RingtoneManager.mActivity:Landroid/app/Activity;
            ifnull 2
         1: .line 696
            aload 0 /* this */
            getfield android.media.RingtoneManager.mActivity:Landroid/app/Activity;
            aload 1 /* uri */
            aload 2 /* projection */
            aload 3 /* selection */
            aload 4 /* selectionArgs */
            aload 5 /* sortOrder */
            invokevirtual android.app.Activity.managedQuery:(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
            areturn
         2: .line 698
      StackMap locals:
      StackMap stack:
            aload 6 /* context */
            invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
            aload 1 /* uri */
            aload 2 /* projection */
            aload 3 /* selection */
            aload 4 /* selectionArgs */
         3: .line 699
            aload 5 /* sortOrder */
         4: .line 698
            invokevirtual android.content.ContentResolver.query:(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
            areturn
        end local 6 // android.content.Context context
        end local 5 // java.lang.String sortOrder
        end local 4 // java.lang.String[] selectionArgs
        end local 3 // java.lang.String selection
        end local 2 // java.lang.String[] projection
        end local 1 // android.net.Uri uri
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Landroid/media/RingtoneManager;
            0    5     1            uri  Landroid/net/Uri;
            0    5     2     projection  [Ljava/lang/String;
            0    5     3      selection  Ljava/lang/String;
            0    5     4  selectionArgs  [Ljava/lang/String;
            0    5     5      sortOrder  Ljava/lang/String;
            0    5     6        context  Landroid/content/Context;
    MethodParameters:
               Name  Flags
      uri            
      projection     
      selection      
      selectionArgs  
      sortOrder      
      context        

  public static android.media.Ringtone getRingtone(android.content.Context, android.net.Uri);
    descriptor: (Landroid/content/Context;Landroid/net/Uri;)Landroid/media/Ringtone;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.content.Context context
        start local 1 // android.net.Uri ringtoneUri
         0: .line 716
            aload 0 /* context */
            aload 1 /* ringtoneUri */
            iconst_m1
            invokestatic android.media.RingtoneManager.getRingtone:(Landroid/content/Context;Landroid/net/Uri;I)Landroid/media/Ringtone;
            areturn
        end local 1 // android.net.Uri ringtoneUri
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0      context  Landroid/content/Context;
            0    1     1  ringtoneUri  Landroid/net/Uri;
    MethodParameters:
             Name  Flags
      context      final
      ringtoneUri  

  private static android.media.Ringtone getRingtone(android.content.Context, android.net.Uri, int);
    descriptor: (Landroid/content/Context;Landroid/net/Uri;I)Landroid/media/Ringtone;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // android.content.Context context
        start local 1 // android.net.Uri ringtoneUri
        start local 2 // int streamType
         0: .line 732
            new android.media.Ringtone
            dup
            aload 0 /* context */
            iconst_1
            invokespecial android.media.Ringtone.<init>:(Landroid/content/Context;Z)V
            astore 3 /* r */
        start local 3 // android.media.Ringtone r
         1: .line 733
            iload 2 /* streamType */
            iflt 3
         2: .line 735
            aload 3 /* r */
            iload 2 /* streamType */
            invokevirtual android.media.Ringtone.setStreamType:(I)V
         3: .line 737
      StackMap locals: android.media.Ringtone
      StackMap stack:
            aload 3 /* r */
            aload 1 /* ringtoneUri */
            invokevirtual android.media.Ringtone.setUri:(Landroid/net/Uri;)V
         4: .line 738
            aload 3 /* r */
         5: areturn
        end local 3 // android.media.Ringtone r
         6: .line 739
      StackMap locals: android.content.Context android.net.Uri int
      StackMap stack: java.lang.Exception
            astore 3 /* ex */
        start local 3 // java.lang.Exception ex
         7: .line 740
            ldc "RingtoneManager"
            new java.lang.StringBuilder
            dup
            ldc "Failed to open ringtone "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* ringtoneUri */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc ": "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 3 /* ex */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 3 // java.lang.Exception ex
         8: .line 743
            aconst_null
            areturn
        end local 2 // int streamType
        end local 1 // android.net.Uri ringtoneUri
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0      context  Landroid/content/Context;
            0    9     1  ringtoneUri  Landroid/net/Uri;
            0    9     2   streamType  I
            1    6     3            r  Landroid/media/Ringtone;
            7    8     3           ex  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           0     5       6  Class java.lang.Exception
    MethodParameters:
             Name  Flags
      context      final
      ringtoneUri  
      streamType   

  private java.io.File getRingtonePathFromUri(android.net.Uri);
    descriptor: (Landroid/net/Uri;)Ljava/io/File;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=7, args_size=2
        start local 0 // android.media.RingtoneManager this
        start local 1 // android.net.Uri uri
         0: .line 755
            iconst_1
            anewarray java.lang.String
            dup
            iconst_0
            ldc "_data"
            aastore
            astore 2 /* projection */
        start local 2 // java.lang.String[] projection
         1: .line 756
            aload 0 /* this */
            bipush 7
            invokevirtual android.media.RingtoneManager.setFilterColumnsList:(I)V
         2: .line 758
            aconst_null
            astore 3 /* path */
        start local 3 // java.lang.String path
         3: .line 759
            aconst_null
            astore 4
            aconst_null
            astore 5
         4: aload 0 /* this */
            aload 1 /* uri */
            aload 2 /* projection */
            aload 0 /* this */
            getfield android.media.RingtoneManager.mFilterColumns:Ljava/util/List;
            invokestatic android.media.RingtoneManager.constructBooleanTrueWhereClause:(Ljava/util/List;)Ljava/lang/String;
         5: .line 760
            aconst_null
            aconst_null
         6: .line 759
            invokevirtual android.media.RingtoneManager.query:(Landroid/net/Uri;[Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Landroid/database/Cursor;
            astore 6 /* cursor */
        start local 6 // android.database.Cursor cursor
         7: .line 761
            aload 6 /* cursor */
            ifnull 9
            aload 6 /* cursor */
            invokeinterface android.database.Cursor.moveToFirst:()Z
            ifeq 9
         8: .line 762
            aload 6 /* cursor */
            aload 6 /* cursor */
            ldc "_data"
            invokeinterface android.database.Cursor.getColumnIndex:(Ljava/lang/String;)I
            invokeinterface android.database.Cursor.getString:(I)Ljava/lang/String;
            astore 3 /* path */
         9: .line 764
      StackMap locals: android.media.RingtoneManager android.net.Uri java.lang.String[] java.lang.String java.lang.Throwable java.lang.Throwable android.database.Cursor
      StackMap stack:
            aload 6 /* cursor */
            ifnull 15
            aload 6 /* cursor */
            invokeinterface android.database.Cursor.close:()V
            goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: astore 4
            aload 6 /* cursor */
            ifnull 11
            aload 6 /* cursor */
            invokeinterface android.database.Cursor.close:()V
        end local 6 // android.database.Cursor cursor
      StackMap locals:
      StackMap stack:
        11: aload 4
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        12: astore 5
            aload 4
            ifnonnull 13
            aload 5
            astore 4
            goto 14
      StackMap locals:
      StackMap stack:
        13: aload 4
            aload 5
            if_acmpeq 14
            aload 4
            aload 5
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        14: aload 4
            athrow
        15: .line 765
      StackMap locals:
      StackMap stack:
            aload 3 /* path */
            ifnull 16
            new java.io.File
            dup
            aload 3 /* path */
            invokespecial java.io.File.<init>:(Ljava/lang/String;)V
            goto 17
      StackMap locals:
      StackMap stack:
        16: aconst_null
      StackMap locals:
      StackMap stack: java.io.File
        17: areturn
        end local 3 // java.lang.String path
        end local 2 // java.lang.String[] projection
        end local 1 // android.net.Uri uri
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Landroid/media/RingtoneManager;
            0   18     1         uri  Landroid/net/Uri;
            1   18     2  projection  [Ljava/lang/String;
            3   18     3        path  Ljava/lang/String;
            7   11     6      cursor  Landroid/database/Cursor;
      Exception table:
        from    to  target  type
           7     9      10  any
           4    12      12  any
    MethodParameters:
      Name  Flags
      uri   

  public static void disableSyncFromParent(android.content.Context);
    descriptor: (Landroid/content/Context;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // android.content.Context userContext
         0: .line 774
            ldc "audio"
            invokestatic android.os.ServiceManager.getService:(Ljava/lang/String;)Landroid/os/IBinder;
            astore 1 /* b */
        start local 1 // android.os.IBinder b
         1: .line 775
            aload 1 /* b */
            invokestatic android.media.IAudioService$Stub.asInterface:(Landroid/os/IBinder;)Landroid/media/IAudioService;
            astore 2 /* audioService */
        start local 2 // android.media.IAudioService audioService
         2: .line 777
            aload 2 /* audioService */
            aload 0 /* userContext */
            invokevirtual android.content.Context.getUserId:()I
            invokeinterface android.media.IAudioService.disableRingtoneSync:(I)V
         3: .line 778
            goto 6
      StackMap locals: android.content.Context android.os.IBinder android.media.IAudioService
      StackMap stack: android.os.RemoteException
         4: pop
         5: .line 779
            ldc "RingtoneManager"
            ldc "Unable to disable ringtone sync."
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         6: .line 781
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.media.IAudioService audioService
        end local 1 // android.os.IBinder b
        end local 0 // android.content.Context userContext
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    7     0   userContext  Landroid/content/Context;
            1    7     1             b  Landroid/os/IBinder;
            2    7     2  audioService  Landroid/media/IAudioService;
      Exception table:
        from    to  target  type
           2     3       4  Class android.os.RemoteException
    MethodParameters:
             Name  Flags
      userContext  

  public static void enableSyncFromParent(android.content.Context);
    descriptor: (Landroid/content/Context;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
         0: .line 788
            new java.lang.Error
            dup
            ldc "Unresolved compilation problem: \n\tManifest cannot be resolved to a variable\n"
            invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
            athrow
      LocalVariableTable:
        Start  End  Slot  Name  Signature
    MethodParameters:
             Name  Flags
      userContext  

  public static android.net.Uri getActualDefaultRingtoneUri(android.content.Context, int);
    descriptor: (Landroid/content/Context;I)Landroid/net/Uri;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // android.content.Context context
        start local 1 // int type
         0: .line 807
            iload 1 /* type */
            invokestatic android.media.RingtoneManager.getSettingForType:(I)Ljava/lang/String;
            astore 2 /* setting */
        start local 2 // java.lang.String setting
         1: .line 808
            aload 2 /* setting */
            ifnonnull 2
            aconst_null
            areturn
         2: .line 809
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* context */
            invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
         3: .line 810
            aload 2 /* setting */
            aload 0 /* context */
            invokevirtual android.content.Context.getUserId:()I
         4: .line 809
            invokestatic android.provider.Settings$System.getStringForUser:(Landroid/content/ContentResolver;Ljava/lang/String;I)Ljava/lang/String;
            astore 3 /* uriString */
        start local 3 // java.lang.String uriString
         5: .line 811
            aload 3 /* uriString */
            ifnull 6
            aload 3 /* uriString */
            invokestatic android.net.Uri.parse:(Ljava/lang/String;)Landroid/net/Uri;
            goto 7
      StackMap locals: java.lang.String
      StackMap stack:
         6: aconst_null
      StackMap locals:
      StackMap stack: android.net.Uri
         7: astore 4 /* ringtoneUri */
        start local 4 // android.net.Uri ringtoneUri
         8: .line 815
            aload 4 /* ringtoneUri */
            ifnull 11
         9: .line 816
            aload 4 /* ringtoneUri */
            invokestatic android.content.ContentProvider.getUserIdFromUri:(Landroid/net/Uri;)I
            aload 0 /* context */
            invokevirtual android.content.Context.getUserId:()I
            if_icmpne 11
        10: .line 817
            aload 4 /* ringtoneUri */
            invokestatic android.content.ContentProvider.getUriWithoutUserId:(Landroid/net/Uri;)Landroid/net/Uri;
            astore 4 /* ringtoneUri */
        11: .line 820
      StackMap locals: android.net.Uri
      StackMap stack:
            aload 4 /* ringtoneUri */
            areturn
        end local 4 // android.net.Uri ringtoneUri
        end local 3 // java.lang.String uriString
        end local 2 // java.lang.String setting
        end local 1 // int type
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   12     0      context  Landroid/content/Context;
            0   12     1         type  I
            1   12     2      setting  Ljava/lang/String;
            5   12     3    uriString  Ljava/lang/String;
            8   12     4  ringtoneUri  Landroid/net/Uri;
    MethodParameters:
         Name  Flags
      context  
      type     

  public static void setActualDefaultRingtoneUri(android.content.Context, int, android.net.Uri);
    descriptor: (Landroid/content/Context;ILandroid/net/Uri;)V
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=10, args_size=3
        start local 0 // android.content.Context context
        start local 1 // int type
        start local 2 // android.net.Uri ringtoneUri
         0: .line 834
            iload 1 /* type */
            invokestatic android.media.RingtoneManager.getSettingForType:(I)Ljava/lang/String;
            astore 3 /* setting */
        start local 3 // java.lang.String setting
         1: .line 835
            aload 3 /* setting */
            ifnonnull 2
            return
         2: .line 837
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* context */
            invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
            astore 4 /* resolver */
        start local 4 // android.content.ContentResolver resolver
         3: .line 838
            aload 4 /* resolver */
            ldc "sync_parent_sounds"
            iconst_0
         4: .line 839
            aload 0 /* context */
            invokevirtual android.content.Context.getUserId:()I
         5: .line 838
            invokestatic android.provider.Settings$Secure.getIntForUser:(Landroid/content/ContentResolver;Ljava/lang/String;II)I
         6: .line 839
            iconst_1
         7: .line 838
            if_icmpne 9
         8: .line 841
            aload 0 /* context */
            invokestatic android.media.RingtoneManager.disableSyncFromParent:(Landroid/content/Context;)V
         9: .line 843
      StackMap locals: android.content.ContentResolver
      StackMap stack:
            aload 2 /* ringtoneUri */
            invokestatic android.media.RingtoneManager.isInternalRingtoneUri:(Landroid/net/Uri;)Z
            ifne 11
        10: .line 844
            aload 2 /* ringtoneUri */
            aload 0 /* context */
            invokevirtual android.content.Context.getUserId:()I
            invokestatic android.content.ContentProvider.maybeAddUserId:(Landroid/net/Uri;I)Landroid/net/Uri;
            astore 2 /* ringtoneUri */
        11: .line 846
      StackMap locals:
      StackMap stack:
            aload 4 /* resolver */
            aload 3 /* setting */
        12: .line 847
            aload 2 /* ringtoneUri */
            ifnull 13
            aload 2 /* ringtoneUri */
            invokevirtual android.net.Uri.toString:()Ljava/lang/String;
            goto 14
      StackMap locals: android.content.Context int android.net.Uri java.lang.String android.content.ContentResolver
      StackMap stack: android.content.ContentResolver java.lang.String
        13: aconst_null
      StackMap locals: android.content.Context int android.net.Uri java.lang.String android.content.ContentResolver
      StackMap stack: android.content.ContentResolver java.lang.String java.lang.String
        14: aload 0 /* context */
            invokevirtual android.content.Context.getUserId:()I
        15: .line 846
            invokestatic android.provider.Settings$System.putStringForUser:(Landroid/content/ContentResolver;Ljava/lang/String;Ljava/lang/String;I)Z
            pop
        16: .line 851
            aload 2 /* ringtoneUri */
            ifnull 35
        17: .line 852
            iload 1 /* type */
            aload 0 /* context */
            invokevirtual android.content.Context.getUserId:()I
            invokestatic android.media.RingtoneManager.getCacheForType:(II)Landroid/net/Uri;
            astore 5 /* cacheUri */
        start local 5 // android.net.Uri cacheUri
        18: .line 853
            aconst_null
            astore 6
            aconst_null
            astore 7
        19: aload 0 /* context */
            aload 2 /* ringtoneUri */
            invokestatic android.media.RingtoneManager.openRingtone:(Landroid/content/Context;Landroid/net/Uri;)Ljava/io/InputStream;
            astore 8 /* in */
        start local 8 // java.io.InputStream in
        20: .line 854
            aload 4 /* resolver */
            aload 5 /* cacheUri */
            invokevirtual android.content.ContentResolver.openOutputStream:(Landroid/net/Uri;)Ljava/io/OutputStream;
            astore 9 /* out */
        start local 9 // java.io.OutputStream out
        21: .line 855
            aload 8 /* in */
            aload 9 /* out */
            invokestatic android.os.FileUtils.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)J
            pop2
        22: .line 856
            aload 9 /* out */
            ifnull 25
            aload 9 /* out */
            invokevirtual java.io.OutputStream.close:()V
            goto 25
      StackMap locals: android.content.Context int android.net.Uri java.lang.String android.content.ContentResolver android.net.Uri java.lang.Throwable java.lang.Throwable java.io.InputStream java.io.OutputStream
      StackMap stack: java.lang.Throwable
        23: astore 6
            aload 9 /* out */
            ifnull 24
            aload 9 /* out */
            invokevirtual java.io.OutputStream.close:()V
        end local 9 // java.io.OutputStream out
      StackMap locals:
      StackMap stack:
        24: aload 6
            athrow
      StackMap locals:
      StackMap stack:
        25: aload 8 /* in */
            ifnull 35
            aload 8 /* in */
            invokevirtual java.io.InputStream.close:()V
            goto 35
      StackMap locals:
      StackMap stack: java.lang.Throwable
        26: astore 7
            aload 6
            ifnonnull 27
            aload 7
            astore 6
            goto 28
      StackMap locals:
      StackMap stack:
        27: aload 6
            aload 7
            if_acmpeq 28
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        28: aload 8 /* in */
            ifnull 29
            aload 8 /* in */
            invokevirtual java.io.InputStream.close:()V
        end local 8 // java.io.InputStream in
      StackMap locals:
      StackMap stack:
        29: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        30: astore 7
            aload 6
            ifnonnull 31
            aload 7
            astore 6
            goto 32
      StackMap locals:
      StackMap stack:
        31: aload 6
            aload 7
            if_acmpeq 32
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        32: aload 6
            athrow
      StackMap locals: android.content.Context int android.net.Uri java.lang.String android.content.ContentResolver android.net.Uri
      StackMap stack: java.io.IOException
        33: astore 6 /* e */
        start local 6 // java.io.IOException e
        34: .line 857
            ldc "RingtoneManager"
            new java.lang.StringBuilder
            dup
            ldc "Failed to cache ringtone: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        end local 6 // java.io.IOException e
        end local 5 // android.net.Uri cacheUri
        35: .line 860
      StackMap locals:
      StackMap stack:
            return
        end local 4 // android.content.ContentResolver resolver
        end local 3 // java.lang.String setting
        end local 2 // android.net.Uri ringtoneUri
        end local 1 // int type
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   36     0      context  Landroid/content/Context;
            0   36     1         type  I
            0   36     2  ringtoneUri  Landroid/net/Uri;
            1   36     3      setting  Ljava/lang/String;
            3   36     4     resolver  Landroid/content/ContentResolver;
           18   35     5     cacheUri  Landroid/net/Uri;
           20   29     8           in  Ljava/io/InputStream;
           21   24     9          out  Ljava/io/OutputStream;
           34   35     6            e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
          21    22      23  any
          20    25      26  any
          19    30      30  any
          18    33      33  Class java.io.IOException
    MethodParameters:
             Name  Flags
      context      
      type         
      ringtoneUri  

  private static boolean isInternalRingtoneUri(android.net.Uri);
    descriptor: (Landroid/net/Uri;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.net.Uri uri
         0: .line 863
            aload 0 /* uri */
            getstatic android.provider.MediaStore$Audio$Media.INTERNAL_CONTENT_URI:Landroid/net/Uri;
            invokestatic android.media.RingtoneManager.isRingtoneUriInStorage:(Landroid/net/Uri;Landroid/net/Uri;)Z
            ireturn
        end local 0 // android.net.Uri uri
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   uri  Landroid/net/Uri;
    MethodParameters:
      Name  Flags
      uri   

  private static boolean isExternalRingtoneUri(android.net.Uri);
    descriptor: (Landroid/net/Uri;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.net.Uri uri
         0: .line 867
            aload 0 /* uri */
            getstatic android.provider.MediaStore$Audio$Media.EXTERNAL_CONTENT_URI:Landroid/net/Uri;
            invokestatic android.media.RingtoneManager.isRingtoneUriInStorage:(Landroid/net/Uri;Landroid/net/Uri;)Z
            ireturn
        end local 0 // android.net.Uri uri
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   uri  Landroid/net/Uri;
    MethodParameters:
      Name  Flags
      uri   

  private static boolean isRingtoneUriInStorage(android.net.Uri, android.net.Uri);
    descriptor: (Landroid/net/Uri;Landroid/net/Uri;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // android.net.Uri ringtone
        start local 1 // android.net.Uri storage
         0: .line 871
            aload 0 /* ringtone */
            invokestatic android.content.ContentProvider.getUriWithoutUserId:(Landroid/net/Uri;)Landroid/net/Uri;
            astore 2 /* uriWithoutUserId */
        start local 2 // android.net.Uri uriWithoutUserId
         1: .line 872
            aload 2 /* uriWithoutUserId */
            ifnonnull 2
            iconst_0
            goto 3
         2: .line 873
      StackMap locals: android.net.Uri
      StackMap stack:
            aload 2 /* uriWithoutUserId */
            invokevirtual android.net.Uri.toString:()Ljava/lang/String;
            aload 1 /* storage */
            invokevirtual android.net.Uri.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
         3: .line 872
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 2 // android.net.Uri uriWithoutUserId
        end local 1 // android.net.Uri storage
        end local 0 // android.net.Uri ringtone
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0          ringtone  Landroid/net/Uri;
            0    4     1           storage  Landroid/net/Uri;
            1    4     2  uriWithoutUserId  Landroid/net/Uri;
    MethodParameters:
          Name  Flags
      ringtone  
      storage   

  public boolean isCustomRingtone(android.net.Uri);
    descriptor: (Landroid/net/Uri;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=9, args_size=2
        start local 0 // android.media.RingtoneManager this
        start local 1 // android.net.Uri uri
         0: .line 878
            aload 1 /* uri */
            invokestatic android.media.RingtoneManager.isExternalRingtoneUri:(Landroid/net/Uri;)Z
            ifne 2
         1: .line 880
            iconst_0
            ireturn
         2: .line 883
      StackMap locals:
      StackMap stack:
            aload 1 /* uri */
            ifnonnull 3
            aconst_null
            goto 4
      StackMap locals:
      StackMap stack:
         3: aload 0 /* this */
            aload 1 /* uri */
            invokevirtual android.media.RingtoneManager.getRingtonePathFromUri:(Landroid/net/Uri;)Ljava/io/File;
      StackMap locals:
      StackMap stack: java.io.File
         4: astore 2 /* ringtoneFile */
        start local 2 // java.io.File ringtoneFile
         5: .line 884
            aload 2 /* ringtoneFile */
            ifnonnull 6
            aconst_null
            goto 7
      StackMap locals: java.io.File
      StackMap stack:
         6: aload 2 /* ringtoneFile */
            invokevirtual java.io.File.getParentFile:()Ljava/io/File;
      StackMap locals:
      StackMap stack: java.io.File
         7: astore 3 /* parent */
        start local 3 // java.io.File parent
         8: .line 885
            aload 3 /* parent */
            ifnonnull 10
         9: .line 886
            iconst_0
            ireturn
        10: .line 889
      StackMap locals: java.io.File
      StackMap stack:
            iconst_3
            anewarray java.lang.String
            dup
            iconst_0
        11: .line 890
            getstatic android.os.Environment.DIRECTORY_RINGTONES:Ljava/lang/String;
            aastore
            dup
            iconst_1
        12: .line 891
            getstatic android.os.Environment.DIRECTORY_NOTIFICATIONS:Ljava/lang/String;
            aastore
            dup
            iconst_2
        13: .line 892
            getstatic android.os.Environment.DIRECTORY_ALARMS:Ljava/lang/String;
            aastore
        14: .line 889
            astore 4 /* directories */
        start local 4 // java.lang.String[] directories
        15: .line 894
            aload 4 /* directories */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 20
      StackMap locals: android.media.RingtoneManager android.net.Uri java.io.File java.io.File java.lang.String[] top int int java.lang.String[]
      StackMap stack:
        16: aload 8
            iload 6
            aaload
            astore 5 /* directory */
        start local 5 // java.lang.String directory
        17: .line 895
            aload 3 /* parent */
            aload 5 /* directory */
            invokestatic android.os.Environment.getExternalStoragePublicDirectory:(Ljava/lang/String;)Ljava/io/File;
            invokevirtual java.io.File.equals:(Ljava/lang/Object;)Z
            ifeq 19
        18: .line 896
            iconst_1
            ireturn
        end local 5 // java.lang.String directory
        19: .line 894
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        20: iload 6
            iload 7
            if_icmplt 16
        21: .line 899
            iconst_0
            ireturn
        end local 4 // java.lang.String[] directories
        end local 3 // java.io.File parent
        end local 2 // java.io.File ringtoneFile
        end local 1 // android.net.Uri uri
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   22     0          this  Landroid/media/RingtoneManager;
            0   22     1           uri  Landroid/net/Uri;
            5   22     2  ringtoneFile  Ljava/io/File;
            8   22     3        parent  Ljava/io/File;
           15   22     4   directories  [Ljava/lang/String;
           17   19     5     directory  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      uri   

  public android.net.Uri addCustomExternalRingtone(android.net.Uri, int);
    descriptor: (Landroid/net/Uri;I)Landroid/net/Uri;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=3
        start local 0 // android.media.RingtoneManager this
        start local 1 // android.net.Uri fileUri
        start local 2 // int type
         0: .line 937
            invokestatic android.os.Environment.getExternalStorageState:()Ljava/lang/String;
            ldc "mounted"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 938
            new java.io.IOException
            dup
            ldc "External storage is not mounted. Unable to install ringtones."
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 942
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.RingtoneManager.mContext:Landroid/content/Context;
            invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
            aload 1 /* fileUri */
            invokevirtual android.content.ContentResolver.getType:(Landroid/net/Uri;)Ljava/lang/String;
            astore 3 /* mimeType */
        start local 3 // java.lang.String mimeType
         3: .line 943
            aload 3 /* mimeType */
            ifnull 5
         4: .line 944
            aload 3 /* mimeType */
            ldc "audio/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 8
            aload 3 /* mimeType */
            ldc "application/ogg"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 8
         5: .line 945
      StackMap locals: java.lang.String
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Ringtone file must have MIME type \"audio/*\". Given file has MIME type \""
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         6: .line 946
            aload 3 /* mimeType */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\""
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         7: .line 945
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 951
      StackMap locals:
      StackMap stack:
            iload 2 /* type */
            invokestatic android.media.RingtoneManager.getExternalDirectoryForType:(I)Ljava/lang/String;
            astore 4 /* subdirectory */
        start local 4 // java.lang.String subdirectory
         9: .line 954
            aload 0 /* this */
            getfield android.media.RingtoneManager.mContext:Landroid/content/Context;
            aload 4 /* subdirectory */
        10: .line 955
            aload 0 /* this */
            getfield android.media.RingtoneManager.mContext:Landroid/content/Context;
            aload 1 /* fileUri */
            invokestatic android.media.Utils.getFileDisplayNameFromUri:(Landroid/content/Context;Landroid/net/Uri;)Ljava/lang/String;
            aload 3 /* mimeType */
        11: .line 954
            invokestatic android.media.Utils.getUniqueExternalFile:(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/io/File;
            astore 5 /* outFile */
        start local 5 // java.io.File outFile
        12: .line 958
            aconst_null
            astore 6
            aconst_null
            astore 7
        13: aload 0 /* this */
            getfield android.media.RingtoneManager.mContext:Landroid/content/Context;
            invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
            aload 1 /* fileUri */
            invokevirtual android.content.ContentResolver.openInputStream:(Landroid/net/Uri;)Ljava/io/InputStream;
            astore 8 /* input */
        start local 8 // java.io.InputStream input
        14: .line 959
            new java.io.FileOutputStream
            dup
            aload 5 /* outFile */
            invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
            astore 9 /* output */
        start local 9 // java.io.OutputStream output
        15: .line 960
            aload 8 /* input */
            aload 9 /* output */
            invokestatic android.os.FileUtils.copy:(Ljava/io/InputStream;Ljava/io/OutputStream;)J
            pop2
        16: .line 961
            aload 9 /* output */
            ifnull 19
            aload 9 /* output */
            invokevirtual java.io.OutputStream.close:()V
            goto 19
      StackMap locals: android.media.RingtoneManager android.net.Uri int java.lang.String java.lang.String java.io.File java.lang.Throwable java.lang.Throwable java.io.InputStream java.io.OutputStream
      StackMap stack: java.lang.Throwable
        17: astore 6
            aload 9 /* output */
            ifnull 18
            aload 9 /* output */
            invokevirtual java.io.OutputStream.close:()V
        end local 9 // java.io.OutputStream output
      StackMap locals:
      StackMap stack:
        18: aload 6
            athrow
      StackMap locals:
      StackMap stack:
        19: aload 8 /* input */
            ifnull 27
            aload 8 /* input */
            invokevirtual java.io.InputStream.close:()V
            goto 27
      StackMap locals:
      StackMap stack: java.lang.Throwable
        20: astore 7
            aload 6
            ifnonnull 21
            aload 7
            astore 6
            goto 22
      StackMap locals:
      StackMap stack:
        21: aload 6
            aload 7
            if_acmpeq 22
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        22: aload 8 /* input */
            ifnull 23
            aload 8 /* input */
            invokevirtual java.io.InputStream.close:()V
        end local 8 // java.io.InputStream input
      StackMap locals:
      StackMap stack:
        23: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        24: astore 7
            aload 6
            ifnonnull 25
            aload 7
            astore 6
            goto 26
      StackMap locals:
      StackMap stack:
        25: aload 6
            aload 7
            if_acmpeq 26
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        26: aload 6
            athrow
        27: .line 964
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 6
            aconst_null
            astore 7
        28: new android.media.RingtoneManager$NewRingtoneScanner
            dup
            aload 0 /* this */
            aload 5 /* outFile */
            invokespecial android.media.RingtoneManager$NewRingtoneScanner.<init>:(Landroid/media/RingtoneManager;Ljava/io/File;)V
            astore 8 /* scanner */
        start local 8 // android.media.RingtoneManager$NewRingtoneScanner scanner
        29: .line 965
            aload 8 /* scanner */
            invokevirtual android.media.RingtoneManager$NewRingtoneScanner.take:()Landroid/net/Uri;
        30: .line 966
            aload 8 /* scanner */
            ifnull 31
            aload 8 /* scanner */
            invokevirtual android.media.RingtoneManager$NewRingtoneScanner.close:()V
        31: .line 965
      StackMap locals: android.media.RingtoneManager android.net.Uri int java.lang.String java.lang.String java.io.File java.lang.Throwable java.lang.Throwable android.media.RingtoneManager$NewRingtoneScanner
      StackMap stack: android.net.Uri
            areturn
      StackMap locals:
      StackMap stack: java.lang.Throwable
        32: astore 6
        33: .line 966
            aload 8 /* scanner */
            ifnull 34
            aload 8 /* scanner */
            invokevirtual android.media.RingtoneManager$NewRingtoneScanner.close:()V
        end local 8 // android.media.RingtoneManager$NewRingtoneScanner scanner
      StackMap locals:
      StackMap stack:
        34: aload 6
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
        35: astore 7
            aload 6
            ifnonnull 36
            aload 7
            astore 6
            goto 37
      StackMap locals:
      StackMap stack:
        36: aload 6
            aload 7
            if_acmpeq 37
            aload 6
            aload 7
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        37: aload 6
            athrow
      StackMap locals: android.media.RingtoneManager android.net.Uri int java.lang.String java.lang.String java.io.File
      StackMap stack: java.lang.InterruptedException
        38: astore 6 /* e */
        start local 6 // java.lang.InterruptedException e
        39: .line 967
            new java.io.IOException
            dup
            ldc "Audio file failed to scan as a ringtone"
            aload 6 /* e */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.lang.InterruptedException e
        end local 5 // java.io.File outFile
        end local 4 // java.lang.String subdirectory
        end local 3 // java.lang.String mimeType
        end local 2 // int type
        end local 1 // android.net.Uri fileUri
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   40     0          this  Landroid/media/RingtoneManager;
            0   40     1       fileUri  Landroid/net/Uri;
            0   40     2          type  I
            3   40     3      mimeType  Ljava/lang/String;
            9   40     4  subdirectory  Ljava/lang/String;
           12   40     5       outFile  Ljava/io/File;
           14   23     8         input  Ljava/io/InputStream;
           15   18     9        output  Ljava/io/OutputStream;
           29   34     8       scanner  Landroid/media/RingtoneManager$NewRingtoneScanner;
           39   40     6             e  Ljava/lang/InterruptedException;
      Exception table:
        from    to  target  type
          15    16      17  any
          14    19      20  any
          13    24      24  any
          29    30      32  any
          28    31      35  any
          32    35      35  any
          27    31      38  Class java.lang.InterruptedException
          32    38      38  Class java.lang.InterruptedException
    Exceptions:
      throws java.io.FileNotFoundException, java.lang.IllegalArgumentException, java.io.IOException
    MethodParameters:
         Name  Flags
      fileUri  final
      type     final

  private static final java.lang.String getExternalDirectoryForType(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // int type
         0: .line 972
            iload 0 /* type */
            tableswitch { // 1 - 4
                    1: 1
                    2: 2
                    3: 4
                    4: 3
              default: 4
          }
         1: .line 974
      StackMap locals:
      StackMap stack:
            getstatic android.os.Environment.DIRECTORY_RINGTONES:Ljava/lang/String;
            areturn
         2: .line 976
      StackMap locals:
      StackMap stack:
            getstatic android.os.Environment.DIRECTORY_NOTIFICATIONS:Ljava/lang/String;
            areturn
         3: .line 978
      StackMap locals:
      StackMap stack:
            getstatic android.os.Environment.DIRECTORY_ALARMS:Ljava/lang/String;
            areturn
         4: .line 980
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported ringtone type: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 0 /* type */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 0 // int type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  type  I
    MethodParameters:
      Name  Flags
      type  final

  public boolean deleteExternalRingtone(android.net.Uri);
    descriptor: (Landroid/net/Uri;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // android.media.RingtoneManager this
        start local 1 // android.net.Uri uri
         0: .line 1000
            aload 0 /* this */
            aload 1 /* uri */
            invokevirtual android.media.RingtoneManager.isCustomRingtone:(Landroid/net/Uri;)Z
            ifne 2
         1: .line 1002
            iconst_0
            ireturn
         2: .line 1006
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* uri */
            invokevirtual android.media.RingtoneManager.getRingtonePathFromUri:(Landroid/net/Uri;)Ljava/io/File;
            astore 2 /* ringtoneFile */
        start local 2 // java.io.File ringtoneFile
         3: .line 1008
            aload 2 /* ringtoneFile */
            ifnull 8
            aload 0 /* this */
            getfield android.media.RingtoneManager.mContext:Landroid/content/Context;
            invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
            aload 1 /* uri */
            aconst_null
            aconst_null
            invokevirtual android.content.ContentResolver.delete:(Landroid/net/Uri;Ljava/lang/String;[Ljava/lang/String;)I
            ifle 8
         4: .line 1009
            aload 2 /* ringtoneFile */
            invokevirtual java.io.File.delete:()Z
         5: ireturn
         6: .line 1011
      StackMap locals: android.media.RingtoneManager android.net.Uri java.io.File
      StackMap stack: java.lang.SecurityException
            astore 3 /* e */
        start local 3 // java.lang.SecurityException e
         7: .line 1012
            ldc "RingtoneManager"
            ldc "Unable to delete custom ringtone"
            aload 3 /* e */
            invokestatic android.util.Log.d:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 3 // java.lang.SecurityException e
         8: .line 1014
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 2 // java.io.File ringtoneFile
        end local 1 // android.net.Uri uri
        end local 0 // android.media.RingtoneManager this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    9     0          this  Landroid/media/RingtoneManager;
            0    9     1           uri  Landroid/net/Uri;
            3    9     2  ringtoneFile  Ljava/io/File;
            7    8     3             e  Ljava/lang/SecurityException;
      Exception table:
        from    to  target  type
           3     5       6  Class java.lang.SecurityException
    MethodParameters:
      Name  Flags
      uri   

  private static java.io.InputStream openRingtone(android.content.Context, android.net.Uri);
    descriptor: (Landroid/content/Context;Landroid/net/Uri;)Ljava/io/InputStream;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // android.content.Context context
        start local 1 // android.net.Uri uri
         0: .line 1024
            aload 0 /* context */
            invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
            astore 2 /* resolver */
        start local 2 // android.content.ContentResolver resolver
         1: .line 1026
            aload 2 /* resolver */
            aload 1 /* uri */
            invokevirtual android.content.ContentResolver.openInputStream:(Landroid/net/Uri;)Ljava/io/InputStream;
         2: areturn
         3: .line 1027
      StackMap locals: android.content.Context android.net.Uri android.content.ContentResolver
      StackMap stack: java.lang.Exception
            astore 3 /* e */
        start local 3 // java.lang.Exception e
         4: .line 1028
            ldc "RingtoneManager"
            new java.lang.StringBuilder
            dup
            ldc "Failed to open directly; attempting failover: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         5: .line 1029
            aload 0 /* context */
            ldc Landroid/media/AudioManager;
            invokevirtual android.content.Context.getSystemService:(Ljava/lang/Class;)Ljava/lang/Object;
            checkcast android.media.AudioManager
         6: .line 1030
            invokevirtual android.media.AudioManager.getRingtonePlayer:()Landroid/media/IRingtonePlayer;
         7: .line 1029
            astore 4 /* player */
        start local 4 // android.media.IRingtonePlayer player
         8: .line 1032
            new android.os.ParcelFileDescriptor$AutoCloseInputStream
            dup
            aload 4 /* player */
            aload 1 /* uri */
            invokeinterface android.media.IRingtonePlayer.openRingtone:(Landroid/net/Uri;)Landroid/os/ParcelFileDescriptor;
            invokespecial android.os.ParcelFileDescriptor$AutoCloseInputStream.<init>:(Landroid/os/ParcelFileDescriptor;)V
         9: areturn
        10: .line 1033
      StackMap locals: android.content.Context android.net.Uri android.content.ContentResolver java.lang.Exception android.media.IRingtonePlayer
      StackMap stack: java.lang.Exception
            astore 5 /* e2 */
        start local 5 // java.lang.Exception e2
        11: .line 1034
            new java.io.IOException
            dup
            aload 5 /* e2 */
            invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.Exception e2
        end local 4 // android.media.IRingtonePlayer player
        end local 3 // java.lang.Exception e
        end local 2 // android.content.ContentResolver resolver
        end local 1 // android.net.Uri uri
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0   12     0   context  Landroid/content/Context;
            0   12     1       uri  Landroid/net/Uri;
            1   12     2  resolver  Landroid/content/ContentResolver;
            4   12     3         e  Ljava/lang/Exception;
            8   12     4    player  Landroid/media/IRingtonePlayer;
           11   12     5        e2  Ljava/lang/Exception;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.SecurityException
           1     2       3  Class java.io.IOException
           8     9      10  Class java.lang.Exception
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      context  
      uri      

  private static java.lang.String getSettingForType(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int type
         0: .line 1040
            iload 0 /* type */
            iconst_1
            iand
            ifeq 2
         1: .line 1041
            ldc "ringtone"
            areturn
         2: .line 1042
      StackMap locals:
      StackMap stack:
            iload 0 /* type */
            iconst_2
            iand
            ifeq 4
         3: .line 1043
            ldc "notification_sound"
            areturn
         4: .line 1044
      StackMap locals:
      StackMap stack:
            iload 0 /* type */
            iconst_4
            iand
            ifeq 6
         5: .line 1045
            ldc "alarm_alert"
            areturn
         6: .line 1047
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // int type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  type  I
    MethodParameters:
      Name  Flags
      type  

  public static android.net.Uri getCacheForType(int);
    descriptor: (I)Landroid/net/Uri;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int type
         0: .line 1053
            iload 0 /* type */
            invokestatic android.os.UserHandle.getCallingUserId:()I
            invokestatic android.media.RingtoneManager.getCacheForType:(II)Landroid/net/Uri;
            areturn
        end local 0 // int type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  type  I
    MethodParameters:
      Name  Flags
      type  

  public static android.net.Uri getCacheForType(int, int);
    descriptor: (II)Landroid/net/Uri;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // int type
        start local 1 // int userId
         0: .line 1058
            iload 0 /* type */
            iconst_1
            iand
            ifeq 2
         1: .line 1059
            getstatic android.provider.Settings$System.RINGTONE_CACHE_URI:Landroid/net/Uri;
            iload 1 /* userId */
            invokestatic android.content.ContentProvider.maybeAddUserId:(Landroid/net/Uri;I)Landroid/net/Uri;
            areturn
         2: .line 1060
      StackMap locals:
      StackMap stack:
            iload 0 /* type */
            iconst_2
            iand
            ifeq 6
         3: .line 1061
            getstatic android.provider.Settings$System.NOTIFICATION_SOUND_CACHE_URI:Landroid/net/Uri;
         4: .line 1062
            iload 1 /* userId */
         5: .line 1061
            invokestatic android.content.ContentProvider.maybeAddUserId:(Landroid/net/Uri;I)Landroid/net/Uri;
            areturn
         6: .line 1063
      StackMap locals:
      StackMap stack:
            iload 0 /* type */
            iconst_4
            iand
            ifeq 8
         7: .line 1064
            getstatic android.provider.Settings$System.ALARM_ALERT_CACHE_URI:Landroid/net/Uri;
            iload 1 /* userId */
            invokestatic android.content.ContentProvider.maybeAddUserId:(Landroid/net/Uri;I)Landroid/net/Uri;
            areturn
         8: .line 1066
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // int userId
        end local 0 // int type
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    type  I
            0    9     1  userId  I
    MethodParameters:
        Name  Flags
      type    
      userId  

  public static boolean isDefault(android.net.Uri);
    descriptor: (Landroid/net/Uri;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.net.Uri ringtoneUri
         0: .line 1076
            aload 0 /* ringtoneUri */
            invokestatic android.media.RingtoneManager.getDefaultType:(Landroid/net/Uri;)I
            iconst_m1
            if_icmpeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // android.net.Uri ringtoneUri
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0  ringtoneUri  Landroid/net/Uri;
    MethodParameters:
             Name  Flags
      ringtoneUri  

  public static int getDefaultType(android.net.Uri);
    descriptor: (Landroid/net/Uri;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.net.Uri defaultRingtoneUri
         0: .line 1089
            aload 0 /* defaultRingtoneUri */
            invokestatic android.content.ContentProvider.getUriWithoutUserId:(Landroid/net/Uri;)Landroid/net/Uri;
            astore 0 /* defaultRingtoneUri */
         1: .line 1090
            aload 0 /* defaultRingtoneUri */
            ifnonnull 3
         2: .line 1091
            iconst_m1
            ireturn
         3: .line 1092
      StackMap locals:
      StackMap stack:
            aload 0 /* defaultRingtoneUri */
            getstatic android.provider.Settings$System.DEFAULT_RINGTONE_URI:Landroid/net/Uri;
            invokevirtual android.net.Uri.equals:(Ljava/lang/Object;)Z
            ifeq 5
         4: .line 1093
            iconst_1
            ireturn
         5: .line 1094
      StackMap locals:
      StackMap stack:
            aload 0 /* defaultRingtoneUri */
            getstatic android.provider.Settings$System.DEFAULT_NOTIFICATION_URI:Landroid/net/Uri;
            invokevirtual android.net.Uri.equals:(Ljava/lang/Object;)Z
            ifeq 7
         6: .line 1095
            iconst_2
            ireturn
         7: .line 1096
      StackMap locals:
      StackMap stack:
            aload 0 /* defaultRingtoneUri */
            getstatic android.provider.Settings$System.DEFAULT_ALARM_ALERT_URI:Landroid/net/Uri;
            invokevirtual android.net.Uri.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 1097
            iconst_4
            ireturn
         9: .line 1099
      StackMap locals:
      StackMap stack:
            iconst_m1
            ireturn
        end local 0 // android.net.Uri defaultRingtoneUri
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   10     0  defaultRingtoneUri  Landroid/net/Uri;
    MethodParameters:
                    Name  Flags
      defaultRingtoneUri  

  public static android.net.Uri getDefaultUri(int);
    descriptor: (I)Landroid/net/Uri;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // int type
         0: .line 1113
            iload 0 /* type */
            iconst_1
            iand
            ifeq 2
         1: .line 1114
            getstatic android.provider.Settings$System.DEFAULT_RINGTONE_URI:Landroid/net/Uri;
            areturn
         2: .line 1115
      StackMap locals:
      StackMap stack:
            iload 0 /* type */
            iconst_2
            iand
            ifeq 4
         3: .line 1116
            getstatic android.provider.Settings$System.DEFAULT_NOTIFICATION_URI:Landroid/net/Uri;
            areturn
         4: .line 1117
      StackMap locals:
      StackMap stack:
            iload 0 /* type */
            iconst_4
            iand
            ifeq 6
         5: .line 1118
            getstatic android.provider.Settings$System.DEFAULT_ALARM_ALERT_URI:Landroid/net/Uri;
            areturn
         6: .line 1120
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 0 // int type
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  type  I
    MethodParameters:
      Name  Flags
      type  

  private static android.content.Context createPackageContextAsUser(android.content.Context, int);
    descriptor: (Landroid/content/Context;I)Landroid/content/Context;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.content.Context context
        start local 1 // int userId
         0: .line 1179
            aload 0 /* context */
            aload 0 /* context */
            invokevirtual android.content.Context.getPackageName:()Ljava/lang/String;
            iconst_0
         1: .line 1180
            iload 1 /* userId */
            invokestatic android.os.UserHandle.of:(I)Landroid/os/UserHandle;
         2: .line 1179
            invokevirtual android.content.Context.createPackageContextAsUser:(Ljava/lang/String;ILandroid/os/UserHandle;)Landroid/content/Context;
         3: areturn
         4: .line 1181
      StackMap locals:
      StackMap stack: android.content.pm.PackageManager$NameNotFoundException
            astore 2 /* e */
        start local 2 // android.content.pm.PackageManager$NameNotFoundException e
         5: .line 1182
            ldc "RingtoneManager"
            ldc "Unable to create package context"
            aload 2 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
         6: .line 1183
            aconst_null
            areturn
        end local 2 // android.content.pm.PackageManager$NameNotFoundException e
        end local 1 // int userId
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0  context  Landroid/content/Context;
            0    7     1   userId  I
            5    7     2        e  Landroid/content/pm/PackageManager$NameNotFoundException;
      Exception table:
        from    to  target  type
           0     3       4  Class android.content.pm.PackageManager$NameNotFoundException
    MethodParameters:
         Name  Flags
      context  
      userId   
}
SourceFile: "RingtoneManager.java"
NestMembers:
  android.media.RingtoneManager$NewRingtoneScanner
InnerClasses:
  public NameNotFoundException = android.content.pm.PackageManager$NameNotFoundException of android.content.pm.PackageManager
  public abstract Stub = android.media.IAudioService$Stub of android.media.IAudioService
  private NewRingtoneScanner = android.media.RingtoneManager$NewRingtoneScanner of android.media.RingtoneManager
  public AutoCloseInputStream = android.os.ParcelFileDescriptor$AutoCloseInputStream of android.os.ParcelFileDescriptor
  public final Audio = android.provider.MediaStore$Audio of android.provider.MediaStore
  public final Media = android.provider.MediaStore$Audio$Media of android.provider.MediaStore$Audio
  public final Secure = android.provider.Settings$Secure of android.provider.Settings
  public final System = android.provider.Settings$System of android.provider.Settings