From 411cba9d00c0718e2d12686108edb135698a5ed3 Mon Sep 17 00:00:00 2001 From: Ricky Barrette Date: Sun, 11 Mar 2012 14:24:04 -0400 Subject: [PATCH] CompassSensor.java Readded my orginal compensation of for device rotations Change-Id: Icd748b30d25219d061bae5564b86b7c098bfea4b Signed-off-by: Ricky Barrette --- LocationLib/bin/locationlib.jar | Bin 63205 -> 61803 bytes .../android/location/CompassSensor.java | 28 +++++++++++++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/LocationLib/bin/locationlib.jar b/LocationLib/bin/locationlib.jar index 0fa32410cc783abbf3f784e5228fb46f3e5894cf..934e6c05f353b6c373983c43dd8a7ba027b6f8f6 100644 GIT binary patch delta 5214 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 Z4|(e_2xAZU7-Wb^_hErRw&#BZ{ts#=8Xf=u delta 6607 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 diff --git a/LocationLib/src/com/TwentyCodes/android/location/CompassSensor.java b/LocationLib/src/com/TwentyCodes/android/location/CompassSensor.java index adb6161..ec95d23 100644 --- a/LocationLib/src/com/TwentyCodes/android/location/CompassSensor.java +++ b/LocationLib/src/com/TwentyCodes/android/location/CompassSensor.java @@ -9,6 +9,7 @@ package com.TwentyCodes.android.location; import com.TwentyCodes.android.debug.Debug; import android.content.Context; +import android.content.res.Configuration; import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; @@ -26,6 +27,7 @@ public class CompassSensor{ private final SensorManager mSensorManager; private CompassListener mListener; private final Handler mHandler; + private Context mContext; private final SensorEventListener mCallBack = new SensorEventListener() { @@ -36,8 +38,8 @@ public class CompassSensor{ private float[] orientVals = new float[3]; private double azimuth = 0; -// double pitch = 0; -// double roll = 0; + double pitch = 0; + double roll = 0; public void onSensorChanged(SensorEvent sensorEvent) { // If the sensor data is unreliable return @@ -62,8 +64,25 @@ public class CompassSensor{ if (success) { SensorManager.getOrientation(inR, orientVals); azimuth = Math.toDegrees(orientVals[0]); -// pitch = Math.toDegrees(orientVals[1]); -// roll = Math.toDegrees(orientVals[2]); + pitch = Math.toDegrees(orientVals[1]); + roll = Math.toDegrees(orientVals[2]); + + /** + * this will compenstate for device rotations + */ + if (mContext.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) { + boolean isNormal = false; + if (roll <= -25) + isNormal = false; + + if (roll >= 25) + isNormal = true; + + if (isNormal) + azimuth = azimuth - 90; + else + azimuth = azimuth + 90; + } } } @@ -80,6 +99,7 @@ public class CompassSensor{ * @author ricky barrette */ public CompassSensor(final Context context) { + mContext = context; mHandler = new Handler(){ @Override public void handleMessage(Message msg){