diff options
| author | Samuel Tardieu <sam@rfc1149.net> | 2013-08-25 13:54:18 +0200 |
|---|---|---|
| committer | Samuel Tardieu <sam@rfc1149.net> | 2013-08-25 13:54:18 +0200 |
| commit | 55844edaf8351d0ca3134213e997428402174513 (patch) | |
| tree | 629c9f3f2cae53eeb7c0bf804af6f95f77f9af0c | |
| parent | 86395ae7776b1803d4d333a6b4368df218638889 (diff) | |
| download | cgeo-55844edaf8351d0ca3134213e997428402174513.zip cgeo-55844edaf8351d0ca3134213e997428402174513.tar.gz cgeo-55844edaf8351d0ca3134213e997428402174513.tar.bz2 | |
fix #3185: NPE in GeoDirHandler
One must not unconditionnally update geolocation and direction data as
it may be null.
This is a more correct fix for #2717.
| -rw-r--r-- | main/src/cgeo/geocaching/CompassActivity.java | 11 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/utils/GeoDirHandler.java | 5 |
2 files changed, 10 insertions, 6 deletions
diff --git a/main/src/cgeo/geocaching/CompassActivity.java b/main/src/cgeo/geocaching/CompassActivity.java index 64be52d..909f8bb 100644 --- a/main/src/cgeo/geocaching/CompassActivity.java +++ b/main/src/cgeo/geocaching/CompassActivity.java @@ -134,7 +134,16 @@ public class CompassActivity extends AbstractActivity { setDestCoords(); setCacheInfo(); - geoDirHandler.updateAll(); + // Force a refresh of location and direction when data is available. + final cgeoapplication app = cgeoapplication.getInstance(); + final IGeoData geo = app.currentGeo(); + if (geo != null) { + geoDirHandler.update(geo); + } + final Float dir = app.currentDirection(); + if (dir != null) { + geoDirHandler.update(dir); + } } @Override diff --git a/main/src/cgeo/geocaching/utils/GeoDirHandler.java b/main/src/cgeo/geocaching/utils/GeoDirHandler.java index 14e6426..a143730 100644 --- a/main/src/cgeo/geocaching/utils/GeoDirHandler.java +++ b/main/src/cgeo/geocaching/utils/GeoDirHandler.java @@ -63,11 +63,6 @@ public abstract class GeoDirHandler extends Handler implements IObserver<Object> obtainMessage(OBSERVABLE, o).sendToTarget(); } - public void updateAll() { - update(app.currentGeo()); - update(app.currentDirection()); - } - /** * Update method called when new IGeoData is available. * |
