public class android.location.CountryDetector
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.location.CountryDetector
  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: "CountryDetector"

  private final android.location.ICountryDetector mService;
    descriptor: Landroid/location/ICountryDetector;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.HashMap<android.location.CountryListener, android.location.CountryDetector$ListenerTransport> mListeners;
    descriptor: Ljava/util/HashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/HashMap<Landroid/location/CountryListener;Landroid/location/CountryDetector$ListenerTransport;>;

  public void <init>(android.location.ICountryDetector);
    descriptor: (Landroid/location/ICountryDetector;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.location.CountryDetector this
        start local 1 // android.location.ICountryDetector service
         0: .line 90
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 91
            aload 0 /* this */
            aload 1 /* service */
            putfield android.location.CountryDetector.mService:Landroid/location/ICountryDetector;
         2: .line 92
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield android.location.CountryDetector.mListeners:Ljava/util/HashMap;
         3: .line 93
            return
        end local 1 // android.location.ICountryDetector service
        end local 0 // android.location.CountryDetector this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Landroid/location/CountryDetector;
            0    4     1  service  Landroid/location/ICountryDetector;
    MethodParameters:
         Name  Flags
      service  

  public android.location.Country detectCountry();
    descriptor: ()Landroid/location/Country;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // android.location.CountryDetector this
         0: .line 103
            aload 0 /* this */
            getfield android.location.CountryDetector.mService:Landroid/location/ICountryDetector;
            invokeinterface android.location.ICountryDetector.detectCountry:()Landroid/location/Country;
         1: areturn
         2: .line 104
      StackMap locals:
      StackMap stack: android.os.RemoteException
            astore 1 /* e */
        start local 1 // android.os.RemoteException e
         3: .line 105
            ldc "CountryDetector"
            ldc "detectCountry: RemoteException"
            aload 1 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
         4: .line 106
            aconst_null
            areturn
        end local 1 // android.os.RemoteException e
        end local 0 // android.location.CountryDetector this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Landroid/location/CountryDetector;
            3    5     1     e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           0     1       2  Class android.os.RemoteException

  public void addCountryListener(android.location.CountryListener, android.os.Looper);
    descriptor: (Landroid/location/CountryListener;Landroid/os/Looper;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=3
        start local 0 // android.location.CountryDetector this
        start local 1 // android.location.CountryListener listener
        start local 2 // android.os.Looper looper
         0: .line 120
            aload 0 /* this */
            getfield android.location.CountryDetector.mListeners:Ljava/util/HashMap;
            dup
            astore 3
            monitorenter
         1: .line 121
            aload 0 /* this */
            getfield android.location.CountryDetector.mListeners:Ljava/util/HashMap;
            aload 1 /* listener */
            invokevirtual java.util.HashMap.containsKey:(Ljava/lang/Object;)Z
            ifne 8
         2: .line 122
            new android.location.CountryDetector$ListenerTransport
            dup
            aload 1 /* listener */
            aload 2 /* looper */
            invokespecial android.location.CountryDetector$ListenerTransport.<init>:(Landroid/location/CountryListener;Landroid/os/Looper;)V
            astore 4 /* transport */
        start local 4 // android.location.CountryDetector$ListenerTransport transport
         3: .line 124
            aload 0 /* this */
            getfield android.location.CountryDetector.mService:Landroid/location/ICountryDetector;
            aload 4 /* transport */
            invokeinterface android.location.ICountryDetector.addCountryListener:(Landroid/location/ICountryListener;)V
         4: .line 125
            aload 0 /* this */
            getfield android.location.CountryDetector.mListeners:Ljava/util/HashMap;
            aload 1 /* listener */
            aload 4 /* transport */
            invokevirtual java.util.HashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 126
            goto 8
      StackMap locals: android.location.CountryDetector android.location.CountryListener android.os.Looper java.util.HashMap android.location.CountryDetector$ListenerTransport
      StackMap stack: android.os.RemoteException
         6: astore 5 /* e */
        start local 5 // android.os.RemoteException e
         7: .line 127
            ldc "CountryDetector"
            ldc "addCountryListener: RemoteException"
            aload 5 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 5 // android.os.RemoteException e
        end local 4 // android.location.CountryDetector$ListenerTransport transport
         8: .line 120
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 3
            monitorexit
        11: athrow
        12: .line 131
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.os.Looper looper
        end local 1 // android.location.CountryListener listener
        end local 0 // android.location.CountryDetector this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Landroid/location/CountryDetector;
            0   13     1   listener  Landroid/location/CountryListener;
            0   13     2     looper  Landroid/os/Looper;
            3    8     4  transport  Landroid/location/CountryDetector$ListenerTransport;
            7    8     5          e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           3     5       6  Class android.os.RemoteException
           1     9      10  any
          10    11      10  any
    MethodParameters:
          Name  Flags
      listener  
      looper    

  public void removeCountryListener(android.location.CountryListener);
    descriptor: (Landroid/location/CountryListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // android.location.CountryDetector this
        start local 1 // android.location.CountryListener listener
         0: .line 137
            aload 0 /* this */
            getfield android.location.CountryDetector.mListeners:Ljava/util/HashMap;
            dup
            astore 2
            monitorenter
         1: .line 138
            aload 0 /* this */
            getfield android.location.CountryDetector.mListeners:Ljava/util/HashMap;
            aload 1 /* listener */
            invokevirtual java.util.HashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.location.CountryDetector$ListenerTransport
            astore 3 /* transport */
        start local 3 // android.location.CountryDetector$ListenerTransport transport
         2: .line 139
            aload 3 /* transport */
            ifnull 8
         3: .line 141
            aload 0 /* this */
            getfield android.location.CountryDetector.mListeners:Ljava/util/HashMap;
            aload 1 /* listener */
            invokevirtual java.util.HashMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         4: .line 142
            aload 0 /* this */
            getfield android.location.CountryDetector.mService:Landroid/location/ICountryDetector;
            aload 3 /* transport */
            invokeinterface android.location.ICountryDetector.removeCountryListener:(Landroid/location/ICountryListener;)V
         5: .line 143
            goto 8
      StackMap locals: android.location.CountryDetector android.location.CountryListener java.util.HashMap android.location.CountryDetector$ListenerTransport
      StackMap stack: android.os.RemoteException
         6: astore 4 /* e */
        start local 4 // android.os.RemoteException e
         7: .line 144
            ldc "CountryDetector"
            ldc "removeCountryListener: RemoteException"
            aload 4 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        end local 4 // android.os.RemoteException e
        end local 3 // android.location.CountryDetector$ListenerTransport transport
         8: .line 137
      StackMap locals:
      StackMap stack:
            aload 2
            monitorexit
         9: goto 12
      StackMap locals:
      StackMap stack: java.lang.Throwable
        10: aload 2
            monitorexit
        11: athrow
        12: .line 148
      StackMap locals:
      StackMap stack:
            return
        end local 1 // android.location.CountryListener listener
        end local 0 // android.location.CountryDetector this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   13     0       this  Landroid/location/CountryDetector;
            0   13     1   listener  Landroid/location/CountryListener;
            2    8     3  transport  Landroid/location/CountryDetector$ListenerTransport;
            7    8     4          e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           3     5       6  Class android.os.RemoteException
           1     9      10  any
          10    11      10  any
    MethodParameters:
          Name  Flags
      listener  
}
SourceFile: "CountryDetector.java"
NestMembers:
  android.location.CountryDetector$ListenerTransport  android.location.CountryDetector$ListenerTransport$1
InnerClasses:
  private final ListenerTransport = android.location.CountryDetector$ListenerTransport of android.location.CountryDetector