summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java13
1 files changed, 10 insertions, 3 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java b/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java
index f6a921d6d127..092eb46cad5e 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java
@@ -292,6 +292,7 @@ public class DozeSensors {
final AlarmTimeout mCooldownTimer;
final AlwaysOnDisplayPolicy mPolicy;
final Sensor mSensor;
+ final boolean mUsingBrightnessSensor;
public ProxSensor(AlwaysOnDisplayPolicy policy) {
mPolicy = policy;
@@ -302,6 +303,7 @@ public class DozeSensors {
// if available.
Sensor sensor = DozeSensors.findSensorWithType(mSensorManager,
mContext.getString(R.string.doze_brightness_sensor_type));
+ mUsingBrightnessSensor = sensor != null;
if (sensor == null) {
sensor = mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY);
}
@@ -331,8 +333,7 @@ public class DozeSensors {
return;
}
if (register) {
- mRegistered = mSensorManager.registerListener(this,
- mSensorManager.getDefaultSensor(Sensor.TYPE_PROXIMITY),
+ mRegistered = mSensorManager.registerListener(this, mSensor,
SensorManager.SENSOR_DELAY_NORMAL, mHandler);
} else {
mSensorManager.unregisterListener(this);
@@ -345,7 +346,13 @@ public class DozeSensors {
public void onSensorChanged(android.hardware.SensorEvent event) {
if (DEBUG) Log.d(TAG, "onSensorChanged " + event);
- mCurrentlyFar = event.values[0] >= event.sensor.getMaximumRange();
+ if (mUsingBrightnessSensor) {
+ // The custom brightness sensor is gated by the proximity sensor and will return 0
+ // whenever prox is covered.
+ mCurrentlyFar = event.values[0] > 0;
+ } else {
+ mCurrentlyFar = event.values[0] >= event.sensor.getMaximumRange();
+ }
mProxCallback.accept(mCurrentlyFar);
long now = SystemClock.elapsedRealtime();