diff options
Diffstat (limited to 'main/src/cgeo/geocaching/NavigateAnyPointActivity.java')
| -rw-r--r-- | main/src/cgeo/geocaching/NavigateAnyPointActivity.java | 28 |
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) { |
