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

  private android.location.GeocoderParams mParams;
    descriptor: Landroid/location/GeocoderParams;
    flags: (0x0002) ACC_PRIVATE

  private android.location.ILocationManager mService;
    descriptor: Landroid/location/ILocationManager;
    flags: (0x0002) ACC_PRIVATE

  public static boolean isPresent();
    descriptor: ()Z
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=0
         0: .line 60
            ldc "location"
            invokestatic android.os.ServiceManager.getService:(Ljava/lang/String;)Landroid/os/IBinder;
            astore 0 /* b */
        start local 0 // android.os.IBinder b
         1: .line 61
            aload 0 /* b */
            invokestatic android.location.ILocationManager$Stub.asInterface:(Landroid/os/IBinder;)Landroid/location/ILocationManager;
            astore 1 /* lm */
        start local 1 // android.location.ILocationManager lm
         2: .line 63
            aload 1 /* lm */
            invokeinterface android.location.ILocationManager.geocoderIsPresent:()Z
         3: ireturn
         4: .line 64
      StackMap locals: android.os.IBinder android.location.ILocationManager
      StackMap stack: android.os.RemoteException
            astore 2 /* e */
        start local 2 // android.os.RemoteException e
         5: .line 65
            ldc "Geocoder"
            ldc "isPresent: got RemoteException"
            aload 2 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
         6: .line 66
            iconst_0
            ireturn
        end local 2 // android.os.RemoteException e
        end local 1 // android.location.ILocationManager lm
        end local 0 // android.os.IBinder b
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            1    7     0     b  Landroid/os/IBinder;
            2    7     1    lm  Landroid/location/ILocationManager;
            5    7     2     e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           2     3       4  Class android.os.RemoteException

  public void <init>(android.content.Context, java.util.Locale);
    descriptor: (Landroid/content/Context;Ljava/util/Locale;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // android.location.Geocoder this
        start local 1 // android.content.Context context
        start local 2 // java.util.Locale locale
         0: .line 79
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 80
            aload 2 /* locale */
            ifnonnull 3
         2: .line 81
            new java.lang.NullPointerException
            dup
            ldc "locale == null"
            invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 83
      StackMap locals: android.location.Geocoder android.content.Context java.util.Locale
      StackMap stack:
            aload 0 /* this */
            new android.location.GeocoderParams
            dup
            aload 1 /* context */
            aload 2 /* locale */
            invokespecial android.location.GeocoderParams.<init>:(Landroid/content/Context;Ljava/util/Locale;)V
            putfield android.location.Geocoder.mParams:Landroid/location/GeocoderParams;
         4: .line 84
            ldc "location"
            invokestatic android.os.ServiceManager.getService:(Ljava/lang/String;)Landroid/os/IBinder;
            astore 3 /* b */
        start local 3 // android.os.IBinder b
         5: .line 85
            aload 0 /* this */
            aload 3 /* b */
            invokestatic android.location.ILocationManager$Stub.asInterface:(Landroid/os/IBinder;)Landroid/location/ILocationManager;
            putfield android.location.Geocoder.mService:Landroid/location/ILocationManager;
         6: .line 86
            return
        end local 3 // android.os.IBinder b
        end local 2 // java.util.Locale locale
        end local 1 // android.content.Context context
        end local 0 // android.location.Geocoder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Landroid/location/Geocoder;
            0    7     1  context  Landroid/content/Context;
            0    7     2   locale  Ljava/util/Locale;
            5    7     3        b  Landroid/os/IBinder;
    MethodParameters:
         Name  Flags
      context  
      locale   

  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.location.Geocoder this
        start local 1 // android.content.Context context
         0: .line 95
            aload 0 /* this */
            aload 1 /* context */
            invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
            invokespecial android.location.Geocoder.<init>:(Landroid/content/Context;Ljava/util/Locale;)V
         1: .line 96
            return
        end local 1 // android.content.Context context
        end local 0 // android.location.Geocoder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/location/Geocoder;
            0    2     1  context  Landroid/content/Context;
    MethodParameters:
         Name  Flags
      context  

  public java.util.List<android.location.Address> getFromLocation(double, double, int);
    descriptor: (DDI)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=8, args_size=4
        start local 0 // android.location.Geocoder this
        start local 1 // double latitude
        start local 3 // double longitude
        start local 5 // int maxResults
         0: .line 125
            dload 1 /* latitude */
            ldc -90.0
            dcmpg
            iflt 1
            dload 1 /* latitude */
            ldc 90.0
            dcmpl
            ifle 2
         1: .line 126
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "latitude == "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            dload 1 /* latitude */
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 128
      StackMap locals:
      StackMap stack:
            dload 3 /* longitude */
            ldc -180.0
            dcmpg
            iflt 3
            dload 3 /* longitude */
            ldc 180.0
            dcmpl
            ifle 4
         3: .line 129
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "longitude == "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            dload 3 /* longitude */
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 132
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 6 /* results */
        start local 6 // java.util.List results
         5: .line 133
            aload 0 /* this */
            getfield android.location.Geocoder.mService:Landroid/location/ILocationManager;
            dload 1 /* latitude */
            dload 3 /* longitude */
            iload 5 /* maxResults */
         6: .line 134
            aload 0 /* this */
            getfield android.location.Geocoder.mParams:Landroid/location/GeocoderParams;
            aload 6 /* results */
         7: .line 133
            invokeinterface android.location.ILocationManager.getFromLocation:(DDILandroid/location/GeocoderParams;Ljava/util/List;)Ljava/lang/String;
            astore 7 /* ex */
        start local 7 // java.lang.String ex
         8: .line 135
            aload 7 /* ex */
            ifnull 10
         9: .line 136
            new java.io.IOException
            dup
            aload 7 /* ex */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 138
      StackMap locals: java.util.List java.lang.String
      StackMap stack:
            aload 6 /* results */
        11: areturn
        end local 7 // java.lang.String ex
        end local 6 // java.util.List results
        12: .line 140
      StackMap locals: android.location.Geocoder double double int
      StackMap stack: android.os.RemoteException
            astore 6 /* e */
        start local 6 // android.os.RemoteException e
        13: .line 141
            ldc "Geocoder"
            ldc "getFromLocation: got RemoteException"
            aload 6 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        14: .line 142
            aconst_null
            areturn
        end local 6 // android.os.RemoteException e
        end local 5 // int maxResults
        end local 3 // double longitude
        end local 1 // double latitude
        end local 0 // android.location.Geocoder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0        this  Landroid/location/Geocoder;
            0   15     1    latitude  D
            0   15     3   longitude  D
            0   15     5  maxResults  I
            5   12     6     results  Ljava/util/List<Landroid/location/Address;>;
            8   12     7          ex  Ljava/lang/String;
           13   15     6           e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           4    11      12  Class android.os.RemoteException
    Exceptions:
      throws java.io.IOException
    Signature: (DDI)Ljava/util/List<Landroid/location/Address;>;
    MethodParameters:
            Name  Flags
      latitude    
      longitude   
      maxResults  

  public java.util.List<android.location.Address> getFromLocationName(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=13, locals=5, args_size=3
        start local 0 // android.location.Geocoder this
        start local 1 // java.lang.String locationName
        start local 2 // int maxResults
         0: .line 170
            aload 1 /* locationName */
            ifnonnull 2
         1: .line 171
            new java.lang.IllegalArgumentException
            dup
            ldc "locationName == null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 174
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 3 /* results */
        start local 3 // java.util.List results
         3: .line 175
            aload 0 /* this */
            getfield android.location.Geocoder.mService:Landroid/location/ILocationManager;
            aload 1 /* locationName */
         4: .line 176
            dconst_0
            dconst_0
            dconst_0
            dconst_0
            iload 2 /* maxResults */
            aload 0 /* this */
            getfield android.location.Geocoder.mParams:Landroid/location/GeocoderParams;
            aload 3 /* results */
         5: .line 175
            invokeinterface android.location.ILocationManager.getFromLocationName:(Ljava/lang/String;DDDDILandroid/location/GeocoderParams;Ljava/util/List;)Ljava/lang/String;
            astore 4 /* ex */
        start local 4 // java.lang.String ex
         6: .line 177
            aload 4 /* ex */
            ifnull 8
         7: .line 178
            new java.io.IOException
            dup
            aload 4 /* ex */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
         8: .line 180
      StackMap locals: java.util.List java.lang.String
      StackMap stack:
            aload 3 /* results */
         9: areturn
        end local 4 // java.lang.String ex
        end local 3 // java.util.List results
        10: .line 182
      StackMap locals: android.location.Geocoder java.lang.String int
      StackMap stack: android.os.RemoteException
            astore 3 /* e */
        start local 3 // android.os.RemoteException e
        11: .line 183
            ldc "Geocoder"
            ldc "getFromLocationName: got RemoteException"
            aload 3 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        12: .line 184
            aconst_null
            areturn
        end local 3 // android.os.RemoteException e
        end local 2 // int maxResults
        end local 1 // java.lang.String locationName
        end local 0 // android.location.Geocoder this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   13     0          this  Landroid/location/Geocoder;
            0   13     1  locationName  Ljava/lang/String;
            0   13     2    maxResults  I
            3   10     3       results  Ljava/util/List<Landroid/location/Address;>;
            6   10     4            ex  Ljava/lang/String;
           11   13     3             e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
           2     9      10  Class android.os.RemoteException
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/String;I)Ljava/util/List<Landroid/location/Address;>;
    MethodParameters:
              Name  Flags
      locationName  
      maxResults    

  public java.util.List<android.location.Address> getFromLocationName(java.lang.String, int, double, double, double, double);
    descriptor: (Ljava/lang/String;IDDDD)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=13, locals=13, args_size=7
        start local 0 // android.location.Geocoder this
        start local 1 // java.lang.String locationName
        start local 2 // int maxResults
        start local 3 // double lowerLeftLatitude
        start local 5 // double lowerLeftLongitude
        start local 7 // double upperRightLatitude
        start local 9 // double upperRightLongitude
         0: .line 226
            aload 1 /* locationName */
            ifnonnull 2
         1: .line 227
            new java.lang.IllegalArgumentException
            dup
            ldc "locationName == null"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 229
      StackMap locals:
      StackMap stack:
            dload 3 /* lowerLeftLatitude */
            ldc -90.0
            dcmpg
            iflt 3
            dload 3 /* lowerLeftLatitude */
            ldc 90.0
            dcmpl
            ifle 6
         3: .line 230
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "lowerLeftLatitude == "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         4: .line 231
            dload 3 /* lowerLeftLatitude */
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 230
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 233
      StackMap locals:
      StackMap stack:
            dload 5 /* lowerLeftLongitude */
            ldc -180.0
            dcmpg
            iflt 7
            dload 5 /* lowerLeftLongitude */
            ldc 180.0
            dcmpl
            ifle 10
         7: .line 234
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "lowerLeftLongitude == "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         8: .line 235
            dload 5 /* lowerLeftLongitude */
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 234
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 237
      StackMap locals:
      StackMap stack:
            dload 7 /* upperRightLatitude */
            ldc -90.0
            dcmpg
            iflt 11
            dload 7 /* upperRightLatitude */
            ldc 90.0
            dcmpl
            ifle 14
        11: .line 238
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "upperRightLatitude == "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        12: .line 239
            dload 7 /* upperRightLatitude */
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        13: .line 238
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        14: .line 241
      StackMap locals:
      StackMap stack:
            dload 9 /* upperRightLongitude */
            ldc -180.0
            dcmpg
            iflt 15
            dload 9 /* upperRightLongitude */
            ldc 180.0
            dcmpl
            ifle 18
        15: .line 242
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "upperRightLongitude == "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        16: .line 243
            dload 9 /* upperRightLongitude */
            invokevirtual java.lang.StringBuilder.append:(D)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        17: .line 242
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        18: .line 246
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            astore 11 /* result */
        start local 11 // java.util.ArrayList result
        19: .line 247
            aload 0 /* this */
            getfield android.location.Geocoder.mService:Landroid/location/ILocationManager;
            aload 1 /* locationName */
        20: .line 248
            dload 3 /* lowerLeftLatitude */
            dload 5 /* lowerLeftLongitude */
            dload 7 /* upperRightLatitude */
            dload 9 /* upperRightLongitude */
        21: .line 249
            iload 2 /* maxResults */
            aload 0 /* this */
            getfield android.location.Geocoder.mParams:Landroid/location/GeocoderParams;
            aload 11 /* result */
        22: .line 247
            invokeinterface android.location.ILocationManager.getFromLocationName:(Ljava/lang/String;DDDDILandroid/location/GeocoderParams;Ljava/util/List;)Ljava/lang/String;
            astore 12 /* ex */
        start local 12 // java.lang.String ex
        23: .line 250
            aload 12 /* ex */
            ifnull 25
        24: .line 251
            new java.io.IOException
            dup
            aload 12 /* ex */
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        25: .line 253
      StackMap locals: java.util.ArrayList java.lang.String
      StackMap stack:
            aload 11 /* result */
        26: areturn
        end local 12 // java.lang.String ex
        end local 11 // java.util.ArrayList result
        27: .line 255
      StackMap locals: android.location.Geocoder java.lang.String int double double double double
      StackMap stack: android.os.RemoteException
            astore 11 /* e */
        start local 11 // android.os.RemoteException e
        28: .line 256
            ldc "Geocoder"
            ldc "getFromLocationName: got RemoteException"
            aload 11 /* e */
            invokestatic android.util.Log.e:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
            pop
        29: .line 257
            aconst_null
            areturn
        end local 11 // android.os.RemoteException e
        end local 9 // double upperRightLongitude
        end local 7 // double upperRightLatitude
        end local 5 // double lowerLeftLongitude
        end local 3 // double lowerLeftLatitude
        end local 2 // int maxResults
        end local 1 // java.lang.String locationName
        end local 0 // android.location.Geocoder this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   30     0                 this  Landroid/location/Geocoder;
            0   30     1         locationName  Ljava/lang/String;
            0   30     2           maxResults  I
            0   30     3    lowerLeftLatitude  D
            0   30     5   lowerLeftLongitude  D
            0   30     7   upperRightLatitude  D
            0   30     9  upperRightLongitude  D
           19   27    11               result  Ljava/util/ArrayList<Landroid/location/Address;>;
           23   27    12                   ex  Ljava/lang/String;
           28   30    11                    e  Landroid/os/RemoteException;
      Exception table:
        from    to  target  type
          18    26      27  Class android.os.RemoteException
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/String;IDDDD)Ljava/util/List<Landroid/location/Address;>;
    MethodParameters:
                     Name  Flags
      locationName         
      maxResults           
      lowerLeftLatitude    
      lowerLeftLongitude   
      upperRightLatitude   
      upperRightLongitude  
}
SourceFile: "Geocoder.java"
InnerClasses:
  public abstract Stub = android.location.ILocationManager$Stub of android.location.ILocationManager