aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorrsudev <rasch@munin-soft.de>2011-08-24 20:47:13 +0200
committerrsudev <rasch@munin-soft.de>2011-08-24 20:47:13 +0200
commit78dd2abf0ec7d9220db9034e0f321120828fae0a (patch)
tree9579831e47dcee441beb09abc5e30f5e42b51ae6 /src
parente7b8fff5418082965cff8c56745ba04cff0d385d (diff)
parenta888c9a75a42944687aa203f0138fce4c5ab971d (diff)
downloadcgeo-78dd2abf0ec7d9220db9034e0f321120828fae0a.zip
cgeo-78dd2abf0ec7d9220db9034e0f321120828fae0a.tar.gz
cgeo-78dd2abf0ec7d9220db9034e0f321120828fae0a.tar.bz2
Merge branch 'master' of https://github.com/cgeo/c-geo-opensource
Diffstat (limited to 'src')
-rw-r--r--src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java6
-rw-r--r--src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java49
-rw-r--r--src/cgeo/geocaching/cgeocoords.java14
3 files changed, 58 insertions, 11 deletions
diff --git a/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java b/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java
index 81f251d..e496e33 100644
--- a/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java
+++ b/src/cgeo/geocaching/apps/cache/navi/NavigationAppFactory.java
@@ -24,8 +24,10 @@ public final class NavigationAppFactory extends AbstractAppFactory {
new InternalMap(res),
new StaticMapApp(res),
new LocusApp(res),
- new RMapsApp(res), new GoogleMapsApp(res),
- new GoogleNavigationApp(res) };
+ new RMapsApp(res),
+ new GoogleMapsApp(res),
+ new GoogleNavigationApp(res),
+ new StreetviewApp(res)};
}
return apps;
}
diff --git a/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java b/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java
new file mode 100644
index 0000000..24d6606
--- /dev/null
+++ b/src/cgeo/geocaching/apps/cache/navi/StreetviewApp.java
@@ -0,0 +1,49 @@
+package cgeo.geocaching.apps.cache.navi;
+
+import android.app.Activity;
+import android.content.ActivityNotFoundException;
+import android.content.Context;
+import android.content.Intent;
+import android.content.res.Resources;
+import android.net.Uri;
+import cgeo.geocaching.R;
+import cgeo.geocaching.cgCache;
+import cgeo.geocaching.cgGeo;
+import cgeo.geocaching.cgWaypoint;
+import cgeo.geocaching.activity.ActivityMixin;
+
+class StreetviewApp extends AbstractNavigationApp implements NavigationApp {
+
+ StreetviewApp(final Resources res) {
+ super(res.getString(R.string.cache_menu_streetview), null);
+ }
+
+ @Override
+ public boolean isInstalled(Context context) {
+ return true;
+ }
+
+ public boolean invoke(cgGeo geo, Activity activity, Resources res,
+ cgCache cache,
+ Long searchId, cgWaypoint waypoint, Double latitude, Double longitude) {
+ if (cache == null && waypoint == null && latitude == null && longitude == null) {
+ return false;
+ }
+
+ try {
+ if (cache != null && cache.latitude != null && cache.longitude != null) {
+ activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("google.streetview:cbll=" + cache.latitude + "," + cache.longitude)));
+ } else if (waypoint != null && waypoint.latitude != null && waypoint.longitude != null) {
+ activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("google.streetview:cbll=" + waypoint.latitude + "," + waypoint.longitude)));
+ }
+
+ return true;
+ } catch (ActivityNotFoundException e) {
+ if (res != null) {
+ ActivityMixin.showToast(activity, res.getString(R.string.err_application_no));
+ }
+ }
+
+ return false;
+ }
+}
diff --git a/src/cgeo/geocaching/cgeocoords.java b/src/cgeo/geocaching/cgeocoords.java
index c206d44..1639c70 100644
--- a/src/cgeo/geocaching/cgeocoords.java
+++ b/src/cgeo/geocaching/cgeocoords.java
@@ -213,12 +213,12 @@ public class cgeocoords extends Dialog {
if (latitude != null) {
eLatDeg.setText(addZeros(latDeg, 2) + Integer.toString(latDeg));
eLatMin.setText(addZeros(latMin, 2) + Integer.toString(latMin));
- eLatSec.setText(Integer.toString(latMinFrac) + addZeros(latMinFrac, 3));
+ eLatSec.setText(addZeros(latMinFrac, 3) + Integer.toString(latMinFrac));
}
if (longitude != null) {
eLonDeg.setText(addZeros(lonDeg, 3) + Integer.toString(lonDeg));
eLonMin.setText(addZeros(lonMin, 2) + Integer.toString(lonMin));
- eLonSec.setText(Integer.toString(lonMinFrac) + addZeros(lonMinFrac, 3));
+ eLonSec.setText(addZeros(lonMinFrac, 3) + Integer.toString(lonMinFrac));
}
break;
case Sec: // DDD° MM SS.SSS
@@ -414,13 +414,9 @@ public class cgeocoords extends Dialog {
break;
case Min:
Double latMinFrac = latSec * 1.0;
- while (latMinFrac > 1) {
- latMinFrac /= 10;
- }
- Double lonMinFrac = lonSec * 1.0;
- while (lonMinFrac > 1) {
- lonMinFrac /= 10;
- }
+ latMinFrac /= 1000;
+ Double lonMinFrac = lonSec * 1.0;
+ lonMinFrac /= 1000;
latitude = latDeg + latMin/60.0 + latMinFrac/60.0;
longitude = lonDeg + lonMin/60.0 + lonMinFrac/60.0;
break;