aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/NavigateAnyPointActivity.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/NavigateAnyPointActivity.java')
-rw-r--r--main/src/cgeo/geocaching/NavigateAnyPointActivity.java28
1 files changed, 10 insertions, 18 deletions
diff --git a/main/src/cgeo/geocaching/NavigateAnyPointActivity.java b/main/src/cgeo/geocaching/NavigateAnyPointActivity.java
index b73a154..87d7ba7 100644
--- a/main/src/cgeo/geocaching/NavigateAnyPointActivity.java
+++ b/main/src/cgeo/geocaching/NavigateAnyPointActivity.java
@@ -331,7 +331,7 @@ public class NavigateAnyPointActivity extends AbstractActivity {
menu.findItem(R.id.menu_caches_around).setVisible(visible);
menu.findItem(R.id.menu_clear_history).setEnabled(!getHistoryOfSearchedLocations().isEmpty());
- } catch (Exception e) {
+ } catch (RuntimeException e) {
// nothing
}
@@ -454,7 +454,7 @@ public class NavigateAnyPointActivity extends AbstractActivity {
try {
latButton.setHint(geo.getCoords().format(GeopointFormatter.Format.LAT_DECMINUTE_RAW));
lonButton.setHint(geo.getCoords().format(GeopointFormatter.Format.LON_DECMINUTE_RAW));
- } catch (final Exception e) {
+ } catch (final RuntimeException e) {
Log.w("Failed to update location.");
}
}
@@ -490,6 +490,7 @@ public class NavigateAnyPointActivity extends AbstractActivity {
return null;
}
+ // get base coordinates
Geopoint coords;
if (StringUtils.isNotBlank(latText) && StringUtils.isNotBlank(lonText)) {
try {
@@ -507,8 +508,8 @@ public class NavigateAnyPointActivity extends AbstractActivity {
coords = app.currentGeo().getCoords();
}
- Geopoint result;
- if (StringUtils.isNotBlank(bearingText) && StringUtils.isNotBlank(distanceText)) {
+ // apply projection
+ if (coords != null && StringUtils.isNotBlank(bearingText) && StringUtils.isNotBlank(distanceText)) {
// bearing & distance
double bearing;
try {
@@ -527,23 +528,14 @@ public class NavigateAnyPointActivity extends AbstractActivity {
return null;
}
- final Geopoint coordsDst = coords.project(bearing, distance);
-
- if (coordsDst == null) {
- showToast(res.getString(R.string.err_point_location_error));
- return null;
- }
-
- result = coordsDst;
- } else if (coords != null) {
- result = coords;
- } else {
- return null;
+ coords = coords.project(bearing, distance);
}
- saveCoords(result);
+ if (coords != null) {
+ saveCoords(coords);
+ }
- return result;
+ return coords;
}
private void saveCoords(final Geopoint coords) {