diff options
21 files changed, 84 insertions, 106 deletions
diff --git a/main/res/layout/init.xml b/main/res/layout/init.xml index 8450ff8..c09ac30 100644 --- a/main/res/layout/init.xml +++ b/main/res/layout/init.xml @@ -527,26 +527,6 @@ android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > - <CheckBox android:id="@+id/gnav" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="left" - android:padding="1px" - android:gravity="center" /> - <TextView - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="center_vertical" - android:gravity="left" - android:paddingRight="3dip" - android:textSize="14dip" - android:textColor="?text_color" - android:text="@string/init_nav" /> - </LinearLayout> - <LinearLayout - android:layout_width="fill_parent" - android:layout_height="wrap_content" - android:orientation="horizontal" > <CheckBox android:id="@+id/livelist" android:layout_width="wrap_content" android:layout_height="wrap_content" diff --git a/main/res/values-cs/strings.xml b/main/res/values-cs/strings.xml index bf43a6e..46f2446 100644 --- a/main/res/values-cs/strings.xml +++ b/main/res/values-cs/strings.xml @@ -467,7 +467,6 @@ <string name="cache_dialog_refresh_title">Aktualizace</string> <string name="cache_dialog_refresh_message">Aktualizuji detaily keše…</string> <string name="cache_menu_navigate">Navigovat</string> - <string name="cache_menu_tbt">Turn-by-turn</string> <string name="cache_menu_radar">Radar</string> <string name="cache_menu_map">Zobrazit na mapě</string> <string name="cache_menu_map_ext">Zobrazit na jiné mapě</string> diff --git a/main/res/values-da/strings.xml b/main/res/values-da/strings.xml index 7ff7408..885ad38 100644 --- a/main/res/values-da/strings.xml +++ b/main/res/values-da/strings.xml @@ -202,7 +202,6 @@ <string name="cache_dialog_refresh_title">Genindlæs</string> <string name="cache_dialog_refresh_message">Genindlæser cachedetaljer…</string> <string name="cache_menu_navigate">Naviger</string> - <string name="cache_menu_tbt">Vejvisning</string> <string name="cache_menu_radar">Radar</string> <string name="cache_menu_map">Vis på kort</string> <string name="cache_menu_map_ext">Vis på ext. kort</string> diff --git a/main/res/values-de/strings.xml b/main/res/values-de/strings.xml index d563608..43ae973 100644 --- a/main/res/values-de/strings.xml +++ b/main/res/values-de/strings.xml @@ -562,7 +562,8 @@ <string name="cache_dialog_watchlist_remove_title">Watchlist</string> <string name="cache_dialog_watchlist_remove_message">Entferne den Cache von deiner Watchlist…</string> <string name="cache_menu_navigate">Navigieren</string> - <string name="cache_menu_tbt">Google Maps Navigation</string> + <string name="cache_menu_navigation_drive">Navigation (Fahren)</string> + <string name="cache_menu_navigation_walk">Navigation (Gehen)</string> <string name="cache_menu_radar">Radar</string> <string name="cache_menu_map">Karte</string> <string name="cache_menu_map_static">Statische Karten</string> diff --git a/main/res/values-es/strings.xml b/main/res/values-es/strings.xml index 4fd9a29..b2a3673 100644 --- a/main/res/values-es/strings.xml +++ b/main/res/values-es/strings.xml @@ -452,7 +452,6 @@ <string name="cache_dialog_watchlist_remove_title">Lista de seguimiento</string> <string name="cache_dialog_watchlist_remove_message">Borrando escondite de tu Lista de seguimiento…</string> <string name="cache_menu_navigate">Navegar</string> - <string name="cache_menu_tbt">Paso a paso</string> <string name="cache_menu_radar">Radar</string> <string name="cache_menu_map">Ver en mapa</string> <string name="cache_menu_map_static">Mapas estáticos</string> diff --git a/main/res/values-fr/strings.xml b/main/res/values-fr/strings.xml index 62d397d..73d48f6 100644 --- a/main/res/values-fr/strings.xml +++ b/main/res/values-fr/strings.xml @@ -542,7 +542,6 @@ <string name="cache_dialog_watchlist_remove_title">Liste de suivi</string> <string name="cache_dialog_watchlist_remove_message">Retrait de la cache de votre liste de suivi…</string> <string name="cache_menu_navigate">Navigation</string> - <string name="cache_menu_tbt">Itinéraire</string> <string name="cache_menu_radar">Radar</string> <string name="cache_menu_map">Carte</string> <string name="cache_menu_map_static">Cartes statiques</string> diff --git a/main/res/values-hu/strings.xml b/main/res/values-hu/strings.xml index 3d95471..ffef6dd 100644 --- a/main/res/values-hu/strings.xml +++ b/main/res/values-hu/strings.xml @@ -463,7 +463,6 @@ <string name="cache_dialog_watchlist_remove_title">Figyelőlista</string> <string name="cache_dialog_watchlist_remove_message">Láda eltávolítása a figyelőlistádról…</string> <string name="cache_menu_navigate">Navigáció</string> - <string name="cache_menu_tbt">Lépésről lépésre</string> <string name="cache_menu_radar">Radar</string> <string name="cache_menu_map">Térkép</string> <string name="cache_menu_map_static">Statikus térképek</string> diff --git a/main/res/values-it/strings.xml b/main/res/values-it/strings.xml index 56e24c7..b88a6c1 100644 --- a/main/res/values-it/strings.xml +++ b/main/res/values-it/strings.xml @@ -546,7 +546,6 @@ <string name="cache_dialog_watchlist_remove_title">Watchlist</string> <string name="cache_dialog_watchlist_remove_message">Rimozione cache dalla tua watchlist…</string> <string name="cache_menu_navigate">Naviga</string> - <string name="cache_menu_tbt">Itinerario guidato</string> <string name="cache_menu_radar">Radar</string> <string name="cache_menu_map">Mappa</string> <string name="cache_menu_map_static">Mappe statiche</string> diff --git a/main/res/values-ja/strings.xml b/main/res/values-ja/strings.xml index a8e5ef6..46cfae6 100644 --- a/main/res/values-ja/strings.xml +++ b/main/res/values-ja/strings.xml @@ -563,7 +563,6 @@ <string name="cache_dialog_watchlist_remove_title">ウォッチリスト</string> <string name="cache_dialog_watchlist_remove_message">ウォッチリストから削除中…</string> <string name="cache_menu_navigate">ナビゲーション</string> - <string name="cache_menu_tbt">道順ナビ</string> <string name="cache_menu_radar">レーダー</string> <string name="cache_menu_map">地図で表示</string> <string name="cache_menu_map_static">オフライン地図</string> diff --git a/main/res/values-nb/strings.xml b/main/res/values-nb/strings.xml index 6e8435c..3b0869a 100644 --- a/main/res/values-nb/strings.xml +++ b/main/res/values-nb/strings.xml @@ -284,7 +284,6 @@ <string name="cache_dialog_refresh_title">Oppdater</string> <string name="cache_dialog_refresh_message">Laster cachens detaljer på nytt…</string> <string name="cache_menu_navigate">Navigér</string> - <string name="cache_menu_tbt">Punktvis navigasjon</string> <string name="cache_menu_radar">Radar</string> <string name="cache_menu_map">Vis på kartet</string> <string name="cache_menu_map_ext">Vis på utvidet kart</string> diff --git a/main/res/values-nl/strings.xml b/main/res/values-nl/strings.xml index 8013de3..52ee086 100644 --- a/main/res/values-nl/strings.xml +++ b/main/res/values-nl/strings.xml @@ -516,7 +516,6 @@ <string name="cache_dialog_watchlist_remove_title">Watchlist</string> <string name="cache_dialog_watchlist_remove_message">Verwijder cache van watchlist…</string> <string name="cache_menu_navigate">Navigeer</string> - <string name="cache_menu_tbt">Turn-by-turn</string> <string name="cache_menu_radar">Radar</string> <string name="cache_menu_map">Toon op kaart</string> <string name="cache_menu_map_static">Statische kaarten</string> diff --git a/main/res/values-pl/strings.xml b/main/res/values-pl/strings.xml index ce8c875..2b4c69b 100644 --- a/main/res/values-pl/strings.xml +++ b/main/res/values-pl/strings.xml @@ -448,7 +448,6 @@ <string name="cache_dialog_watchlist_remove_title">Lista obserwowanych</string> <string name="cache_dialog_watchlist_remove_message">Usuwam skrzynkę z listy obserwowanych…</string> <string name="cache_menu_navigate">Nawigować</string> - <string name="cache_menu_tbt">Zakręt po zakręcie</string> <string name="cache_menu_radar">Radar</string> <string name="cache_menu_map">Pokaż na mapie</string> <string name="cache_menu_map_static">Statyczna mapa</string> diff --git a/main/res/values-pt/strings.xml b/main/res/values-pt/strings.xml index 3f9ec73..f5b5eb3 100644 --- a/main/res/values-pt/strings.xml +++ b/main/res/values-pt/strings.xml @@ -509,7 +509,6 @@ <string name="cache_dialog_watchlist_remove_title">Lista de observação</string> <string name="cache_dialog_watchlist_remove_message">A remover cache da lista de observação…</string> <string name="cache_menu_navigate">Navegar</string> - <string name="cache_menu_tbt">Turn-by-turn</string> <string name="cache_menu_radar">Radar</string> <string name="cache_menu_map">Mostrar no mapa</string> <string name="cache_menu_map_static">Mapas estáticos</string> diff --git a/main/res/values-sk/strings.xml b/main/res/values-sk/strings.xml index 08b51bd..a901e5f 100644 --- a/main/res/values-sk/strings.xml +++ b/main/res/values-sk/strings.xml @@ -552,7 +552,6 @@ <string name="cache_dialog_watchlist_remove_title">Zoznam sledovaných</string> <string name="cache_dialog_watchlist_remove_message">Odstraňovanie skrýše zo zoznamu sledovaných…</string> <string name="cache_menu_navigate">Navigovať</string> - <string name="cache_menu_tbt">Navigácia s inštrukciami</string> <string name="cache_menu_radar">Radar</string> <string name="cache_menu_map">Mapa</string> <string name="cache_menu_map_static">Statická mapa</string> diff --git a/main/res/values-sv/strings.xml b/main/res/values-sv/strings.xml index 2c4e004..6c11376 100644 --- a/main/res/values-sv/strings.xml +++ b/main/res/values-sv/strings.xml @@ -565,7 +565,6 @@ <string name="cache_dialog_watchlist_remove_title">Watchlist</string> <string name="cache_dialog_watchlist_remove_message">Tar bort cachen från din watchlist…</string> <string name="cache_menu_navigate">Navigera</string> - <string name="cache_menu_tbt">Sväng-för-sväng</string> <string name="cache_menu_radar">Radar</string> <string name="cache_menu_map">Visa på karta</string> <string name="cache_menu_map_static">Sparade kartor</string> diff --git a/main/res/values/strings.xml b/main/res/values/strings.xml index 6f2dbd4..0f5b3eb 100644 --- a/main/res/values/strings.xml +++ b/main/res/values/strings.xml @@ -573,7 +573,9 @@ <string name="cache_dialog_watchlist_remove_title">Watchlist</string> <string name="cache_dialog_watchlist_remove_message">Removing cache from your watchlist…</string> <string name="cache_menu_navigate">Navigate</string> - <string name="cache_menu_tbt">Turn-by-Turn</string> + <string name="cache_menu_navigation_drive">Navigation (Driving)</string> + <string name="cache_menu_navigation_walk">Navigation (Walking)</string> + <string name="cache_menu_maps_directions">Google Maps Directions</string> <string name="cache_menu_radar">Radar</string> <string name="cache_menu_map">Map</string> <string name="cache_menu_map_static">Static Maps</string> diff --git a/main/src/cgeo/geocaching/Settings.java b/main/src/cgeo/geocaching/Settings.java index e1ae9c0..6845169 100644 --- a/main/src/cgeo/geocaching/Settings.java +++ b/main/src/cgeo/geocaching/Settings.java @@ -75,7 +75,6 @@ public final class Settings { private static final String KEY_AUTO_VISIT_TRACKABLES = "trackautovisit"; private static final String KEY_AUTO_INSERT_SIGNATURE = "sigautoinsert"; private static final String KEY_ALTITUDE_CORRECTION = "altcorrection"; - private static final String KEY_USE_GOOGLE_NAVIGATION = "usegnav"; private static final String KEY_STORE_LOG_IMAGES = "logimages"; private static final String KEY_EXCLUDE_DISABLED = "excludedisabled"; private static final String KEY_EXCLUDE_OWN = "excludemine"; @@ -192,7 +191,6 @@ public final class Settings { e.putBoolean(KEY_AUTO_VISIT_TRACKABLES, old.getBoolean(KEY_AUTO_VISIT_TRACKABLES, false)); e.putBoolean(KEY_AUTO_INSERT_SIGNATURE, old.getBoolean(KEY_AUTO_INSERT_SIGNATURE, false)); e.putInt(KEY_ALTITUDE_CORRECTION, old.getInt(KEY_ALTITUDE_CORRECTION, 0)); - e.putBoolean(KEY_USE_GOOGLE_NAVIGATION, 0 != old.getInt(KEY_USE_GOOGLE_NAVIGATION, 1)); e.putBoolean(KEY_STORE_LOG_IMAGES, old.getBoolean(KEY_STORE_LOG_IMAGES, false)); e.putBoolean(KEY_EXCLUDE_DISABLED, 0 != old.getInt(KEY_EXCLUDE_DISABLED, 0)); e.putBoolean(KEY_EXCLUDE_OWN, 0 != old.getInt(KEY_EXCLUDE_OWN, 0)); @@ -672,20 +670,6 @@ public final class Settings { }); } - public static boolean isUseGoogleNavigation() { - return sharedPrefs.getBoolean(KEY_USE_GOOGLE_NAVIGATION, true); - } - - public static void setUseGoogleNavigation(final boolean useGoogleNavigation) { - editSharedSettings(new PrefRunnable() { - - @Override - public void edit(Editor edit) { - edit.putBoolean(KEY_USE_GOOGLE_NAVIGATION, useGoogleNavigation); - } - }); - } - public static boolean isAutoLoadDescription() { return sharedPrefs.getBoolean(KEY_LOAD_DESCRIPTION, false); } diff --git a/main/src/cgeo/geocaching/SettingsActivity.java b/main/src/cgeo/geocaching/SettingsActivity.java index 823b52f..0af833d 100644 --- a/main/src/cgeo/geocaching/SettingsActivity.java +++ b/main/src/cgeo/geocaching/SettingsActivity.java @@ -495,16 +495,6 @@ public class SettingsActivity extends AbstractActivity { } }); - final CheckBox gnavButton = (CheckBox) findViewById(R.id.gnav); - gnavButton.setChecked(Settings.isUseGoogleNavigation()); - gnavButton.setOnClickListener(new View.OnClickListener() { - - @Override - public void onClick(View v) { - Settings.setUseGoogleNavigation(gnavButton.isChecked()); - } - }); - final CheckBox logOffline = (CheckBox) findViewById(R.id.log_offline); logOffline.setChecked(Settings.getLogOffline()); logOffline.setOnClickListener(new View.OnClickListener() { diff --git a/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsDirectionApp.java b/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsDirectionApp.java new file mode 100644 index 0000000..38ddae6 --- /dev/null +++ b/main/src/cgeo/geocaching/apps/cache/navi/GoogleMapsDirectionApp.java @@ -0,0 +1,47 @@ +package cgeo.geocaching.apps.cache.navi; + +import cgeo.geocaching.IGeoData; +import cgeo.geocaching.R; +import cgeo.geocaching.cgeoapplication; +import cgeo.geocaching.geopoint.Geopoint; +import cgeo.geocaching.utils.Log; + +import android.app.Activity; +import android.content.Intent; +import android.net.Uri; + +public class GoogleMapsDirectionApp extends AbstractPointNavigationApp { + + protected GoogleMapsDirectionApp() { + super(getString(R.string.cache_menu_maps_directions), null); + } + + @Override + public boolean isInstalled() { + return true; + } + + @Override + public void navigate(Activity activity, Geopoint coords) { + try { + IGeoData geo = cgeoapplication.getInstance().currentGeo(); + final Geopoint coordsNow = geo == null ? null : geo.getCoords(); + + if (coordsNow != null) { + activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri + .parse("http://maps.google.com/maps?f=d&saddr=" + + coordsNow.getLatitude() + "," + coordsNow.getLongitude() + "&daddr=" + + coords.getLatitude() + "," + coords.getLongitude()))); + } else { + activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri + .parse("http://maps.google.com/maps?f=d&daddr=" + + coords.getLatitude() + "," + coords.getLongitude()))); + } + + } catch (Exception e) { + Log.i("GoogleMapsDirection: application not available."); + } + + } + +} diff --git a/main/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java b/main/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java index 7258e11..e74eb89 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/GoogleNavigationApp.java @@ -1,10 +1,6 @@ package cgeo.geocaching.apps.cache.navi; -import cgeo.geocaching.IGeoData; import cgeo.geocaching.R; -import cgeo.geocaching.Settings; -import cgeo.geocaching.cgeoapplication; -import cgeo.geocaching.activity.ActivityMixin; import cgeo.geocaching.geopoint.Geopoint; import cgeo.geocaching.utils.Log; @@ -12,10 +8,13 @@ import android.app.Activity; import android.content.Intent; import android.net.Uri; -class GoogleNavigationApp extends AbstractPointNavigationApp { +abstract class GoogleNavigationApp extends AbstractPointNavigationApp { - GoogleNavigationApp() { - super(getString(R.string.cache_menu_tbt), null); + private final String mode; + + GoogleNavigationApp(final int nameResourceId, final String mode) { + super(getString(nameResourceId), null); + this.mode = mode; } @Override @@ -23,49 +22,27 @@ class GoogleNavigationApp extends AbstractPointNavigationApp { return true; } - private static boolean navigateToCoordinates(Activity activity, final Geopoint coords) { - IGeoData geo = cgeoapplication.getInstance().currentGeo(); - final Geopoint coordsNow = geo == null ? null : geo.getCoords(); - - // Google Navigation - if (Settings.isUseGoogleNavigation()) { - try { - activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri - .parse("google.navigation:ll=" + coords.getLatitude() + "," - + coords.getLongitude()))); - - return true; - } catch (Exception e) { - // nothing - } - } - - // Google Maps Directions + @Override + public void navigate(Activity activity, Geopoint coords) { try { - if (coordsNow != null) { - activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri - .parse("http://maps.google.com/maps?f=d&saddr=" - + coordsNow.getLatitude() + "," + coordsNow.getLongitude() + "&daddr=" - + coords.getLatitude() + "," + coords.getLongitude()))); - } else { - activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri - .parse("http://maps.google.com/maps?f=d&daddr=" - + coords.getLatitude() + "," + coords.getLongitude()))); - } + activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri + .parse("google.navigation:ll=" + coords.getLatitude() + "," + + coords.getLongitude() + mode))); - return true; } catch (Exception e) { - // nothing + Log.i("cgBase.runNavigation: No navigation application available."); } + } - Log.i("cgBase.runNavigation: No navigation application available."); - return false; + static class GoogleNavigationWalkingApp extends GoogleNavigationApp { + GoogleNavigationWalkingApp() { + super(R.string.cache_menu_navigation_walk, "&mode=w"); + } } - @Override - public void navigate(Activity activity, Geopoint coords) { - if (!navigateToCoordinates(activity, coords)) { - ActivityMixin.showToast(activity, getString(R.string.err_navigation_no)); + static class GoogleNavigationDrivingApp extends GoogleNavigationApp { + GoogleNavigationDrivingApp() { + super(R.string.cache_menu_navigation_drive, "&mode=d"); } } }
\ No newline at end of file diff --git a/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java b/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java index 57a71bb..0ff4af2 100644 --- a/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java +++ b/main/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java @@ -8,6 +8,8 @@ import cgeo.geocaching.cgeoapplication; import cgeo.geocaching.activity.ActivityMixin; import cgeo.geocaching.apps.AbstractAppFactory; import cgeo.geocaching.apps.App; +import cgeo.geocaching.apps.cache.navi.GoogleNavigationApp.GoogleNavigationDrivingApp; +import cgeo.geocaching.apps.cache.navi.GoogleNavigationApp.GoogleNavigationWalkingApp; import cgeo.geocaching.geopoint.Geopoint; import android.app.Activity; @@ -40,7 +42,7 @@ public final class NavigationAppFactory extends AbstractAppFactory { /** Google Maps */ GOOGLE_MAPS(new GoogleMapsApp(), 6), /** Google Navigation */ - GOOGLE_NAVIGATION(new GoogleNavigationApp(), 7), + GOOGLE_NAVIGATION(new GoogleNavigationDrivingApp(), 7), /** Google Streetview */ GOOGLE_STREETVIEW(new StreetviewApp(), 8), /** The external OruxMaps app */ @@ -48,7 +50,15 @@ public final class NavigationAppFactory extends AbstractAppFactory { /** The external navigon app */ NAVIGON(new NavigonApp(), 10), /** The external Sygic app */ - SYGIC(new SygicNavigationApp(), 11); + SYGIC(new SygicNavigationApp(), 11), + /** + * Google Navigation in walking mode + */ + GOOGLE_NAVIGATION_WALK(new GoogleNavigationWalkingApp(), 12), + /** + * Google Maps Directions + */ + GOOGLE_MAPS_DIRECTIONS(new GoogleMapsDirectionApp(), 13); NavigationAppsEnum(App app, int id) { this.app = app; |