summaryrefslogtreecommitdiffstats
path: root/packages/SystemUI/src/com/android/systemui/qs/tiles/CompassTile.java
diff options
context:
space:
mode:
Diffstat (limited to 'packages/SystemUI/src/com/android/systemui/qs/tiles/CompassTile.java')
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/CompassTile.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/CompassTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/CompassTile.java
index f19e466..85790d1 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/CompassTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/CompassTile.java
@@ -32,6 +32,7 @@ public class CompassTile extends QSTile<QSTile.BooleanState> implements SensorEv
private final static float ALPHA = 0.97f;
private boolean mActive = false;
+ private boolean mListening = false;
private SensorManager mSensorManager;
private Sensor mAccelerationSensor;
@@ -95,7 +96,7 @@ public class CompassTile extends QSTile<QSTile.BooleanState> implements SensorEv
Float degrees = arg == null ? 0 :(float) arg;
state.visible = true;
- state.value = mActive;
+ state.value = mActive && mListening;
if (state.value) {
state.icon = ResourceIcon.get(R.drawable.ic_qs_compass_on);
@@ -126,10 +127,10 @@ public class CompassTile extends QSTile<QSTile.BooleanState> implements SensorEv
@Override
public void setListening(boolean listening) {
- if (!listening) {
- setListeningSensors(false);
- mActive = false;
- }
+ // setListening might get called multiple times with the same value, we check for it
+ // in setListeningSensors
+ mListening = listening;
+ setListeningSensors(mListening && mActive);
}
private String formatValueWithCardinalDirection(float degree) {