aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/sensors
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2014-04-01 08:31:00 +0200
committerSamuel Tardieu <sam@rfc1149.net>2014-04-01 08:48:33 +0200
commit11d49a5a42dedf0821f16aa030bd0e7e27c9bc03 (patch)
tree68af086740e6b366327e5888fa85d9ec9531cfd1 /main/src/cgeo/geocaching/sensors
parent3ef2ff5d3c04ca8b7178b1ee34dae4d2979bde01 (diff)
downloadcgeo-11d49a5a42dedf0821f16aa030bd0e7e27c9bc03.zip
cgeo-11d49a5a42dedf0821f16aa030bd0e7e27c9bc03.tar.gz
cgeo-11d49a5a42dedf0821f16aa030bd0e7e27c9bc03.tar.bz2
Remove compatibility with API < 8
Diffstat (limited to 'main/src/cgeo/geocaching/sensors')
-rw-r--r--main/src/cgeo/geocaching/sensors/DirectionProvider.java28
1 files changed, 21 insertions, 7 deletions
diff --git a/main/src/cgeo/geocaching/sensors/DirectionProvider.java b/main/src/cgeo/geocaching/sensors/DirectionProvider.java
index 8efbc1f..44732f7 100644
--- a/main/src/cgeo/geocaching/sensors/DirectionProvider.java
+++ b/main/src/cgeo/geocaching/sensors/DirectionProvider.java
@@ -1,9 +1,8 @@
package cgeo.geocaching.sensors;
-import android.os.Process;
-import cgeo.geocaching.compatibility.Compatibility;
-
+import cgeo.geocaching.utils.AngleUtils;
import cgeo.geocaching.utils.StartableHandlerThread;
+
import rx.Observable;
import rx.Observable.OnSubscribe;
import rx.Subscriber;
@@ -15,7 +14,9 @@ import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
-import android.os.*;
+import android.os.Handler;
+import android.os.Process;
+import android.view.Surface;
public class DirectionProvider {
@@ -24,8 +25,8 @@ public class DirectionProvider {
static class Listener implements SensorEventListener, StartableHandlerThread.Callback {
private int count = 0;
- private SensorManager sensorManager;
+ private SensorManager sensorManager;
@Override
public void onSensorChanged(final SensorEvent event) {
subject.onNext(event.values[0]);
@@ -67,10 +68,10 @@ public class DirectionProvider {
private static final StartableHandlerThread handlerThread =
new StartableHandlerThread("DirectionProvider thread", Process.THREAD_PRIORITY_BACKGROUND, new Listener());
+
static {
handlerThread.start();
}
-
static public Observable<Float> create(final Context context) {
return Observable.create(new OnSubscribe<Float>() {
@Override
@@ -90,7 +91,20 @@ public class DirectionProvider {
*/
public static float getDirectionNow(final Activity activity, final float direction) {
- return Compatibility.getDirectionNow(direction, activity);
+ return AngleUtils.normalize(direction + getRotationOffset(activity));
+ }
+
+ private static int getRotationOffset(final Activity activity) {
+ switch (activity.getWindowManager().getDefaultDisplay().getRotation()) {
+ case Surface.ROTATION_90:
+ return 90;
+ case Surface.ROTATION_180:
+ return 180;
+ case Surface.ROTATION_270:
+ return 270;
+ default:
+ return 0;
+ }
}
}