diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2014-01-31 19:38:41 +0100 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2014-01-31 19:38:41 +0100 |
| commit | 0ab24e4e2a4033c34b62a4b6864958e78513592e (patch) | |
| tree | 973724fb790977548a5a6b2a395c0e0c2403c409 /main/src/cgeo/geocaching/apps | |
| parent | 3ce1488a9fafd44992d7a408146a9b1c3702f11e (diff) | |
| download | cgeo-0ab24e4e2a4033c34b62a4b6864958e78513592e.zip cgeo-0ab24e4e2a4033c34b62a4b6864958e78513592e.tar.gz cgeo-0ab24e4e2a4033c34b62a4b6864958e78513592e.tar.bz2 | |
#3581: have waypoint name in radar
Diffstat (limited to 'main/src/cgeo/geocaching/apps')
4 files changed, 57 insertions, 49 deletions
diff --git a/main/src/cgeo/geocaching/apps/cache/navi/AbstractPointNavigationApp.java b/main/src/cgeo/geocaching/apps/cache/navi/AbstractPointNavigationApp.java index 7cc5a4f..16b2513 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/AbstractPointNavigationApp.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/AbstractPointNavigationApp.java @@ -51,11 +51,21 @@ abstract class AbstractPointNavigationApp extends AbstractApp implements CacheNa return waypoint.getCoords() != null; } - protected static void addIntentExtras(final Geocache cache, final Intent intent) { + protected static void addIntentExtras(final Intent intent, final Waypoint waypoint) { + intent.putExtra("name", waypoint.getName()); + intent.putExtra("code", waypoint.getGeocode()); + } + + protected static void addIntentExtras(final Intent intent, final Geocache cache) { intent.putExtra("difficulty", cache.getDifficulty()); intent.putExtra("terrain", cache.getTerrain()); intent.putExtra("name", cache.getName()); intent.putExtra("code", cache.getGeocode()); intent.putExtra("size", cache.getSize().getL10n()); } + + protected static void addCoordinates(final Intent intent, final Geopoint coords) { + intent.putExtra("latitude", coords.getLatitude()); + intent.putExtra("longitude", coords.getLongitude()); + } } diff --git a/main/src/cgeo/geocaching/apps/cache/navi/AbstractRadarApp.java b/main/src/cgeo/geocaching/apps/cache/navi/AbstractRadarApp.java new file mode 100644 index 0000000..862dd34 --- /dev/null +++ b/main/src/cgeo/geocaching/apps/cache/navi/AbstractRadarApp.java @@ -0,0 +1,44 @@ +package cgeo.geocaching.apps.cache.navi; + +import cgeo.geocaching.Geocache; +import cgeo.geocaching.Waypoint; +import cgeo.geocaching.geopoint.Geopoint; + +import android.app.Activity; +import android.content.Intent; + +public abstract class AbstractRadarApp extends AbstractPointNavigationApp { + + private final String intentAction; + + protected AbstractRadarApp(final String name, final int id, final String intent, final String packageName) { + super(name, id, intent, packageName); + this.intentAction = intent; + } + + private Intent createIntent(final Geopoint point) { + final Intent intent = new Intent(intentAction); + addCoordinates(intent, point); + return intent; + } + + @Override + public void navigate(final Activity activity, final Geopoint point) { + activity.startActivity(createIntent(point)); + } + + @Override + public void navigate(final Activity activity, final Geocache cache) { + final Intent intent = createIntent(cache.getCoords()); + addIntentExtras(intent, cache); + activity.startActivity(intent); + } + + @Override + public void navigate(final Activity activity, final Waypoint waypoint) { + final Intent intent = createIntent(waypoint.getCoords()); + addIntentExtras(intent, waypoint); + activity.startActivity(intent); + } + +} diff --git a/main/src/cgeo/geocaching/apps/cache/navi/PebbleApp.java b/main/src/cgeo/geocaching/apps/cache/navi/PebbleApp.java index 9fe2fc1..a398fe2 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/PebbleApp.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/PebbleApp.java @@ -1,17 +1,12 @@ package cgeo.geocaching.apps.cache.navi;
-import cgeo.geocaching.Geocache;
import cgeo.geocaching.R;
-import cgeo.geocaching.geopoint.Geopoint;
-
-import android.app.Activity;
-import android.content.Intent;
/**
* Application for communication with the Pebble watch.
*
*/
-class PebbleApp extends AbstractPointNavigationApp {
+class PebbleApp extends AbstractRadarApp {
private static final String INTENT = "com.webmajstr.pebble_gc.NAVIGATE_TO";
private static final String PACKAGE_NAME = "com.webmajstr.pebble_gc";
@@ -20,21 +15,4 @@ class PebbleApp extends AbstractPointNavigationApp { super(getString(R.string.cache_menu_pebble), R.id.cache_app_pebble, INTENT, PACKAGE_NAME);
}
- @Override
- public void navigate(Activity activity, Geopoint point) {
- final Intent pebbleIntent = new Intent(INTENT);
- pebbleIntent.putExtra("latitude", point.getLatitude());
- pebbleIntent.putExtra("longitude", point.getLongitude());
- activity.startActivity(pebbleIntent);
- }
-
- @Override
- public void navigate(Activity activity, Geocache cache) {
- final Intent pebbleIntent = new Intent(INTENT);
- pebbleIntent.putExtra("latitude", cache.getCoords().getLatitude());
- pebbleIntent.putExtra("longitude", cache.getCoords().getLongitude());
- addIntentExtras(cache, pebbleIntent);
- activity.startActivity(pebbleIntent);
- }
-
}
\ No newline at end of file diff --git a/main/src/cgeo/geocaching/apps/cache/navi/RadarApp.java b/main/src/cgeo/geocaching/apps/cache/navi/RadarApp.java index 23e696b..e5aac6d 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/RadarApp.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/RadarApp.java @@ -1,13 +1,8 @@ package cgeo.geocaching.apps.cache.navi; -import cgeo.geocaching.Geocache; import cgeo.geocaching.R; -import cgeo.geocaching.geopoint.Geopoint; -import android.app.Activity; -import android.content.Intent; - -class RadarApp extends AbstractPointNavigationApp { +class RadarApp extends AbstractRadarApp { private static final String INTENT = "com.google.android.radar.SHOW_RADAR"; private static final String PACKAGE_NAME = "com.eclipsim.gpsstatus2"; @@ -16,23 +11,4 @@ class RadarApp extends AbstractPointNavigationApp { super(getString(R.string.cache_menu_radar), R.id.cache_app_radar, INTENT, PACKAGE_NAME); } - @Override - public void navigate(final Activity activity, final Geopoint point) { - final Intent radarIntent = createRadarIntent(point); - activity.startActivity(radarIntent); - } - - private static Intent createRadarIntent(final Geopoint point) { - final Intent radarIntent = new Intent(INTENT); - radarIntent.putExtra("latitude", (float) point.getLatitude()); - radarIntent.putExtra("longitude", (float) point.getLongitude()); - return radarIntent; - } - - @Override - public void navigate(final Activity activity, final Geocache cache) { - final Intent radarIntent = createRadarIntent(cache.getCoords()); - addIntentExtras(cache, radarIntent); - activity.startActivity(radarIntent); - } }
\ No newline at end of file |
