Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1e11e95f authored by Mike Lockwood's avatar Mike Lockwood Committed by Android (Google) Code Review
Browse files

Merge "Add Geocorder.isImplemented()" into kraken

parents 6c537e53 01ac80b7
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -82140,6 +82140,17 @@
<exception name="IOException" type="java.io.IOException">
</exception>
</method>
<method name="isImplemented"
 return="java.lang.Boolean"
 abstract="false"
 native="false"
 synchronized="false"
 static="true"
 final="false"
 deprecated="not deprecated"
 visibility="public"
>
</method>
</class>
<class name="GeocoderParams"
 extends="java.lang.Object"
+20 −1
Original line number Diff line number Diff line
@@ -40,7 +40,9 @@ import java.util.List;
 *
 * The Geocoder class requires a backend service that is not included in
 * the core android framework.  The Geocoder query methods will return an
 * empty list if there no backend service in the platform.
 * empty list if there no backend service in the platform.  Use the
 * isImplemented() method to determine whether a Geocoder implementation
 * exists.
 */
public final class Geocoder {
    private static final String TAG = "Geocoder";
@@ -48,6 +50,23 @@ public final class Geocoder {
    private GeocoderParams mParams;
    private ILocationManager mService;

    /**
     * Returns true if the Geocoder methods getFromLocation and
     * getFromLocationName are implemented.  Lack of network
     * connectivity may still cause these methods to return null or
     * empty lists.
     */
    public static Boolean isImplemented() {
        IBinder b = ServiceManager.getService(Context.LOCATION_SERVICE);
        ILocationManager lm = ILocationManager.Stub.asInterface(b);
        try {
            return lm.geocoderIsImplemented();
        } catch (RemoteException e) {
            Log.e(TAG, "isImplemented: got RemoteException", e);
            return false;
        }
    }

    /**
     * Constructs a Geocoder whose responses will be localized for the
     * given Locale.
+1 −0
Original line number Diff line number Diff line
@@ -67,6 +67,7 @@ interface ILocationManager
    // it need not be shared with other providers.
    void reportLocation(in Location location, boolean passive);

    boolean geocoderIsImplemented();
    String getFromLocation(double latitude, double longitude, int maxResults,
        in GeocoderParams params, out List<Address> addrs);
    String getFromLocationName(String locationName,
+4 −0
Original line number Diff line number Diff line
@@ -1940,6 +1940,10 @@ public class LocationManagerService extends ILocationManager.Stub implements Run

    // Geocoder

    public Boolean geocoderIsImplemented() {
        return mGeocodeProvider != null;
    }

    public String getFromLocation(double latitude, double longitude, int maxResults,
            GeocoderParams params, List<Address> addrs) {
        if (mGeocodeProvider != null) {