diff options
author | Samuel Tardieu <sam@rfc1149.net> | 2012-05-31 13:45:16 +0200 |
---|---|---|
committer | Samuel Tardieu <sam@rfc1149.net> | 2012-05-31 17:46:54 +0200 |
commit | 77448c73c305513df4f7651b3e56dbc59602ddc8 (patch) | |
tree | ffb4241bb23322e11c443ed9b91f6b93d28652d8 /main/src/cgeo/geocaching/ui | |
parent | aaa264d1748a9f399352e28f916ad579e4facf19 (diff) | |
download | cgeo-77448c73c305513df4f7651b3e56dbc59602ddc8.zip cgeo-77448c73c305513df4f7651b3e56dbc59602ddc8.tar.gz cgeo-77448c73c305513df4f7651b3e56dbc59602ddc8.tar.bz2 |
Simplify previous fix due to root cause fixing
The fix for #1680 introduced in ad93745d42f9aaf5bc4925075987ef64c13b2f71
had to account for the possibility of angles being outside the [0, 360[
range.
Commit 0034e358668d5911639628468be7409b2696d6c5 fixed #1685 and now
ensures that the returned orientation is within the right domain range
even after the phone rotation has been added to the sensor angle.
It is now possible to simplify the computation because we now that the
difference of two angle values will always be in the ]-360; 720[ range,
and can this fixed by adding 360 and taking the module with 360 to enter
back the [0, 360[ range.
Diffstat (limited to 'main/src/cgeo/geocaching/ui')
-rw-r--r-- | main/src/cgeo/geocaching/ui/CompassMiniView.java | 6 | ||||
-rw-r--r-- | main/src/cgeo/geocaching/ui/CompassView.java | 10 |
2 files changed, 3 insertions, 13 deletions
diff --git a/main/src/cgeo/geocaching/ui/CompassMiniView.java b/main/src/cgeo/geocaching/ui/CompassMiniView.java index 8c7c52e..1c96a09 100644 --- a/main/src/cgeo/geocaching/ui/CompassMiniView.java +++ b/main/src/cgeo/geocaching/ui/CompassMiniView.java @@ -159,11 +159,7 @@ final public class CompassMiniView extends View { } private float calculateAzimuthRelative() { - float azimuthRelative = (azimuth - heading) % 360; - if (azimuthRelative < 0) { - azimuthRelative += 360; - } - return azimuthRelative; + return (azimuth - heading + 360) % 360; } @Override diff --git a/main/src/cgeo/geocaching/ui/CompassView.java b/main/src/cgeo/geocaching/ui/CompassView.java index 5401bfd..6f5b8b9 100644 --- a/main/src/cgeo/geocaching/ui/CompassView.java +++ b/main/src/cgeo/geocaching/ui/CompassView.java @@ -128,10 +128,7 @@ public class CompassView extends View { * @return the new value */ static protected double smoothUpdate(double goal, double actual) { - double diff = (goal - actual) % 360; - if (diff < 0.0) { - diff += 360.0; - } + final double diff = (goal - actual + 360) % 360; double offset = 0.0; @@ -179,10 +176,7 @@ public class CompassView extends View { } double azimuthTemp = azimuthDrawn; - double azimuthRelative = (azimuthTemp - headingDrawn) % 360; - if (azimuthRelative < 0) { - azimuthRelative += 360; - } + final double azimuthRelative = (azimuthTemp - headingDrawn + 360) % 360; // compass margins int canvasCenterX = (compassRoseWidth / 2) + ((getWidth() - compassRoseWidth) / 2); |