public Observable<Address> getFromLocationName(@NonNull final String keyword) {
        if (!Geocoder.isPresent()) {
            return Observable.error(new RuntimeException("no Android geocoder"));
        }
        return Observable.defer(() -> {
            try {
                return addressesToObservable(geocoder.getFromLocationName(keyword, 20));
            } catch (final Exception e) {
                Log.i("Unable to use Android reverse geocoder: " + e.getMessage());
                return Observable.error(e);
            }
        }).subscribeOn(AndroidRxUtils.networkScheduler);
    }
Retrieve addresses from a textual location using Android geocoding API. The work happens on the network
scheduler.

@param keyword the location
@return an observable containing zero or more locations
@see Geocoder#getFromLocationName(String, int)
main/src/main/java/cgeo/geocaching/address/AndroidGeocoder.java