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

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.telephony.mbms.MbmsUtils this
         0: .line 36
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // android.telephony.mbms.MbmsUtils this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/telephony/mbms/MbmsUtils;

  public static boolean isContainedIn(java.io.File, java.io.File);
    descriptor: (Ljava/io/File;Ljava/io/File;)Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=2
        start local 0 // java.io.File parent
        start local 1 // java.io.File child
         0: .line 41
            aload 0 /* parent */
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 2 /* parentPath */
        start local 2 // java.lang.String parentPath
         1: .line 42
            aload 1 /* child */
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 3 /* childPath */
        start local 3 // java.lang.String childPath
         2: .line 43
            aload 3 /* childPath */
            aload 2 /* parentPath */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
         3: ireturn
        end local 3 // java.lang.String childPath
        end local 2 // java.lang.String parentPath
         4: .line 44
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 2 /* e */
        start local 2 // java.io.IOException e
         5: .line 45
            new java.lang.RuntimeException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Failed to resolve canonical paths: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 2 /* e */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
        end local 2 // java.io.IOException e
        end local 1 // java.io.File child
        end local 0 // java.io.File parent
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0      parent  Ljava/io/File;
            0    6     1       child  Ljava/io/File;
            1    4     2  parentPath  Ljava/lang/String;
            2    4     3   childPath  Ljava/lang/String;
            5    6     2           e  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           0     3       4  Class java.io.IOException
    MethodParameters:
        Name  Flags
      parent  
      child   

  public static android.content.ComponentName toComponentName(android.content.pm.ComponentInfo);
    descriptor: (Landroid/content/pm/ComponentInfo;)Landroid/content/ComponentName;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.content.pm.ComponentInfo ci
         0: .line 50
            new android.content.ComponentName
            dup
            aload 0 /* ci */
            getfield android.content.pm.ComponentInfo.packageName:Ljava/lang/String;
            aload 0 /* ci */
            getfield android.content.pm.ComponentInfo.name:Ljava/lang/String;
            invokespecial android.content.ComponentName.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            areturn
        end local 0 // android.content.pm.ComponentInfo ci
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    ci  Landroid/content/pm/ComponentInfo;
    MethodParameters:
      Name  Flags
      ci    

  public static android.content.ComponentName getOverrideServiceName(android.content.Context, java.lang.String);
    descriptor: (Landroid/content/Context;Ljava/lang/String;)Landroid/content/ComponentName;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // android.content.Context context
        start local 1 // java.lang.String serviceAction
         0: .line 54
            aconst_null
            astore 2 /* metaDataKey */
        start local 2 // java.lang.String metaDataKey
         1: .line 55
            aload 1 /* serviceAction */
            dup
            astore 3
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 2
          -1374878107: 2
           -407466459: 3
              default: 7
          }
      StackMap locals: java.lang.String java.lang.String
      StackMap stack:
         2: aload 3
            ldc "android.telephony.action.EmbmsStreaming"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            goto 7
      StackMap locals:
      StackMap stack:
         3: aload 3
            ldc "android.telephony.action.EmbmsDownload"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
            goto 7
         4: .line 57
      StackMap locals:
      StackMap stack:
            ldc "mbms-download-service-override"
            astore 2 /* metaDataKey */
         5: .line 58
            goto 7
         6: .line 60
      StackMap locals:
      StackMap stack:
            ldc "mbms-streaming-service-override"
            astore 2 /* metaDataKey */
         7: .line 63
      StackMap locals:
      StackMap stack:
            aload 2 /* metaDataKey */
            ifnonnull 9
         8: .line 64
            aconst_null
            areturn
         9: .line 69
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            invokevirtual android.content.Context.getPackageManager:()Landroid/content/pm/PackageManager;
        10: .line 70
            aload 0 /* context */
            invokevirtual android.content.Context.getPackageName:()Ljava/lang/String;
            sipush 128
            invokevirtual android.content.pm.PackageManager.getApplicationInfo:(Ljava/lang/String;I)Landroid/content/pm/ApplicationInfo;
        11: .line 69
            astore 4 /* appInfo */
        start local 4 // android.content.pm.ApplicationInfo appInfo
        12: .line 71
            goto 15
        end local 4 // android.content.pm.ApplicationInfo appInfo
      StackMap locals:
      StackMap stack: android.content.pm.PackageManager$NameNotFoundException
        13: pop
        14: .line 72
            aconst_null
            areturn
        start local 4 // android.content.pm.ApplicationInfo appInfo
        15: .line 74
      StackMap locals: android.content.Context java.lang.String java.lang.String top android.content.pm.ApplicationInfo
      StackMap stack:
            aload 4 /* appInfo */
            getfield android.content.pm.ApplicationInfo.metaData:Landroid/os/Bundle;
            ifnonnull 17
        16: .line 75
            aconst_null
            areturn
        17: .line 77
      StackMap locals:
      StackMap stack:
            aload 4 /* appInfo */
            getfield android.content.pm.ApplicationInfo.metaData:Landroid/os/Bundle;
            aload 2 /* metaDataKey */
            invokevirtual android.os.Bundle.getString:(Ljava/lang/String;)Ljava/lang/String;
            astore 5 /* serviceComponent */
        start local 5 // java.lang.String serviceComponent
        18: .line 78
            aload 5 /* serviceComponent */
            ifnonnull 20
        19: .line 79
            aconst_null
            areturn
        20: .line 81
      StackMap locals: java.lang.String
      StackMap stack:
            aload 5 /* serviceComponent */
            invokestatic android.content.ComponentName.unflattenFromString:(Ljava/lang/String;)Landroid/content/ComponentName;
            areturn
        end local 5 // java.lang.String serviceComponent
        end local 4 // android.content.pm.ApplicationInfo appInfo
        end local 2 // java.lang.String metaDataKey
        end local 1 // java.lang.String serviceAction
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   21     0           context  Landroid/content/Context;
            0   21     1     serviceAction  Ljava/lang/String;
            1   21     2       metaDataKey  Ljava/lang/String;
           12   13     4           appInfo  Landroid/content/pm/ApplicationInfo;
           15   21     4           appInfo  Landroid/content/pm/ApplicationInfo;
           18   21     5  serviceComponent  Ljava/lang/String;
      Exception table:
        from    to  target  type
           9    12      13  Class android.content.pm.PackageManager$NameNotFoundException
    MethodParameters:
               Name  Flags
      context        
      serviceAction  

  public static android.content.pm.ServiceInfo getMiddlewareServiceInfo(android.content.Context, java.lang.String);
    descriptor: (Landroid/content/Context;Ljava/lang/String;)Landroid/content/pm/ServiceInfo;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=6, args_size=2
        start local 0 // android.content.Context context
        start local 1 // java.lang.String serviceAction
         0: .line 86
            aload 0 /* context */
            invokevirtual android.content.Context.getPackageManager:()Landroid/content/pm/PackageManager;
            astore 2 /* packageManager */
        start local 2 // android.content.pm.PackageManager packageManager
         1: .line 87
            new android.content.Intent
            dup
            invokespecial android.content.Intent.<init>:()V
            astore 3 /* queryIntent */
        start local 3 // android.content.Intent queryIntent
         2: .line 88
            aload 3 /* queryIntent */
            aload 1 /* serviceAction */
            invokevirtual android.content.Intent.setAction:(Ljava/lang/String;)Landroid/content/Intent;
            pop
         3: .line 90
            aload 0 /* context */
            aload 1 /* serviceAction */
            invokestatic android.telephony.mbms.MbmsUtils.getOverrideServiceName:(Landroid/content/Context;Ljava/lang/String;)Landroid/content/ComponentName;
            astore 4 /* overrideService */
        start local 4 // android.content.ComponentName overrideService
         4: .line 92
            aload 4 /* overrideService */
            ifnonnull 9
         5: .line 93
            aload 2 /* packageManager */
            aload 3 /* queryIntent */
         6: .line 94
            ldc 1048576
         7: .line 93
            invokevirtual android.content.pm.PackageManager.queryIntentServices:(Landroid/content/Intent;I)Ljava/util/List;
            astore 5 /* services */
        start local 5 // java.util.List services
         8: .line 95
            goto 13
        end local 5 // java.util.List services
         9: .line 96
      StackMap locals: android.content.pm.PackageManager android.content.Intent android.content.ComponentName
      StackMap stack:
            aload 3 /* queryIntent */
            aload 4 /* overrideService */
            invokevirtual android.content.Intent.setComponent:(Landroid/content/ComponentName;)Landroid/content/Intent;
            pop
        10: .line 97
            aload 2 /* packageManager */
            aload 3 /* queryIntent */
        11: .line 98
            ldc 131072
        12: .line 97
            invokevirtual android.content.pm.PackageManager.queryIntentServices:(Landroid/content/Intent;I)Ljava/util/List;
            astore 5 /* services */
        start local 5 // java.util.List services
        13: .line 101
      StackMap locals: java.util.List
      StackMap stack:
            aload 5 /* services */
            ifnull 14
            aload 5 /* services */
            invokeinterface java.util.List.size:()I
            ifne 16
        14: .line 102
      StackMap locals:
      StackMap stack:
            ldc "MbmsUtils"
            ldc "No MBMS services found, cannot get service info"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        15: .line 103
            aconst_null
            areturn
        16: .line 106
      StackMap locals:
      StackMap stack:
            aload 5 /* services */
            invokeinterface java.util.List.size:()I
            iconst_1
            if_icmple 19
        17: .line 107
            ldc "MbmsUtils"
            ldc "More than one MBMS service found, cannot get unique service"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        18: .line 108
            aconst_null
            areturn
        19: .line 110
      StackMap locals:
      StackMap stack:
            aload 5 /* services */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.content.pm.ResolveInfo
            getfield android.content.pm.ResolveInfo.serviceInfo:Landroid/content/pm/ServiceInfo;
            areturn
        end local 5 // java.util.List services
        end local 4 // android.content.ComponentName overrideService
        end local 3 // android.content.Intent queryIntent
        end local 2 // android.content.pm.PackageManager packageManager
        end local 1 // java.lang.String serviceAction
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   20     0          context  Landroid/content/Context;
            0   20     1    serviceAction  Ljava/lang/String;
            1   20     2   packageManager  Landroid/content/pm/PackageManager;
            2   20     3      queryIntent  Landroid/content/Intent;
            4   20     4  overrideService  Landroid/content/ComponentName;
            8    9     5         services  Ljava/util/List<Landroid/content/pm/ResolveInfo;>;
           13   20     5         services  Ljava/util/List<Landroid/content/pm/ResolveInfo;>;
    MethodParameters:
               Name  Flags
      context        
      serviceAction  

  public static int startBinding(android.content.Context, java.lang.String, android.content.ServiceConnection);
    descriptor: (Landroid/content/Context;Ljava/lang/String;Landroid/content/ServiceConnection;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=5, args_size=3
        start local 0 // android.content.Context context
        start local 1 // java.lang.String serviceAction
        start local 2 // android.content.ServiceConnection serviceConnection
         0: .line 115
            new android.content.Intent
            dup
            invokespecial android.content.Intent.<init>:()V
            astore 3 /* bindIntent */
        start local 3 // android.content.Intent bindIntent
         1: .line 117
            aload 0 /* context */
            aload 1 /* serviceAction */
            invokestatic android.telephony.mbms.MbmsUtils.getMiddlewareServiceInfo:(Landroid/content/Context;Ljava/lang/String;)Landroid/content/pm/ServiceInfo;
         2: .line 116
            astore 4 /* mbmsServiceInfo */
        start local 4 // android.content.pm.ServiceInfo mbmsServiceInfo
         3: .line 119
            aload 4 /* mbmsServiceInfo */
            ifnonnull 5
         4: .line 120
            iconst_1
            ireturn
         5: .line 123
      StackMap locals: android.content.Intent android.content.pm.ServiceInfo
      StackMap stack:
            aload 3 /* bindIntent */
            aload 4 /* mbmsServiceInfo */
            invokestatic android.telephony.mbms.MbmsUtils.toComponentName:(Landroid/content/pm/ComponentInfo;)Landroid/content/ComponentName;
            invokevirtual android.content.Intent.setComponent:(Landroid/content/ComponentName;)Landroid/content/Intent;
            pop
         6: .line 125
            aload 0 /* context */
            aload 3 /* bindIntent */
            aload 2 /* serviceConnection */
            iconst_1
            invokevirtual android.content.Context.bindService:(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z
            pop
         7: .line 126
            iconst_0
            ireturn
        end local 4 // android.content.pm.ServiceInfo mbmsServiceInfo
        end local 3 // android.content.Intent bindIntent
        end local 2 // android.content.ServiceConnection serviceConnection
        end local 1 // java.lang.String serviceAction
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    8     0            context  Landroid/content/Context;
            0    8     1      serviceAction  Ljava/lang/String;
            0    8     2  serviceConnection  Landroid/content/ServiceConnection;
            1    8     3         bindIntent  Landroid/content/Intent;
            3    8     4    mbmsServiceInfo  Landroid/content/pm/ServiceInfo;
    MethodParameters:
                   Name  Flags
      context            
      serviceAction      
      serviceConnection  

  public static java.io.File getEmbmsTempFileDirForService(android.content.Context, java.lang.String);
    descriptor: (Landroid/content/Context;Ljava/lang/String;)Ljava/io/File;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // android.content.Context context
        start local 1 // java.lang.String serviceId
         0: .line 135
            aload 1 /* serviceId */
            ldc "[^a-zA-Z0-9_]"
            ldc "_"
            invokevirtual java.lang.String.replaceAll:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
            astore 2 /* sanitizedServiceId */
        start local 2 // java.lang.String sanitizedServiceId
         1: .line 137
            aload 0 /* context */
            invokestatic android.telephony.mbms.MbmsTempFileProvider.getEmbmsTempFileDir:(Landroid/content/Context;)Ljava/io/File;
            astore 3 /* embmsTempFileDir */
        start local 3 // java.io.File embmsTempFileDir
         2: .line 139
            new java.io.File
            dup
            aload 3 /* embmsTempFileDir */
            aload 2 /* sanitizedServiceId */
            invokespecial java.io.File.<init>:(Ljava/io/File;Ljava/lang/String;)V
            areturn
        end local 3 // java.io.File embmsTempFileDir
        end local 2 // java.lang.String sanitizedServiceId
        end local 1 // java.lang.String serviceId
        end local 0 // android.content.Context context
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0    3     0             context  Landroid/content/Context;
            0    3     1           serviceId  Ljava/lang/String;
            1    3     2  sanitizedServiceId  Ljava/lang/String;
            2    3     3    embmsTempFileDir  Ljava/io/File;
    MethodParameters:
           Name  Flags
      context    
      serviceId  
}
SourceFile: "MbmsUtils.java"
InnerClasses:
  public NameNotFoundException = android.content.pm.PackageManager$NameNotFoundException of android.content.pm.PackageManager