diff options
author | Samuel Tardieu <sam@rfc1149.net> | 2014-11-23 14:27:57 +0100 |
---|---|---|
committer | Samuel Tardieu <sam@rfc1149.net> | 2014-11-23 14:27:57 +0100 |
commit | 4c5f4a1991c129ec03aa8978bf107c34ebbbee73 (patch) | |
tree | f7e1de84ae8d6f4440af3068cefc3e4bd53846b6 | |
parent | b21333aee698cd535cf9ac3edb7d8c2a52a559be (diff) | |
download | cgeo-4c5f4a1991c129ec03aa8978bf107c34ebbbee73.zip cgeo-4c5f4a1991c129ec03aa8978bf107c34ebbbee73.tar.gz cgeo-4c5f4a1991c129ec03aa8978bf107c34ebbbee73.tar.bz2 |
Remove used-once interface IGeoData
IGeoData was only implemented by the GeoData class. We can as well use
it directly.
21 files changed, 77 insertions, 98 deletions
diff --git a/main/src/cgeo/geocaching/AbstractDialogFragment.java b/main/src/cgeo/geocaching/AbstractDialogFragment.java index d680a41..0f0ea2f 100644 --- a/main/src/cgeo/geocaching/AbstractDialogFragment.java +++ b/main/src/cgeo/geocaching/AbstractDialogFragment.java @@ -9,8 +9,8 @@ import cgeo.geocaching.gcvote.GCVote; import cgeo.geocaching.gcvote.GCVoteRating; import cgeo.geocaching.location.Geopoint; import cgeo.geocaching.location.Units; +import cgeo.geocaching.sensors.GeoData; import cgeo.geocaching.sensors.GeoDirHandler; -import cgeo.geocaching.sensors.IGeoData; import cgeo.geocaching.settings.Settings; import cgeo.geocaching.ui.CacheDetailsCreator; import cgeo.geocaching.ui.LoggingUI; @@ -254,7 +254,7 @@ public abstract class AbstractDialogFragment extends DialogFragment implements C private final GeoDirHandler geoUpdate = new GeoDirHandler() { @Override - public void updateGeoData(final IGeoData geo) { + public void updateGeoData(final GeoData geo) { try { if (cache != null && cache.getCoords() != null) { cacheDistance.setText(Units.getDistanceFromKilometers(geo.getCoords().distanceTo(cache.getCoords()))); @@ -271,7 +271,7 @@ public abstract class AbstractDialogFragment extends DialogFragment implements C * @param geo * location */ - protected void onUpdateGeoData(final IGeoData geo) { + protected void onUpdateGeoData(final GeoData geo) { // do nothing by default } diff --git a/main/src/cgeo/geocaching/CacheDetailActivity.java b/main/src/cgeo/geocaching/CacheDetailActivity.java index 3fe33a3..169238b 100644 --- a/main/src/cgeo/geocaching/CacheDetailActivity.java +++ b/main/src/cgeo/geocaching/CacheDetailActivity.java @@ -25,8 +25,8 @@ import cgeo.geocaching.list.StoredList; import cgeo.geocaching.location.Units; import cgeo.geocaching.network.HtmlImage; import cgeo.geocaching.network.Network; +import cgeo.geocaching.sensors.GeoData; import cgeo.geocaching.sensors.GeoDirHandler; -import cgeo.geocaching.sensors.IGeoData; import cgeo.geocaching.settings.Settings; import cgeo.geocaching.ui.AbstractCachingPageViewCreator; import cgeo.geocaching.ui.AnchorAwareLinkMovementMethod; @@ -546,7 +546,7 @@ public class CacheDetailActivity extends AbstractViewPagerActivity<CacheDetailAc } @Override - public void updateGeoData(final IGeoData geo) { + public void updateGeoData(final GeoData geo) { final CacheDetailActivity activity = activityRef.get(); if (activity == null) { return; diff --git a/main/src/cgeo/geocaching/CacheListActivity.java b/main/src/cgeo/geocaching/CacheListActivity.java index 4a654bd..a95cba6 100644 --- a/main/src/cgeo/geocaching/CacheListActivity.java +++ b/main/src/cgeo/geocaching/CacheListActivity.java @@ -42,8 +42,8 @@ import cgeo.geocaching.network.Cookies; import cgeo.geocaching.network.DownloadProgress; import cgeo.geocaching.network.Network; import cgeo.geocaching.network.Send2CgeoDownloader; +import cgeo.geocaching.sensors.GeoData; import cgeo.geocaching.sensors.GeoDirHandler; -import cgeo.geocaching.sensors.IGeoData; import cgeo.geocaching.settings.Settings; import cgeo.geocaching.settings.SettingsActivity; import cgeo.geocaching.sorting.CacheComparator; @@ -144,7 +144,7 @@ public class CacheListActivity extends AbstractListActivity implements FilteredA } @Override - public void updateGeoData(final IGeoData geoData) { + public void updateGeoData(final GeoData geoData) { adapter.setActualCoordinates(geoData.getCoords()); } diff --git a/main/src/cgeo/geocaching/CgeoApplication.java b/main/src/cgeo/geocaching/CgeoApplication.java index 2366f58..4cf61ee 100644 --- a/main/src/cgeo/geocaching/CgeoApplication.java +++ b/main/src/cgeo/geocaching/CgeoApplication.java @@ -5,7 +5,6 @@ import cgeo.geocaching.sensors.GeoData; import cgeo.geocaching.sensors.GeoDataProvider; import cgeo.geocaching.sensors.GpsStatusProvider; import cgeo.geocaching.sensors.GpsStatusProvider.Status; -import cgeo.geocaching.sensors.IGeoData; import cgeo.geocaching.sensors.OrientationProvider; import cgeo.geocaching.sensors.RotationProvider; import cgeo.geocaching.settings.Settings; @@ -33,17 +32,17 @@ public class CgeoApplication extends Application { public boolean showLoginToast = true; //login toast shown just once. private boolean liveMapHintShownInThisSession = false; // livemap hint has been shown private static CgeoApplication instance; - private Observable<IGeoData> geoDataObservable; - private Observable<IGeoData> geoDataObservableLowPower; + private Observable<GeoData> geoDataObservable; + private Observable<GeoData> geoDataObservableLowPower; private Observable<Float> directionObservable; private Observable<Status> gpsStatusObservable; - @NonNull private volatile IGeoData currentGeo = GeoData.DUMMY_LOCATION; + @NonNull private volatile GeoData currentGeo = GeoData.DUMMY_LOCATION; private volatile boolean hasValidLocation = false; private volatile float currentDirection = 0.0f; private boolean isGooglePlayServicesAvailable = false; - private final Action1<IGeoData> rememberGeodataAction = new Action1<IGeoData>() { + private final Action1<GeoData> rememberGeodataAction = new Action1<GeoData>() { @Override - public void call(final IGeoData geoData) { + public void call(final GeoData geoData) { currentGeo = geoData; hasValidLocation = true; } @@ -144,7 +143,7 @@ public class CgeoApplication extends Application { DataStore.removeAllFromCache(); } - public Observable<IGeoData> geoDataObservable(final boolean lowPower) { + public Observable<GeoData> geoDataObservable(final boolean lowPower) { return lowPower ? geoDataObservableLowPower : geoDataObservable; } @@ -160,7 +159,7 @@ public class CgeoApplication extends Application { } @NonNull - public IGeoData currentGeo() { + public GeoData currentGeo() { return currentGeo; } diff --git a/main/src/cgeo/geocaching/CompassActivity.java b/main/src/cgeo/geocaching/CompassActivity.java index 273b3c4..1a1bad2 100644 --- a/main/src/cgeo/geocaching/CompassActivity.java +++ b/main/src/cgeo/geocaching/CompassActivity.java @@ -8,9 +8,9 @@ import cgeo.geocaching.enumerations.LoadFlags; import cgeo.geocaching.location.Geopoint; import cgeo.geocaching.location.Units; import cgeo.geocaching.maps.CGeoMap; +import cgeo.geocaching.sensors.GeoData; import cgeo.geocaching.sensors.GeoDirHandler; import cgeo.geocaching.sensors.GpsStatusProvider.Status; -import cgeo.geocaching.sensors.IGeoData; import cgeo.geocaching.settings.Settings; import cgeo.geocaching.speech.SpeechService; import cgeo.geocaching.ui.CompassView; @@ -140,7 +140,7 @@ public class CompassActivity extends AbstractActionBarActivity { private void forceRefresh() { // Force a refresh of location and direction when data is available. final CgeoApplication app = CgeoApplication.getInstance(); - final IGeoData geo = app.currentGeo(); + final GeoData geo = app.currentGeo(); geoDirHandler.updateGeoDir(geo, app.currentDirection()); } @@ -261,7 +261,7 @@ public class CompassActivity extends AbstractActionBarActivity { cacheInfoView.setText(description); } - private void updateDistanceInfo(final IGeoData geo) { + private void updateDistanceInfo(final GeoData geo) { if (dstCoords == null) { return; } @@ -284,7 +284,7 @@ public class CompassActivity extends AbstractActionBarActivity { private final GeoDirHandler geoDirHandler = new GeoDirHandler() { @Override - public void updateGeoDir(final IGeoData geo, final float dir) { + public void updateGeoDir(final GeoData geo, final float dir) { try { navType.setText(res.getString(geo.getLocationProvider().resourceId)); diff --git a/main/src/cgeo/geocaching/EditWaypointActivity.java b/main/src/cgeo/geocaching/EditWaypointActivity.java index 81d4db5..7cfb9f9 100644 --- a/main/src/cgeo/geocaching/EditWaypointActivity.java +++ b/main/src/cgeo/geocaching/EditWaypointActivity.java @@ -10,8 +10,8 @@ import cgeo.geocaching.enumerations.WaypointType; import cgeo.geocaching.location.DistanceParser; import cgeo.geocaching.location.Geopoint; import cgeo.geocaching.location.GeopointFormatter; +import cgeo.geocaching.sensors.GeoData; import cgeo.geocaching.sensors.GeoDirHandler; -import cgeo.geocaching.sensors.IGeoData; import cgeo.geocaching.settings.Settings; import cgeo.geocaching.ui.dialog.CoordinatesInputDialog; import cgeo.geocaching.ui.dialog.Dialogs; @@ -265,7 +265,7 @@ public class EditWaypointActivity extends AbstractActionBarActivity implements C final private GeoDirHandler geoDirHandler = new GeoDirHandler() { @Override - public void updateGeoData(final IGeoData geo) { + public void updateGeoData(final GeoData geo) { try { buttonLat.setHint(geo.getCoords().format(GeopointFormatter.Format.LAT_DECMINUTE_RAW)); buttonLon.setHint(geo.getCoords().format(GeopointFormatter.Format.LON_DECMINUTE_RAW)); diff --git a/main/src/cgeo/geocaching/MainActivity.java b/main/src/cgeo/geocaching/MainActivity.java index 8dd210f..321eaca 100644 --- a/main/src/cgeo/geocaching/MainActivity.java +++ b/main/src/cgeo/geocaching/MainActivity.java @@ -15,10 +15,10 @@ import cgeo.geocaching.location.Geopoint; import cgeo.geocaching.location.Units; import cgeo.geocaching.maps.CGeoMap; import cgeo.geocaching.network.Network; +import cgeo.geocaching.sensors.GeoData; import cgeo.geocaching.sensors.GeoDirHandler; import cgeo.geocaching.sensors.GpsStatusProvider; import cgeo.geocaching.sensors.GpsStatusProvider.Status; -import cgeo.geocaching.sensors.IGeoData; import cgeo.geocaching.settings.Settings; import cgeo.geocaching.settings.SettingsActivity; import cgeo.geocaching.ui.dialog.Dialogs; @@ -552,7 +552,7 @@ public class MainActivity extends AbstractActionBarActivity { private class UpdateLocation extends GeoDirHandler { @Override - public void updateGeoData(final IGeoData geo) { + public void updateGeoData(final GeoData geo) { if (!nearestView.isClickable()) { nearestView.setFocusable(true); nearestView.setClickable(true); diff --git a/main/src/cgeo/geocaching/NavigateAnyPointActivity.java b/main/src/cgeo/geocaching/NavigateAnyPointActivity.java index f8ae06d..9535004 100644 --- a/main/src/cgeo/geocaching/NavigateAnyPointActivity.java +++ b/main/src/cgeo/geocaching/NavigateAnyPointActivity.java @@ -10,8 +10,8 @@ import cgeo.geocaching.apps.cache.navi.NavigationAppFactory; import cgeo.geocaching.location.DistanceParser; import cgeo.geocaching.location.Geopoint; import cgeo.geocaching.location.GeopointFormatter; +import cgeo.geocaching.sensors.GeoData; import cgeo.geocaching.sensors.GeoDirHandler; -import cgeo.geocaching.sensors.IGeoData; import cgeo.geocaching.settings.Settings; import cgeo.geocaching.ui.AbstractViewHolder; import cgeo.geocaching.ui.NavigationActionProvider; @@ -458,7 +458,7 @@ public class NavigateAnyPointActivity extends AbstractActionBarActivity implemen private final GeoDirHandler geoDirHandler = new GeoDirHandler() { @Override - public void updateGeoData(final IGeoData geo) { + public void updateGeoData(final GeoData geo) { try { latButton.setHint(geo.getCoords().format(GeopointFormatter.Format.LAT_DECMINUTE_RAW)); lonButton.setHint(geo.getCoords().format(GeopointFormatter.Format.LON_DECMINUTE_RAW)); diff --git a/main/src/cgeo/geocaching/SearchActivity.java b/main/src/cgeo/geocaching/SearchActivity.java index 64dd4d9..2789486 100644 --- a/main/src/cgeo/geocaching/SearchActivity.java +++ b/main/src/cgeo/geocaching/SearchActivity.java @@ -12,7 +12,7 @@ import cgeo.geocaching.connector.trackable.TrackableConnector; import cgeo.geocaching.location.Geopoint; import cgeo.geocaching.location.GeopointFormatter; import cgeo.geocaching.search.AutoCompleteAdapter; -import cgeo.geocaching.sensors.IGeoData; +import cgeo.geocaching.sensors.GeoData; import cgeo.geocaching.settings.Settings; import cgeo.geocaching.ui.dialog.CoordinatesInputDialog; import cgeo.geocaching.ui.dialog.Dialogs; @@ -309,7 +309,7 @@ public class SearchActivity extends AbstractActionBarActivity implements Coordin final String lonText = StringUtils.trim(buttonLongitude.getText().toString()); if (StringUtils.isEmpty(latText) || StringUtils.isEmpty(lonText)) { - final IGeoData geo = app.currentGeo(); + final GeoData geo = app.currentGeo(); buttonLatitude.setText(geo.getCoords().format(GeopointFormatter.Format.LAT_DECMINUTE)); buttonLongitude.setText(geo.getCoords().format(GeopointFormatter.Format.LON_DECMINUTE)); } else { diff --git a/main/src/cgeo/geocaching/WaypointPopupFragment.java b/main/src/cgeo/geocaching/WaypointPopupFragment.java index a86d7ce..83dad09 100644 --- a/main/src/cgeo/geocaching/WaypointPopupFragment.java +++ b/main/src/cgeo/geocaching/WaypointPopupFragment.java @@ -6,7 +6,7 @@ import butterknife.InjectView; import cgeo.geocaching.apps.cache.navi.NavigationAppFactory; import cgeo.geocaching.location.Geopoint; import cgeo.geocaching.location.Units; -import cgeo.geocaching.sensors.IGeoData; +import cgeo.geocaching.sensors.GeoData; import cgeo.geocaching.ui.CacheDetailsCreator; import cgeo.geocaching.utils.Log; @@ -48,7 +48,7 @@ public class WaypointPopupFragment extends AbstractDialogFragment { } @Override - protected void onUpdateGeoData(IGeoData geo) { + protected void onUpdateGeoData(GeoData geo) { if (waypoint != null && waypoint.getCoords() != null) { waypointDistance.setText(Units.getDistanceFromKilometers(geo.getCoords().distanceTo(waypoint.getCoords()))); waypointDistance.bringToFront(); diff --git a/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsDirectionApp.java b/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsDirectionApp.java index 62cb67f..1b5aa87 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsDirectionApp.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsDirectionApp.java @@ -4,7 +4,7 @@ import cgeo.geocaching.CgeoApplication; import cgeo.geocaching.R; import cgeo.geocaching.location.Geopoint; import cgeo.geocaching.maps.MapProviderFactory; -import cgeo.geocaching.sensors.IGeoData; +import cgeo.geocaching.sensors.GeoData; import cgeo.geocaching.utils.Log; import android.app.Activity; @@ -25,7 +25,7 @@ public class GoogleMapsDirectionApp extends AbstractPointNavigationApp { @Override public void navigate(final Activity activity, final Geopoint coords) { try { - final IGeoData geo = CgeoApplication.getInstance().currentGeo(); + final GeoData geo = CgeoApplication.getInstance().currentGeo(); activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri .parse("http://maps.google.com/maps?f=d&saddr=" + geo.getCoords().getLatitude() + "," + geo.getCoords().getLongitude() + "&daddr=" diff --git a/main/src/cgeo/geocaching/filter/DistanceFilter.java b/main/src/cgeo/geocaching/filter/DistanceFilter.java index 923f46a..ae96c67 100644 --- a/main/src/cgeo/geocaching/filter/DistanceFilter.java +++ b/main/src/cgeo/geocaching/filter/DistanceFilter.java @@ -2,7 +2,7 @@ package cgeo.geocaching.filter; import cgeo.geocaching.CgeoApplication; import cgeo.geocaching.Geocache; -import cgeo.geocaching.sensors.IGeoData; +import cgeo.geocaching.sensors.GeoData; import cgeo.geocaching.R; import cgeo.geocaching.location.Geopoint; @@ -10,7 +10,7 @@ import java.util.ArrayList; import java.util.List; class DistanceFilter extends AbstractFilter { - private final IGeoData geo; + private final GeoData geo; private final int minDistance; private final int maxDistance; diff --git a/main/src/cgeo/geocaching/maps/CGeoMap.java b/main/src/cgeo/geocaching/maps/CGeoMap.java index ea3ceec..233f0e6 100644 --- a/main/src/cgeo/geocaching/maps/CGeoMap.java +++ b/main/src/cgeo/geocaching/maps/CGeoMap.java @@ -32,8 +32,8 @@ import cgeo.geocaching.maps.interfaces.MapProvider; import cgeo.geocaching.maps.interfaces.MapSource; import cgeo.geocaching.maps.interfaces.MapViewImpl; import cgeo.geocaching.maps.interfaces.OnMapDragListener; +import cgeo.geocaching.sensors.GeoData; import cgeo.geocaching.sensors.GeoDirHandler; -import cgeo.geocaching.sensors.IGeoData; import cgeo.geocaching.settings.Settings; import cgeo.geocaching.ui.dialog.LiveMapInfoDialogBuilder; import cgeo.geocaching.utils.AngleUtils; @@ -896,7 +896,7 @@ public class CGeoMap extends AbstractMap implements ViewFactory { } // Set center of map to my location if appropriate. - private void myLocationInMiddle(final IGeoData geo) { + private void myLocationInMiddle(final GeoData geo) { if (followMyLocation) { centerMap(geo.getCoords()); } @@ -927,7 +927,7 @@ public class CGeoMap extends AbstractMap implements ViewFactory { } @Override - public void updateGeoDir(final IGeoData geo, final float dir) { + public void updateGeoDir(final GeoData geo, final float dir) { currentLocation = geo.getLocation(); currentHeading = AngleUtils.getDirectionNow(dir); repaintPositionOverlay(); diff --git a/main/src/cgeo/geocaching/playservices/LocationProvider.java b/main/src/cgeo/geocaching/playservices/LocationProvider.java index 43ca2c1..7bf7850 100644 --- a/main/src/cgeo/geocaching/playservices/LocationProvider.java +++ b/main/src/cgeo/geocaching/playservices/LocationProvider.java @@ -1,7 +1,6 @@ package cgeo.geocaching.playservices; import cgeo.geocaching.sensors.GeoData; -import cgeo.geocaching.sensors.IGeoData; import cgeo.geocaching.settings.Settings; import cgeo.geocaching.utils.Log; import cgeo.geocaching.utils.RxUtils; @@ -38,7 +37,7 @@ public class LocationProvider implements ConnectionCallbacks, OnConnectionFailed private static final AtomicInteger mostPreciseCount = new AtomicInteger(0); private static final AtomicInteger lowPowerCount = new AtomicInteger(0); private static LocationProvider instance = null; - private static ReplaySubject<IGeoData> subject = ReplaySubject.createWithSize(1); + private static ReplaySubject<GeoData> subject = ReplaySubject.createWithSize(1); private final LocationClient locationClient; private static synchronized LocationProvider getInstance(final Context context) { @@ -63,11 +62,11 @@ public class LocationProvider implements ConnectionCallbacks, OnConnectionFailed } } - private static Observable<IGeoData> get(final Context context, final AtomicInteger reference) { + private static Observable<GeoData> get(final Context context, final AtomicInteger reference) { final LocationProvider instance = getInstance(context); - return Observable.create(new OnSubscribe<IGeoData>() { + return Observable.create(new OnSubscribe<GeoData>() { @Override - public void call(final Subscriber<? super IGeoData> subscriber) { + public void call(final Subscriber<? super GeoData> subscriber) { if (reference.incrementAndGet() == 1) { instance.updateRequest(); } @@ -84,9 +83,9 @@ public class LocationProvider implements ConnectionCallbacks, OnConnectionFailed }, 2500, TimeUnit.MILLISECONDS); } })); - subscriber.add(subject.subscribe(new Action1<IGeoData>() { + subscriber.add(subject.subscribe(new Action1<GeoData>() { @Override - public void call(final IGeoData geoData) { + public void call(final GeoData geoData) { subscriber.onNext(geoData); } })); @@ -94,24 +93,24 @@ public class LocationProvider implements ConnectionCallbacks, OnConnectionFailed }); } - public static Observable<IGeoData> getMostPrecise(final Context context) { + public static Observable<GeoData> getMostPrecise(final Context context) { return get(context, mostPreciseCount); } - public static Observable<IGeoData> getLowPower(final Context context) { + public static Observable<GeoData> getLowPower(final Context context) { // Low-power location without the last stored location - final Observable<IGeoData> lowPowerObservable = get(context, lowPowerCount).skip(1); + final Observable<GeoData> lowPowerObservable = get(context, lowPowerCount).skip(1); // High-power location without the last stored location - final Observable<IGeoData> highPowerObservable = get(context, mostPreciseCount).skip(1); + final Observable<GeoData> highPowerObservable = get(context, mostPreciseCount).skip(1); // Use either low-power (with a 6 seconds head start) or high-power observables to obtain a location // no less precise than 20 meters. - final Observable<IGeoData> untilPreciseEnoughObservable = + final Observable<GeoData> untilPreciseEnoughObservable = lowPowerObservable.mergeWith(highPowerObservable.delaySubscription(6, TimeUnit.SECONDS)) - .lift(RxUtils.operatorTakeUntil(new Func1<IGeoData, Boolean>() { + .lift(RxUtils.operatorTakeUntil(new Func1<GeoData, Boolean>() { @Override - public Boolean call(final IGeoData geoData) { + public Boolean call(final GeoData geoData) { return geoData.getAccuracy() <= 20; } })); @@ -131,7 +130,7 @@ public class LocationProvider implements ConnectionCallbacks, OnConnectionFailed * @param context the context used to retrieve the system services */ private LocationProvider(final Context context) { - final IGeoData initialLocation = GeoData.getInitialLocation(context); + final GeoData initialLocation = GeoData.getInitialLocation(context); subject.onNext(initialLocation != null ? initialLocation : GeoData.DUMMY_LOCATION); locationClient = new LocationClient(context, this, this); locationClient.connect(); diff --git a/main/src/cgeo/geocaching/sensors/GeoData.java b/main/src/cgeo/geocaching/sensors/GeoData.java index 2db3f07..d0e6389 100644 --- a/main/src/cgeo/geocaching/sensors/GeoData.java +++ b/main/src/cgeo/geocaching/sensors/GeoData.java @@ -3,13 +3,14 @@ package cgeo.geocaching.sensors; import cgeo.geocaching.location.Geopoint; import cgeo.geocaching.utils.Log; +import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import android.content.Context; import android.location.Location; import android.location.LocationManager; -public class GeoData extends Location implements IGeoData { +public class GeoData extends Location { public static final String INITIAL_PROVIDER = "initial"; public static final String FUSED_PROVIDER = "fused"; @@ -19,6 +20,7 @@ public class GeoData extends Location implements IGeoData { // rather than waiting forever for a position update which might never come, we emulate it by placing // the user arbitrarly at Paris Notre-Dame, one of the most visited free tourist attractions in the world. final public static GeoData DUMMY_LOCATION = new GeoData(new Location(INITIAL_PROVIDER)); + static { DUMMY_LOCATION.setLatitude(48.85308); DUMMY_LOCATION.setLongitude(2.34962); @@ -39,7 +41,6 @@ public class GeoData extends Location implements IGeoData { return gpsLocation.getTime() >= netLocation.getTime() ? gpsLocation : netLocation; } - @Override public Location getLocation() { return this; } @@ -61,17 +62,17 @@ public class GeoData extends Location implements IGeoData { return LocationProviderType.LAST; } - @Override public LocationProviderType getLocationProvider() { return getLocationProviderType(getProvider()); } - @Override + @NonNull public Geopoint getCoords() { return new Geopoint(this); } - @Nullable public static GeoData getInitialLocation(final Context context) { + @Nullable + public static GeoData getInitialLocation(final Context context) { final LocationManager geoManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); if (geoManager == null) { Log.w("No LocationManager available"); @@ -96,10 +97,8 @@ public class GeoData extends Location implements IGeoData { } } - - public static boolean isRecent(@Nullable final Location location) { return location != null && System.currentTimeMillis() <= location.getTime() + 30000; } -} +}
\ No newline at end of file diff --git a/main/src/cgeo/geocaching/sensors/GeoDataProvider.java b/main/src/cgeo/geocaching/sensors/GeoDataProvider.java index 837a17a..b3680fb 100644 --- a/main/src/cgeo/geocaching/sensors/GeoDataProvider.java +++ b/main/src/cgeo/geocaching/sensors/GeoDataProvider.java @@ -15,7 +15,7 @@ import android.os.Bundle; import java.util.concurrent.TimeUnit; -public class GeoDataProvider extends LooperCallbacks<IGeoData> { +public class GeoDataProvider extends LooperCallbacks<GeoData> { private final Context context; private final LocationManager geoManager; @@ -37,13 +37,13 @@ public class GeoDataProvider extends LooperCallbacks<IGeoData> { geoManager = (LocationManager) this.context.getSystemService(Context.LOCATION_SERVICE); } - public static Observable<IGeoData> create(final Context context) { + public static Observable<GeoData> create(final Context context) { return Observable.create(new GeoDataProvider(context)); } @Override public void onStart() { - final IGeoData initialLocation = GeoData.getInitialLocation(context); + final GeoData initialLocation = GeoData.getInitialLocation(context); if (initialLocation != null) { subject.onNext(initialLocation); } @@ -97,7 +97,7 @@ public class GeoDataProvider extends LooperCallbacks<IGeoData> { private void assign(final Location location) { // We do not necessarily get signalled when satellites go to 0/0. - final IGeoData current = new GeoData(location); + final GeoData current = new GeoData(location); subject.onNext(current); } diff --git a/main/src/cgeo/geocaching/sensors/GeoDirHandler.java b/main/src/cgeo/geocaching/sensors/GeoDirHandler.java index d127784..9227206 100644 --- a/main/src/cgeo/geocaching/sensors/GeoDirHandler.java +++ b/main/src/cgeo/geocaching/sensors/GeoDirHandler.java @@ -17,7 +17,7 @@ import rx.subscriptions.CompositeSubscription; /** * GeoData and Direction handler. * <p> - * To use this class, override {@link #updateGeoDir(IGeoData, float)}. You need to start the handler using + * To use this class, override {@link #updateGeoDir(cgeo.geocaching.sensors.GeoData, float)}. You need to start the handler using * {@link #start(int)}. A good place to do so might be the {@code onResume} method of the Activity. Stop the Handler * accordingly in {@code onPause}. * @@ -40,7 +40,7 @@ public abstract class GeoDirHandler { * * @param geoData the new geographical data */ - public void updateGeoData(final IGeoData geoData) { + public void updateGeoData(final GeoData geoData) { } /** @@ -62,21 +62,21 @@ public abstract class GeoDirHandler { * If the device goes fast enough, or if the compass use is not enabled in the settings, * the GPS direction information will be used instead of the compass one. */ - public void updateGeoDir(final IGeoData geoData, final float direction) { + public void updateGeoDir(final GeoData geoData, final float direction) { } private static Observable<Float> fixedDirection() { return app.directionObservable().map(new Func1<Float, Float>() { @Override public Float call(final Float direction) { - final IGeoData geoData = app.currentGeo(); + final GeoData geoData = app.currentGeo(); return fixDirection(geoData, direction); } }); } - private static float fixDirection(final IGeoData geoData, final float direction) { + private static float fixDirection(final GeoData geoData, final float direction) { final boolean useGPSBearing = !Settings.isUseCompass() || geoData.getSpeed() > 5; return useGPSBearing ? AngleUtils.reverseDirectionNow(geoData.getBearing()) : direction; } @@ -89,9 +89,9 @@ public abstract class GeoDirHandler { final CompositeSubscription subscriptions = new CompositeSubscription(); final boolean lowPower = (flags & LOW_POWER) != 0; if ((flags & UPDATE_GEODATA) != 0) { - subscriptions.add(app.geoDataObservable(lowPower).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<IGeoData>() { + subscriptions.add(app.geoDataObservable(lowPower).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<GeoData>() { @Override - public void call(final IGeoData geoData) { + public void call(final GeoData geoData) { updateGeoData(geoData); } })); @@ -105,14 +105,14 @@ public abstract class GeoDirHandler { })); } if ((flags & UPDATE_GEODIR) != 0) { - subscriptions.add(Observable.combineLatest(app.geoDataObservable(lowPower), app.directionObservable(), new Func2<IGeoData, Float, ImmutablePair<IGeoData, Float>>() { + subscriptions.add(Observable.combineLatest(app.geoDataObservable(lowPower), app.directionObservable(), new Func2<GeoData, Float, ImmutablePair<GeoData, Float>>() { @Override - public ImmutablePair<IGeoData, Float> call(final IGeoData geoData, final Float direction) { + public ImmutablePair<GeoData, Float> call(final GeoData geoData, final Float direction) { return ImmutablePair.of(geoData, fixDirection(geoData, direction)); } - }).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<ImmutablePair<IGeoData, Float>>() { + }).observeOn(AndroidSchedulers.mainThread()).subscribe(new Action1<ImmutablePair<GeoData, Float>>() { @Override - public void call(final ImmutablePair<IGeoData, Float> geoDir) { + public void call(final ImmutablePair<GeoData, Float> geoDir) { updateGeoDir(geoDir.left, geoDir.right); } })); diff --git a/main/src/cgeo/geocaching/sensors/IGeoData.java b/main/src/cgeo/geocaching/sensors/IGeoData.java deleted file mode 100644 index 949203a..0000000 --- a/main/src/cgeo/geocaching/sensors/IGeoData.java +++ /dev/null @@ -1,18 +0,0 @@ -package cgeo.geocaching.sensors; - -import cgeo.geocaching.location.Geopoint; - -import org.eclipse.jdt.annotation.NonNull; - -import android.location.Location; - -public interface IGeoData { - - public Location getLocation(); - public LocationProviderType getLocationProvider(); - - @NonNull public Geopoint getCoords(); - public float getBearing(); - public float getSpeed(); - public float getAccuracy(); -} diff --git a/main/src/cgeo/geocaching/speech/SpeechService.java b/main/src/cgeo/geocaching/speech/SpeechService.java index b40cac5..b22e061 100644 --- a/main/src/cgeo/geocaching/speech/SpeechService.java +++ b/main/src/cgeo/geocaching/speech/SpeechService.java @@ -4,8 +4,8 @@ import cgeo.geocaching.Intents; import cgeo.geocaching.R; import cgeo.geocaching.activity.ActivityMixin; import cgeo.geocaching.location.Geopoint; +import cgeo.geocaching.sensors.GeoData; import cgeo.geocaching.sensors.GeoDirHandler; -import cgeo.geocaching.sensors.IGeoData; import cgeo.geocaching.settings.Settings; import cgeo.geocaching.utils.Log; @@ -47,7 +47,7 @@ public class SpeechService extends Service implements OnInitListener { final GeoDirHandler geoDirHandler = new GeoDirHandler() { @Override - public void updateGeoDir(final IGeoData newGeo, final float newDirection) { + public void updateGeoDir(final GeoData newGeo, final float newDirection) { position = newGeo.getCoords(); direction = newDirection; // avoid any calculation, if the delay since the last output is not long enough diff --git a/main/src/cgeo/geocaching/ui/CacheListAdapter.java b/main/src/cgeo/geocaching/ui/CacheListAdapter.java index ae449ec..f080761 100644 --- a/main/src/cgeo/geocaching/ui/CacheListAdapter.java +++ b/main/src/cgeo/geocaching/ui/CacheListAdapter.java @@ -10,7 +10,7 @@ import cgeo.geocaching.enumerations.CacheListType; import cgeo.geocaching.enumerations.CacheType; import cgeo.geocaching.filter.IFilter; import cgeo.geocaching.location.Geopoint; -import cgeo.geocaching.sensors.IGeoData; +import cgeo.geocaching.sensors.GeoData; import cgeo.geocaching.settings.Settings; import cgeo.geocaching.sorting.CacheComparator; import cgeo.geocaching.sorting.DistanceComparator; @@ -119,7 +119,7 @@ public class CacheListAdapter extends ArrayAdapter<Geocache> { public CacheListAdapter(final Activity activity, final List<Geocache> list, final CacheListType cacheListType) { super(activity, 0, list); - final IGeoData currentGeo = CgeoApplication.getInstance().currentGeo(); + final GeoData currentGeo = CgeoApplication.getInstance().currentGeo(); coords = currentGeo.getCoords(); this.res = activity.getResources(); this.list = list; diff --git a/main/src/cgeo/geocaching/ui/dialog/CoordinatesInputDialog.java b/main/src/cgeo/geocaching/ui/dialog/CoordinatesInputDialog.java index 8b1406f..197d4a7 100644 --- a/main/src/cgeo/geocaching/ui/dialog/CoordinatesInputDialog.java +++ b/main/src/cgeo/geocaching/ui/dialog/CoordinatesInputDialog.java @@ -9,7 +9,7 @@ import cgeo.geocaching.activity.Keyboard; import cgeo.geocaching.location.Geopoint; import cgeo.geocaching.location.Geopoint.ParseException; import cgeo.geocaching.location.GeopointFormatter; -import cgeo.geocaching.sensors.IGeoData; +import cgeo.geocaching.sensors.GeoData; import cgeo.geocaching.settings.Settings; import cgeo.geocaching.settings.Settings.CoordInputFormatEnum; import cgeo.geocaching.utils.ClipboardUtils; @@ -56,7 +56,7 @@ public class CoordinatesInputDialog extends DialogFragment { private static final String CACHECOORDS_ARG = "CACHECOORDS"; - public static CoordinatesInputDialog getInstance(final Geocache cache, final Geopoint gp, final IGeoData geo) { + public static CoordinatesInputDialog getInstance(final Geocache cache, final Geopoint gp, final GeoData geo) { final Bundle args = new Bundle(); |