aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/cgeonavigate.java
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/cgeonavigate.java')
-rw-r--r--main/src/cgeo/geocaching/cgeonavigate.java34
1 files changed, 8 insertions, 26 deletions
diff --git a/main/src/cgeo/geocaching/cgeonavigate.java b/main/src/cgeo/geocaching/cgeonavigate.java
index 848c2ed..567ae74 100644
--- a/main/src/cgeo/geocaching/cgeonavigate.java
+++ b/main/src/cgeo/geocaching/cgeonavigate.java
@@ -8,7 +8,6 @@ import cgeo.geocaching.maps.CGeoMap;
import cgeo.geocaching.ui.CompassView;
import cgeo.geocaching.utils.GeoDirHandler;
import cgeo.geocaching.utils.Log;
-import cgeo.geocaching.utils.PeriodicHandler;
import org.apache.commons.lang3.StringUtils;
@@ -36,7 +35,6 @@ public class cgeonavigate extends AbstractActivity {
private PowerManager pm = null;
private Geopoint dstCoords = null;
private float cacheHeading = 0;
- private Float northHeading = null;
private String title = null;
private String name = null;
private TextView navType = null;
@@ -46,16 +44,6 @@ public class cgeonavigate extends AbstractActivity {
private TextView distanceView = null;
private TextView headingView = null;
private CompassView compassView = null;
- private PeriodicHandler updaterHandler = new PeriodicHandler(20) {
-
- @Override
- public void act() {
- if (compassView != null && northHeading != null) {
- compassView.updateNorth(northHeading, cacheHeading);
- }
- }
-
- };
private String geocode;
public cgeonavigate() {
@@ -104,12 +92,6 @@ public class cgeonavigate extends AbstractActivity {
}
@Override
- public void onStart() {
- super.onStart();
- updaterHandler.start();
- }
-
- @Override
public void onResume() {
super.onResume();
@@ -133,12 +115,6 @@ public class cgeonavigate extends AbstractActivity {
}
@Override
- public void onStop() {
- updaterHandler.stop();
- super.onStop();
- }
-
- @Override
public void onPause() {
geoDirHandler.stopGeoAndDir();
super.onPause();
@@ -293,7 +269,7 @@ public class cgeonavigate extends AbstractActivity {
}
if (!Settings.isUseCompass() || geo.getSpeed() > 5) { // use GPS when speed is higher than 18 km/h
- northHeading = geo.getBearing();
+ updateNorthHeading(geo.getBearing());
}
} catch (Exception e) {
Log.w("Failed to LocationUpdater location.");
@@ -303,11 +279,17 @@ public class cgeonavigate extends AbstractActivity {
@Override
public void updateDirection(final float direction) {
if (app.currentGeo().getSpeed() <= 5) { // use compass when speed is lower than 18 km/h
- northHeading = DirectionProvider.getDirectionNow(cgeonavigate.this, direction);
+ updateNorthHeading(DirectionProvider.getDirectionNow(cgeonavigate.this, direction));
}
}
};
+ private void updateNorthHeading(final float northHeading) {
+ if (compassView != null) {
+ compassView.updateNorth(northHeading, cacheHeading);
+ }
+ }
+
public static void startActivity(final Context context, final String geocode, final String displayedName, final Geopoint coords, final Collection<IWaypoint> coordinatesWithType) {
coordinates.clear();
if (coordinatesWithType != null) { // avoid possible NPE