diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2014-11-26 14:19:27 +0100 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2014-11-26 14:22:15 +0100 |
| commit | f64541a3f76bccc07e58a18f3158bfbf5db00f1b (patch) | |
| tree | c014d2d6922734cf5c4b01264d31ad4f6f4a8a4e | |
| parent | c9a8a12536dc9f53c6d834c2eb4cc6157343423d (diff) | |
| download | cgeo-f64541a3f76bccc07e58a18f3158bfbf5db00f1b.zip cgeo-f64541a3f76bccc07e58a18f3158bfbf5db00f1b.tar.gz cgeo-f64541a3f76bccc07e58a18f3158bfbf5db00f1b.tar.bz2 | |
fix #4332: no history when navigate via compass
| -rw-r--r-- | main/src/cgeo/geocaching/NavigateAnyPointActivity.java | 50 |
1 files changed, 27 insertions, 23 deletions
diff --git a/main/src/cgeo/geocaching/NavigateAnyPointActivity.java b/main/src/cgeo/geocaching/NavigateAnyPointActivity.java index 9535004..d735a60 100644 --- a/main/src/cgeo/geocaching/NavigateAnyPointActivity.java +++ b/main/src/cgeo/geocaching/NavigateAnyPointActivity.java @@ -21,6 +21,7 @@ import cgeo.geocaching.utils.Formatter; import cgeo.geocaching.utils.Log; import org.apache.commons.lang3.StringUtils; +import org.eclipse.jdt.annotation.Nullable; import android.app.Activity; import android.content.Context; @@ -95,7 +96,7 @@ public class NavigateAnyPointActivity extends AbstractActionBarActivity implemen public View getView(final int position, final View convertView, final ViewGroup parent) { View rowView = convertView; - ViewHolder viewHolder; + final ViewHolder viewHolder; if (rowView == null) { rowView = getInflater().inflate(R.layout.simple_way_point, parent, false); viewHolder = new ViewHolder(rowView); @@ -347,20 +348,14 @@ public class NavigateAnyPointActivity extends AbstractActionBarActivity implemen @Override public boolean onOptionsItemSelected(final MenuItem item) { final int menuItem = item.getItemId(); - - final Geopoint coords = getDestination(); - - if (coords != null) { - addToHistory(coords); - } - + final Geopoint coords = getDestinationAndAddToHistory(); switch (menuItem) { case R.id.menu_default_navigation: - navigateTo(); + navigateTo(coords); return true; case R.id.menu_caches_around: - cachesAround(); + cachesAround(coords); return true; case R.id.menu_clear_history: @@ -374,7 +369,17 @@ public class NavigateAnyPointActivity extends AbstractActionBarActivity implemen return super.onOptionsItemSelected(item); } - private void addToHistory(final Geopoint coords) { + private Geopoint getDestinationAndAddToHistory() { + final Geopoint coords = getDestination(); + addToHistory(coords); + return coords; + } + + private void addToHistory(@Nullable final Geopoint coords) { + if (coords == null) { + return; + } + // Add locations to history final Destination loc = new Destination(coords); @@ -435,17 +440,16 @@ public class NavigateAnyPointActivity extends AbstractActionBarActivity implemen } } - private void navigateTo() { - navigateTo(getDestination()); - } + private void navigateTo(final Geopoint coords) { + if (coords == null) { + showToast(res.getString(R.string.err_location_unknown)); + return; + } - private void navigateTo(final Geopoint geopoint) { - NavigationAppFactory.startDefaultNavigationApplication(1, this, geopoint); + NavigationAppFactory.startDefaultNavigationApplication(1, this, coords); } - private void cachesAround() { - final Geopoint coords = getDestination(); - + private void cachesAround(final Geopoint coords) { if (coords == null) { showToast(res.getString(R.string.err_location_unknown)); return; @@ -508,7 +512,7 @@ public class NavigateAnyPointActivity extends AbstractActionBarActivity implemen // apply projection if (StringUtils.isNotBlank(bearingText) && StringUtils.isNotBlank(distanceText)) { // bearing & distance - double bearing; + final double bearing; try { bearing = Double.parseDouble(bearingText); } catch (final NumberFormatException ignored) { @@ -516,7 +520,7 @@ public class NavigateAnyPointActivity extends AbstractActionBarActivity implemen return null; } - double distance; + final double distance; try { distance = DistanceParser.parseDistance(distanceText, !Settings.useImperialUnits()); @@ -542,11 +546,11 @@ public class NavigateAnyPointActivity extends AbstractActionBarActivity implemen @Override public void startDefaultNavigation() { - navigateTo(); + navigateTo(getDestinationAndAddToHistory()); } @Override public void startDefaultNavigation2() { - NavigationAppFactory.startDefaultNavigationApplication(2, this, getDestination()); + NavigationAppFactory.startDefaultNavigationApplication(2, this, getDestinationAndAddToHistory()); } } |
