Merge "Don't register for UDFPS long press in STATE_DOZE" into tm-qpr-dev
This commit is contained in:
@@ -116,6 +116,7 @@ public class DozeSensors {
|
|||||||
private boolean mListening;
|
private boolean mListening;
|
||||||
private boolean mListeningTouchScreenSensors;
|
private boolean mListeningTouchScreenSensors;
|
||||||
private boolean mListeningProxSensors;
|
private boolean mListeningProxSensors;
|
||||||
|
private boolean mListeningAodOnlySensors;
|
||||||
private boolean mUdfpsEnrolled;
|
private boolean mUdfpsEnrolled;
|
||||||
|
|
||||||
@DevicePostureController.DevicePostureInt
|
@DevicePostureController.DevicePostureInt
|
||||||
@@ -184,7 +185,8 @@ public class DozeSensors {
|
|||||||
dozeParameters.getPulseOnSigMotion(),
|
dozeParameters.getPulseOnSigMotion(),
|
||||||
DozeLog.PULSE_REASON_SENSOR_SIGMOTION,
|
DozeLog.PULSE_REASON_SENSOR_SIGMOTION,
|
||||||
false /* touchCoords */,
|
false /* touchCoords */,
|
||||||
false /* touchscreen */),
|
false /* touchscreen */
|
||||||
|
),
|
||||||
new TriggerSensor(
|
new TriggerSensor(
|
||||||
mSensorManager.getDefaultSensor(Sensor.TYPE_PICK_UP_GESTURE),
|
mSensorManager.getDefaultSensor(Sensor.TYPE_PICK_UP_GESTURE),
|
||||||
Settings.Secure.DOZE_PICK_UP_GESTURE,
|
Settings.Secure.DOZE_PICK_UP_GESTURE,
|
||||||
@@ -195,14 +197,17 @@ public class DozeSensors {
|
|||||||
false /* touchscreen */,
|
false /* touchscreen */,
|
||||||
false /* ignoresSetting */,
|
false /* ignoresSetting */,
|
||||||
false /* requires prox */,
|
false /* requires prox */,
|
||||||
true /* immediatelyReRegister */),
|
true /* immediatelyReRegister */,
|
||||||
|
false /* requiresAod */
|
||||||
|
),
|
||||||
new TriggerSensor(
|
new TriggerSensor(
|
||||||
findSensor(config.doubleTapSensorType()),
|
findSensor(config.doubleTapSensorType()),
|
||||||
Settings.Secure.DOZE_DOUBLE_TAP_GESTURE,
|
Settings.Secure.DOZE_DOUBLE_TAP_GESTURE,
|
||||||
true /* configured */,
|
true /* configured */,
|
||||||
DozeLog.REASON_SENSOR_DOUBLE_TAP,
|
DozeLog.REASON_SENSOR_DOUBLE_TAP,
|
||||||
dozeParameters.doubleTapReportsTouchCoordinates(),
|
dozeParameters.doubleTapReportsTouchCoordinates(),
|
||||||
true /* touchscreen */),
|
true /* touchscreen */
|
||||||
|
),
|
||||||
new TriggerSensor(
|
new TriggerSensor(
|
||||||
findSensors(config.tapSensorTypeMapping()),
|
findSensors(config.tapSensorTypeMapping()),
|
||||||
Settings.Secure.DOZE_TAP_SCREEN_GESTURE,
|
Settings.Secure.DOZE_TAP_SCREEN_GESTURE,
|
||||||
@@ -214,7 +219,9 @@ public class DozeSensors {
|
|||||||
false /* ignoresSetting */,
|
false /* ignoresSetting */,
|
||||||
dozeParameters.singleTapUsesProx(mDevicePosture) /* requiresProx */,
|
dozeParameters.singleTapUsesProx(mDevicePosture) /* requiresProx */,
|
||||||
true /* immediatelyReRegister */,
|
true /* immediatelyReRegister */,
|
||||||
mDevicePosture),
|
mDevicePosture,
|
||||||
|
false
|
||||||
|
),
|
||||||
new TriggerSensor(
|
new TriggerSensor(
|
||||||
findSensor(config.longPressSensorType()),
|
findSensor(config.longPressSensorType()),
|
||||||
Settings.Secure.DOZE_PULSE_ON_LONG_PRESS,
|
Settings.Secure.DOZE_PULSE_ON_LONG_PRESS,
|
||||||
@@ -225,7 +232,9 @@ public class DozeSensors {
|
|||||||
true /* touchscreen */,
|
true /* touchscreen */,
|
||||||
false /* ignoresSetting */,
|
false /* ignoresSetting */,
|
||||||
dozeParameters.longPressUsesProx() /* requiresProx */,
|
dozeParameters.longPressUsesProx() /* requiresProx */,
|
||||||
true /* immediatelyReRegister */),
|
true /* immediatelyReRegister */,
|
||||||
|
false /* requiresAod */
|
||||||
|
),
|
||||||
new TriggerSensor(
|
new TriggerSensor(
|
||||||
findSensor(config.udfpsLongPressSensorType()),
|
findSensor(config.udfpsLongPressSensorType()),
|
||||||
"doze_pulse_on_auth",
|
"doze_pulse_on_auth",
|
||||||
@@ -236,7 +245,9 @@ public class DozeSensors {
|
|||||||
true /* touchscreen */,
|
true /* touchscreen */,
|
||||||
false /* ignoresSetting */,
|
false /* ignoresSetting */,
|
||||||
dozeParameters.longPressUsesProx(),
|
dozeParameters.longPressUsesProx(),
|
||||||
false /* immediatelyReRegister */),
|
false /* immediatelyReRegister */,
|
||||||
|
true /* requiresAod */
|
||||||
|
),
|
||||||
new PluginSensor(
|
new PluginSensor(
|
||||||
new SensorManagerPlugin.Sensor(TYPE_WAKE_DISPLAY),
|
new SensorManagerPlugin.Sensor(TYPE_WAKE_DISPLAY),
|
||||||
Settings.Secure.DOZE_WAKE_DISPLAY_GESTURE,
|
Settings.Secure.DOZE_WAKE_DISPLAY_GESTURE,
|
||||||
@@ -244,7 +255,8 @@ public class DozeSensors {
|
|||||||
&& mConfig.alwaysOnEnabled(UserHandle.USER_CURRENT),
|
&& mConfig.alwaysOnEnabled(UserHandle.USER_CURRENT),
|
||||||
DozeLog.REASON_SENSOR_WAKE_UP_PRESENCE,
|
DozeLog.REASON_SENSOR_WAKE_UP_PRESENCE,
|
||||||
false /* reports touch coordinates */,
|
false /* reports touch coordinates */,
|
||||||
false /* touchscreen */),
|
false /* touchscreen */
|
||||||
|
),
|
||||||
new PluginSensor(
|
new PluginSensor(
|
||||||
new SensorManagerPlugin.Sensor(TYPE_WAKE_LOCK_SCREEN),
|
new SensorManagerPlugin.Sensor(TYPE_WAKE_LOCK_SCREEN),
|
||||||
Settings.Secure.DOZE_WAKE_LOCK_SCREEN_GESTURE,
|
Settings.Secure.DOZE_WAKE_LOCK_SCREEN_GESTURE,
|
||||||
@@ -252,7 +264,8 @@ public class DozeSensors {
|
|||||||
DozeLog.PULSE_REASON_SENSOR_WAKE_REACH,
|
DozeLog.PULSE_REASON_SENSOR_WAKE_REACH,
|
||||||
false /* reports touch coordinates */,
|
false /* reports touch coordinates */,
|
||||||
false /* touchscreen */,
|
false /* touchscreen */,
|
||||||
mConfig.getWakeLockScreenDebounce()),
|
mConfig.getWakeLockScreenDebounce()
|
||||||
|
),
|
||||||
new TriggerSensor(
|
new TriggerSensor(
|
||||||
findSensor(config.quickPickupSensorType()),
|
findSensor(config.quickPickupSensorType()),
|
||||||
Settings.Secure.DOZE_QUICK_PICKUP_GESTURE,
|
Settings.Secure.DOZE_QUICK_PICKUP_GESTURE,
|
||||||
@@ -263,7 +276,9 @@ public class DozeSensors {
|
|||||||
false /* requiresTouchscreen */,
|
false /* requiresTouchscreen */,
|
||||||
false /* ignoresSetting */,
|
false /* ignoresSetting */,
|
||||||
false /* requiresProx */,
|
false /* requiresProx */,
|
||||||
true /* immediatelyReRegister */),
|
true /* immediatelyReRegister */,
|
||||||
|
false /* requiresAod */
|
||||||
|
),
|
||||||
};
|
};
|
||||||
setProxListening(false); // Don't immediately start listening when we register.
|
setProxListening(false); // Don't immediately start listening when we register.
|
||||||
mProximitySensor.register(
|
mProximitySensor.register(
|
||||||
@@ -357,29 +372,36 @@ public class DozeSensors {
|
|||||||
/**
|
/**
|
||||||
* If sensors should be registered and sending signals.
|
* If sensors should be registered and sending signals.
|
||||||
*/
|
*/
|
||||||
public void setListening(boolean listen, boolean includeTouchScreenSensors) {
|
public void setListening(boolean listen, boolean includeTouchScreenSensors,
|
||||||
if (mListening == listen && mListeningTouchScreenSensors == includeTouchScreenSensors) {
|
boolean includeAodOnlySensors) {
|
||||||
|
if (mListening == listen && mListeningTouchScreenSensors == includeTouchScreenSensors
|
||||||
|
&& mListeningAodOnlySensors == includeAodOnlySensors) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mListening = listen;
|
mListening = listen;
|
||||||
mListeningTouchScreenSensors = includeTouchScreenSensors;
|
mListeningTouchScreenSensors = includeTouchScreenSensors;
|
||||||
|
mListeningAodOnlySensors = includeAodOnlySensors;
|
||||||
updateListening();
|
updateListening();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* If sensors should be registered and sending signals.
|
* If sensors should be registered and sending signals.
|
||||||
*/
|
*/
|
||||||
public void setListening(boolean listen, boolean includeTouchScreenSensors,
|
public void setListeningWithPowerState(boolean listen, boolean includeTouchScreenSensors,
|
||||||
boolean lowPowerStateOrOff) {
|
boolean includeAodRequiringSensors, boolean lowPowerStateOrOff) {
|
||||||
final boolean shouldRegisterProxSensors =
|
final boolean shouldRegisterProxSensors =
|
||||||
!mSelectivelyRegisterProxSensors || lowPowerStateOrOff;
|
!mSelectivelyRegisterProxSensors || lowPowerStateOrOff;
|
||||||
if (mListening == listen && mListeningTouchScreenSensors == includeTouchScreenSensors
|
if (mListening == listen
|
||||||
&& mListeningProxSensors == shouldRegisterProxSensors) {
|
&& mListeningTouchScreenSensors == includeTouchScreenSensors
|
||||||
|
&& mListeningProxSensors == shouldRegisterProxSensors
|
||||||
|
&& mListeningAodOnlySensors == includeAodRequiringSensors
|
||||||
|
) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mListening = listen;
|
mListening = listen;
|
||||||
mListeningTouchScreenSensors = includeTouchScreenSensors;
|
mListeningTouchScreenSensors = includeTouchScreenSensors;
|
||||||
mListeningProxSensors = shouldRegisterProxSensors;
|
mListeningProxSensors = shouldRegisterProxSensors;
|
||||||
|
mListeningAodOnlySensors = includeAodRequiringSensors;
|
||||||
updateListening();
|
updateListening();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -391,7 +413,8 @@ public class DozeSensors {
|
|||||||
for (TriggerSensor s : mTriggerSensors) {
|
for (TriggerSensor s : mTriggerSensors) {
|
||||||
boolean listen = mListening
|
boolean listen = mListening
|
||||||
&& (!s.mRequiresTouchscreen || mListeningTouchScreenSensors)
|
&& (!s.mRequiresTouchscreen || mListeningTouchScreenSensors)
|
||||||
&& (!s.mRequiresProx || mListeningProxSensors);
|
&& (!s.mRequiresProx || mListeningProxSensors)
|
||||||
|
&& (!s.mRequiresAod || mListeningAodOnlySensors);
|
||||||
s.setListening(listen);
|
s.setListening(listen);
|
||||||
if (listen) {
|
if (listen) {
|
||||||
anyListening = true;
|
anyListening = true;
|
||||||
@@ -499,6 +522,9 @@ public class DozeSensors {
|
|||||||
private final boolean mRequiresTouchscreen;
|
private final boolean mRequiresTouchscreen;
|
||||||
private final boolean mRequiresProx;
|
private final boolean mRequiresProx;
|
||||||
|
|
||||||
|
// Whether the sensor should only register if the device is in AOD
|
||||||
|
private final boolean mRequiresAod;
|
||||||
|
|
||||||
// Whether to immediately re-register this sensor after the sensor is triggered.
|
// Whether to immediately re-register this sensor after the sensor is triggered.
|
||||||
// If false, the sensor registration will be updated on the next AOD state transition.
|
// If false, the sensor registration will be updated on the next AOD state transition.
|
||||||
private final boolean mImmediatelyReRegister;
|
private final boolean mImmediatelyReRegister;
|
||||||
@@ -527,7 +553,8 @@ public class DozeSensors {
|
|||||||
requiresTouchscreen,
|
requiresTouchscreen,
|
||||||
false /* ignoresSetting */,
|
false /* ignoresSetting */,
|
||||||
false /* requiresProx */,
|
false /* requiresProx */,
|
||||||
true /* immediatelyReRegister */
|
true /* immediatelyReRegister */,
|
||||||
|
false
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -541,7 +568,8 @@ public class DozeSensors {
|
|||||||
boolean requiresTouchscreen,
|
boolean requiresTouchscreen,
|
||||||
boolean ignoresSetting,
|
boolean ignoresSetting,
|
||||||
boolean requiresProx,
|
boolean requiresProx,
|
||||||
boolean immediatelyReRegister
|
boolean immediatelyReRegister,
|
||||||
|
boolean requiresAod
|
||||||
) {
|
) {
|
||||||
this(
|
this(
|
||||||
new Sensor[]{ sensor },
|
new Sensor[]{ sensor },
|
||||||
@@ -554,7 +582,8 @@ public class DozeSensors {
|
|||||||
ignoresSetting,
|
ignoresSetting,
|
||||||
requiresProx,
|
requiresProx,
|
||||||
immediatelyReRegister,
|
immediatelyReRegister,
|
||||||
DevicePostureController.DEVICE_POSTURE_UNKNOWN
|
DevicePostureController.DEVICE_POSTURE_UNKNOWN,
|
||||||
|
requiresAod
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -569,7 +598,8 @@ public class DozeSensors {
|
|||||||
boolean ignoresSetting,
|
boolean ignoresSetting,
|
||||||
boolean requiresProx,
|
boolean requiresProx,
|
||||||
boolean immediatelyReRegister,
|
boolean immediatelyReRegister,
|
||||||
@DevicePostureController.DevicePostureInt int posture
|
@DevicePostureController.DevicePostureInt int posture,
|
||||||
|
boolean requiresAod
|
||||||
) {
|
) {
|
||||||
mSensors = sensors;
|
mSensors = sensors;
|
||||||
mSetting = setting;
|
mSetting = setting;
|
||||||
@@ -580,6 +610,7 @@ public class DozeSensors {
|
|||||||
mRequiresTouchscreen = requiresTouchscreen;
|
mRequiresTouchscreen = requiresTouchscreen;
|
||||||
mIgnoresSetting = ignoresSetting;
|
mIgnoresSetting = ignoresSetting;
|
||||||
mRequiresProx = requiresProx;
|
mRequiresProx = requiresProx;
|
||||||
|
mRequiresAod = requiresAod;
|
||||||
mPosture = posture;
|
mPosture = posture;
|
||||||
mImmediatelyReRegister = immediatelyReRegister;
|
mImmediatelyReRegister = immediatelyReRegister;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -111,6 +111,7 @@ public class DozeTriggers implements DozeMachine.Part {
|
|||||||
private boolean mWantProxSensor;
|
private boolean mWantProxSensor;
|
||||||
private boolean mWantTouchScreenSensors;
|
private boolean mWantTouchScreenSensors;
|
||||||
private boolean mWantSensors;
|
private boolean mWantSensors;
|
||||||
|
private boolean mInAod;
|
||||||
|
|
||||||
private final UserTracker.Callback mUserChangedCallback =
|
private final UserTracker.Callback mUserChangedCallback =
|
||||||
new UserTracker.Callback() {
|
new UserTracker.Callback() {
|
||||||
@@ -460,12 +461,19 @@ public class DozeTriggers implements DozeMachine.Part {
|
|||||||
mDozeSensors.requestTemporaryDisable();
|
mDozeSensors.requestTemporaryDisable();
|
||||||
break;
|
break;
|
||||||
case DOZE:
|
case DOZE:
|
||||||
case DOZE_AOD:
|
|
||||||
mAodInterruptRunnable = null;
|
mAodInterruptRunnable = null;
|
||||||
mWantProxSensor = newState != DozeMachine.State.DOZE;
|
mWantProxSensor = false;
|
||||||
mWantSensors = true;
|
mWantSensors = true;
|
||||||
mWantTouchScreenSensors = true;
|
mWantTouchScreenSensors = true;
|
||||||
if (newState == DozeMachine.State.DOZE_AOD && !sWakeDisplaySensorState) {
|
mInAod = false;
|
||||||
|
break;
|
||||||
|
case DOZE_AOD:
|
||||||
|
mAodInterruptRunnable = null;
|
||||||
|
mWantProxSensor = true;
|
||||||
|
mWantSensors = true;
|
||||||
|
mWantTouchScreenSensors = true;
|
||||||
|
mInAod = true;
|
||||||
|
if (!sWakeDisplaySensorState) {
|
||||||
onWakeScreen(false, newState, DozeLog.REASON_SENSOR_WAKE_UP_PRESENCE);
|
onWakeScreen(false, newState, DozeLog.REASON_SENSOR_WAKE_UP_PRESENCE);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -491,7 +499,7 @@ public class DozeTriggers implements DozeMachine.Part {
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
}
|
}
|
||||||
mDozeSensors.setListening(mWantSensors, mWantTouchScreenSensors);
|
mDozeSensors.setListening(mWantSensors, mWantTouchScreenSensors, mInAod);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void registerCallbacks() {
|
private void registerCallbacks() {
|
||||||
@@ -510,11 +518,12 @@ public class DozeTriggers implements DozeMachine.Part {
|
|||||||
|
|
||||||
private void stopListeningToAllTriggers() {
|
private void stopListeningToAllTriggers() {
|
||||||
unregisterCallbacks();
|
unregisterCallbacks();
|
||||||
mDozeSensors.setListening(false, false);
|
mDozeSensors.setListening(false, false, false);
|
||||||
mDozeSensors.setProxListening(false);
|
mDozeSensors.setProxListening(false);
|
||||||
mWantSensors = false;
|
mWantSensors = false;
|
||||||
mWantProxSensor = false;
|
mWantProxSensor = false;
|
||||||
mWantTouchScreenSensors = false;
|
mWantTouchScreenSensors = false;
|
||||||
|
mInAod = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -523,7 +532,8 @@ public class DozeTriggers implements DozeMachine.Part {
|
|||||||
final boolean lowPowerStateOrOff = state == Display.STATE_DOZE
|
final boolean lowPowerStateOrOff = state == Display.STATE_DOZE
|
||||||
|| state == Display.STATE_DOZE_SUSPEND || state == Display.STATE_OFF;
|
|| state == Display.STATE_DOZE_SUSPEND || state == Display.STATE_OFF;
|
||||||
mDozeSensors.setProxListening(mWantProxSensor && lowPowerStateOrOff);
|
mDozeSensors.setProxListening(mWantProxSensor && lowPowerStateOrOff);
|
||||||
mDozeSensors.setListening(mWantSensors, mWantTouchScreenSensors, lowPowerStateOrOff);
|
mDozeSensors.setListeningWithPowerState(mWantSensors, mWantTouchScreenSensors,
|
||||||
|
mInAod, lowPowerStateOrOff);
|
||||||
|
|
||||||
if (mAodInterruptRunnable != null && state == Display.STATE_ON) {
|
if (mAodInterruptRunnable != null && state == Display.STATE_ON) {
|
||||||
mAodInterruptRunnable.run();
|
mAodInterruptRunnable.run();
|
||||||
|
|||||||
@@ -144,7 +144,7 @@ public class DozeSensorsTest extends SysuiTestCase {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSensorDebounce() {
|
public void testSensorDebounce() {
|
||||||
mDozeSensors.setListening(true, true);
|
mDozeSensors.setListening(true, true, true);
|
||||||
|
|
||||||
mWakeLockScreenListener.onSensorChanged(mock(SensorManagerPlugin.SensorEvent.class));
|
mWakeLockScreenListener.onSensorChanged(mock(SensorManagerPlugin.SensorEvent.class));
|
||||||
mTestableLooper.processAllMessages();
|
mTestableLooper.processAllMessages();
|
||||||
@@ -162,7 +162,7 @@ public class DozeSensorsTest extends SysuiTestCase {
|
|||||||
@Test
|
@Test
|
||||||
public void testSetListening_firstTrue_registerSettingsObserver() {
|
public void testSetListening_firstTrue_registerSettingsObserver() {
|
||||||
verify(mSensorManager, never()).registerListener(any(), any(Sensor.class), anyInt());
|
verify(mSensorManager, never()).registerListener(any(), any(Sensor.class), anyInt());
|
||||||
mDozeSensors.setListening(true, true);
|
mDozeSensors.setListening(true, true, true);
|
||||||
|
|
||||||
verify(mTriggerSensor).registerSettingsObserver(any(ContentObserver.class));
|
verify(mTriggerSensor).registerSettingsObserver(any(ContentObserver.class));
|
||||||
}
|
}
|
||||||
@@ -170,8 +170,8 @@ public class DozeSensorsTest extends SysuiTestCase {
|
|||||||
@Test
|
@Test
|
||||||
public void testSetListening_twiceTrue_onlyRegisterSettingsObserverOnce() {
|
public void testSetListening_twiceTrue_onlyRegisterSettingsObserverOnce() {
|
||||||
verify(mSensorManager, never()).registerListener(any(), any(Sensor.class), anyInt());
|
verify(mSensorManager, never()).registerListener(any(), any(Sensor.class), anyInt());
|
||||||
mDozeSensors.setListening(true, true);
|
mDozeSensors.setListening(true, true, true);
|
||||||
mDozeSensors.setListening(true, true);
|
mDozeSensors.setListening(true, true, true);
|
||||||
|
|
||||||
verify(mTriggerSensor, times(1)).registerSettingsObserver(any(ContentObserver.class));
|
verify(mTriggerSensor, times(1)).registerSettingsObserver(any(ContentObserver.class));
|
||||||
}
|
}
|
||||||
@@ -196,7 +196,7 @@ public class DozeSensorsTest extends SysuiTestCase {
|
|||||||
assertFalse(mSensorTap.mRequested);
|
assertFalse(mSensorTap.mRequested);
|
||||||
|
|
||||||
// WHEN we're now in a low powered state
|
// WHEN we're now in a low powered state
|
||||||
dozeSensors.setListening(true, true, true);
|
dozeSensors.setListeningWithPowerState(true, true, true, true);
|
||||||
|
|
||||||
// THEN the tap sensor is registered
|
// THEN the tap sensor is registered
|
||||||
assertTrue(mSensorTap.mRequested);
|
assertTrue(mSensorTap.mRequested);
|
||||||
@@ -207,12 +207,12 @@ public class DozeSensorsTest extends SysuiTestCase {
|
|||||||
// GIVEN doze sensors enabled
|
// GIVEN doze sensors enabled
|
||||||
when(mAmbientDisplayConfiguration.enabled(anyInt())).thenReturn(true);
|
when(mAmbientDisplayConfiguration.enabled(anyInt())).thenReturn(true);
|
||||||
|
|
||||||
// GIVEN a trigger sensor
|
// GIVEN a trigger sensor that's enabled by settings
|
||||||
Sensor mockSensor = mock(Sensor.class);
|
Sensor mockSensor = mock(Sensor.class);
|
||||||
TriggerSensor triggerSensor = mDozeSensors.createDozeSensor(
|
TriggerSensor triggerSensor = mDozeSensors.createDozeSensorWithSettingEnabled(
|
||||||
mockSensor,
|
mockSensor,
|
||||||
/* settingEnabled */ true,
|
/* settingEnabled */ true
|
||||||
/* requiresTouchScreen */ true);
|
);
|
||||||
when(mSensorManager.requestTriggerSensor(eq(triggerSensor), eq(mockSensor)))
|
when(mSensorManager.requestTriggerSensor(eq(triggerSensor), eq(mockSensor)))
|
||||||
.thenReturn(true);
|
.thenReturn(true);
|
||||||
|
|
||||||
@@ -228,12 +228,12 @@ public class DozeSensorsTest extends SysuiTestCase {
|
|||||||
// GIVEN doze sensors enabled
|
// GIVEN doze sensors enabled
|
||||||
when(mAmbientDisplayConfiguration.enabled(anyInt())).thenReturn(true);
|
when(mAmbientDisplayConfiguration.enabled(anyInt())).thenReturn(true);
|
||||||
|
|
||||||
// GIVEN a trigger sensor
|
// GIVEN a trigger sensor that's not enabled by settings
|
||||||
Sensor mockSensor = mock(Sensor.class);
|
Sensor mockSensor = mock(Sensor.class);
|
||||||
TriggerSensor triggerSensor = mDozeSensors.createDozeSensor(
|
TriggerSensor triggerSensor = mDozeSensors.createDozeSensorWithSettingEnabled(
|
||||||
mockSensor,
|
mockSensor,
|
||||||
/* settingEnabled*/ false,
|
/* settingEnabled*/ false
|
||||||
/* requiresTouchScreen */ true);
|
);
|
||||||
when(mSensorManager.requestTriggerSensor(eq(triggerSensor), eq(mockSensor)))
|
when(mSensorManager.requestTriggerSensor(eq(triggerSensor), eq(mockSensor)))
|
||||||
.thenReturn(true);
|
.thenReturn(true);
|
||||||
|
|
||||||
@@ -249,12 +249,12 @@ public class DozeSensorsTest extends SysuiTestCase {
|
|||||||
// GIVEN doze sensors enabled
|
// GIVEN doze sensors enabled
|
||||||
when(mAmbientDisplayConfiguration.enabled(anyInt())).thenReturn(true);
|
when(mAmbientDisplayConfiguration.enabled(anyInt())).thenReturn(true);
|
||||||
|
|
||||||
// GIVEN a trigger sensor that's
|
// GIVEN a trigger sensor that's not enabled by settings
|
||||||
Sensor mockSensor = mock(Sensor.class);
|
Sensor mockSensor = mock(Sensor.class);
|
||||||
TriggerSensor triggerSensor = mDozeSensors.createDozeSensor(
|
TriggerSensor triggerSensor = mDozeSensors.createDozeSensorWithSettingEnabled(
|
||||||
mockSensor,
|
mockSensor,
|
||||||
/* settingEnabled*/ false,
|
/* settingEnabled*/ false
|
||||||
/* requiresTouchScreen */ true);
|
);
|
||||||
when(mSensorManager.requestTriggerSensor(eq(triggerSensor), eq(mockSensor)))
|
when(mSensorManager.requestTriggerSensor(eq(triggerSensor), eq(mockSensor)))
|
||||||
.thenReturn(true);
|
.thenReturn(true);
|
||||||
|
|
||||||
@@ -264,7 +264,7 @@ public class DozeSensorsTest extends SysuiTestCase {
|
|||||||
// WHEN ignoreSetting is called
|
// WHEN ignoreSetting is called
|
||||||
triggerSensor.ignoreSetting(true);
|
triggerSensor.ignoreSetting(true);
|
||||||
|
|
||||||
// THEN the sensor is registered
|
// THEN the sensor is still registered since the setting is ignore
|
||||||
assertTrue(triggerSensor.mRegistered);
|
assertTrue(triggerSensor.mRegistered);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -275,10 +275,10 @@ public class DozeSensorsTest extends SysuiTestCase {
|
|||||||
|
|
||||||
// GIVEN a trigger sensor
|
// GIVEN a trigger sensor
|
||||||
Sensor mockSensor = mock(Sensor.class);
|
Sensor mockSensor = mock(Sensor.class);
|
||||||
TriggerSensor triggerSensor = mDozeSensors.createDozeSensor(
|
TriggerSensor triggerSensor = mDozeSensors.createDozeSensorWithSettingEnabled(
|
||||||
mockSensor,
|
mockSensor,
|
||||||
/* settingEnabled*/ true,
|
/* settingEnabled*/ true
|
||||||
/* requiresTouchScreen */ true);
|
);
|
||||||
when(mSensorManager.requestTriggerSensor(eq(triggerSensor), eq(mockSensor)))
|
when(mSensorManager.requestTriggerSensor(eq(triggerSensor), eq(mockSensor)))
|
||||||
.thenReturn(true);
|
.thenReturn(true);
|
||||||
|
|
||||||
@@ -295,7 +295,7 @@ public class DozeSensorsTest extends SysuiTestCase {
|
|||||||
// GIVEN doze sensor that supports postures
|
// GIVEN doze sensor that supports postures
|
||||||
Sensor closedSensor = createSensor(Sensor.TYPE_LIGHT, Sensor.STRING_TYPE_LIGHT);
|
Sensor closedSensor = createSensor(Sensor.TYPE_LIGHT, Sensor.STRING_TYPE_LIGHT);
|
||||||
Sensor openedSensor = createSensor(Sensor.TYPE_PROXIMITY, Sensor.STRING_TYPE_LIGHT);
|
Sensor openedSensor = createSensor(Sensor.TYPE_PROXIMITY, Sensor.STRING_TYPE_LIGHT);
|
||||||
TriggerSensor triggerSensor = mDozeSensors.createDozeSensor(
|
TriggerSensor triggerSensor = mDozeSensors.createDozeSensorForPosture(
|
||||||
new Sensor[] {
|
new Sensor[] {
|
||||||
null /* unknown */,
|
null /* unknown */,
|
||||||
closedSensor,
|
closedSensor,
|
||||||
@@ -316,7 +316,7 @@ public class DozeSensorsTest extends SysuiTestCase {
|
|||||||
// GIVEN doze sensor that supports postures
|
// GIVEN doze sensor that supports postures
|
||||||
Sensor closedSensor = createSensor(Sensor.TYPE_LIGHT, Sensor.STRING_TYPE_LIGHT);
|
Sensor closedSensor = createSensor(Sensor.TYPE_LIGHT, Sensor.STRING_TYPE_LIGHT);
|
||||||
Sensor openedSensor = createSensor(Sensor.TYPE_PROXIMITY, Sensor.STRING_TYPE_LIGHT);
|
Sensor openedSensor = createSensor(Sensor.TYPE_PROXIMITY, Sensor.STRING_TYPE_LIGHT);
|
||||||
TriggerSensor triggerSensor = mDozeSensors.createDozeSensor(
|
TriggerSensor triggerSensor = mDozeSensors.createDozeSensorForPosture(
|
||||||
new Sensor[] {
|
new Sensor[] {
|
||||||
null /* unknown */,
|
null /* unknown */,
|
||||||
closedSensor,
|
closedSensor,
|
||||||
@@ -345,7 +345,7 @@ public class DozeSensorsTest extends SysuiTestCase {
|
|||||||
// GIVEN doze sensor that supports postures
|
// GIVEN doze sensor that supports postures
|
||||||
Sensor closedSensor = createSensor(Sensor.TYPE_LIGHT, Sensor.STRING_TYPE_LIGHT);
|
Sensor closedSensor = createSensor(Sensor.TYPE_LIGHT, Sensor.STRING_TYPE_LIGHT);
|
||||||
Sensor openedSensor = createSensor(Sensor.TYPE_PROXIMITY, Sensor.STRING_TYPE_LIGHT);
|
Sensor openedSensor = createSensor(Sensor.TYPE_PROXIMITY, Sensor.STRING_TYPE_LIGHT);
|
||||||
TriggerSensor triggerSensor = mDozeSensors.createDozeSensor(
|
TriggerSensor triggerSensor = mDozeSensors.createDozeSensorForPosture(
|
||||||
new Sensor[] {
|
new Sensor[] {
|
||||||
null /* unknown */,
|
null /* unknown */,
|
||||||
closedSensor,
|
closedSensor,
|
||||||
@@ -400,7 +400,7 @@ public class DozeSensorsTest extends SysuiTestCase {
|
|||||||
public void testUdfpsEnrollmentChanged() throws Exception {
|
public void testUdfpsEnrollmentChanged() throws Exception {
|
||||||
// GIVEN a UDFPS_LONG_PRESS trigger sensor that's not configured
|
// GIVEN a UDFPS_LONG_PRESS trigger sensor that's not configured
|
||||||
Sensor mockSensor = mock(Sensor.class);
|
Sensor mockSensor = mock(Sensor.class);
|
||||||
TriggerSensor triggerSensor = mDozeSensors.createDozeSensor(
|
TriggerSensor triggerSensor = mDozeSensors.createDozeSensorForPosture(
|
||||||
mockSensor,
|
mockSensor,
|
||||||
REASON_SENSOR_UDFPS_LONG_PRESS,
|
REASON_SENSOR_UDFPS_LONG_PRESS,
|
||||||
/* configured */ false);
|
/* configured */ false);
|
||||||
@@ -409,7 +409,7 @@ public class DozeSensorsTest extends SysuiTestCase {
|
|||||||
.thenReturn(true);
|
.thenReturn(true);
|
||||||
|
|
||||||
// WHEN listening state is set to TRUE
|
// WHEN listening state is set to TRUE
|
||||||
mDozeSensors.setListening(true, true);
|
mDozeSensors.setListening(true, true, true);
|
||||||
|
|
||||||
// THEN mRegistered is still false b/c !mConfigured
|
// THEN mRegistered is still false b/c !mConfigured
|
||||||
assertFalse(triggerSensor.mConfigured);
|
assertFalse(triggerSensor.mConfigured);
|
||||||
@@ -438,6 +438,35 @@ public class DozeSensorsTest extends SysuiTestCase {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void aodOnlySensor_onlyRegisteredWhenAodSensorsIncluded() {
|
||||||
|
// GIVEN doze sensors enabled
|
||||||
|
when(mAmbientDisplayConfiguration.enabled(anyInt())).thenReturn(true);
|
||||||
|
|
||||||
|
// GIVEN a trigger sensor that requires aod
|
||||||
|
Sensor mockSensor = mock(Sensor.class);
|
||||||
|
TriggerSensor aodOnlyTriggerSensor = mDozeSensors.createDozeSensorRequiringAod(mockSensor);
|
||||||
|
when(mSensorManager.requestTriggerSensor(eq(aodOnlyTriggerSensor), eq(mockSensor)))
|
||||||
|
.thenReturn(true);
|
||||||
|
mDozeSensors.addSensor(aodOnlyTriggerSensor);
|
||||||
|
|
||||||
|
// WHEN aod only sensors aren't included
|
||||||
|
mDozeSensors.setListening(/* listen */ true, /* includeTouchScreenSensors */true,
|
||||||
|
/* includeAodOnlySensors */false);
|
||||||
|
|
||||||
|
// THEN the sensor is not registered or requested
|
||||||
|
assertFalse(aodOnlyTriggerSensor.mRequested);
|
||||||
|
assertFalse(aodOnlyTriggerSensor.mRegistered);
|
||||||
|
|
||||||
|
// WHEN aod only sensors ARE included
|
||||||
|
mDozeSensors.setListening(/* listen */ true, /* includeTouchScreenSensors */true,
|
||||||
|
/* includeAodOnlySensors */true);
|
||||||
|
|
||||||
|
// THEN the sensor is registered and requested
|
||||||
|
assertTrue(aodOnlyTriggerSensor.mRequested);
|
||||||
|
assertTrue(aodOnlyTriggerSensor.mRegistered);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void liftToWake_defaultSetting_configDefaultFalse() {
|
public void liftToWake_defaultSetting_configDefaultFalse() {
|
||||||
// WHEN the default lift to wake gesture setting is false
|
// WHEN the default lift to wake gesture setting is false
|
||||||
@@ -494,8 +523,8 @@ public class DozeSensorsTest extends SysuiTestCase {
|
|||||||
mTriggerSensors = new TriggerSensor[] {mTriggerSensor, mSensorTap};
|
mTriggerSensors = new TriggerSensor[] {mTriggerSensor, mSensorTap};
|
||||||
}
|
}
|
||||||
|
|
||||||
public TriggerSensor createDozeSensor(Sensor sensor, boolean settingEnabled,
|
public TriggerSensor createDozeSensorWithSettingEnabled(Sensor sensor,
|
||||||
boolean requiresTouchScreen) {
|
boolean settingEnabled) {
|
||||||
return new TriggerSensor(/* sensor */ sensor,
|
return new TriggerSensor(/* sensor */ sensor,
|
||||||
/* setting name */ "test_setting",
|
/* setting name */ "test_setting",
|
||||||
/* settingDefault */ settingEnabled,
|
/* settingDefault */ settingEnabled,
|
||||||
@@ -504,11 +533,13 @@ public class DozeSensorsTest extends SysuiTestCase {
|
|||||||
/* reportsTouchCoordinate*/ false,
|
/* reportsTouchCoordinate*/ false,
|
||||||
/* requiresTouchscreen */ false,
|
/* requiresTouchscreen */ false,
|
||||||
/* ignoresSetting */ false,
|
/* ignoresSetting */ false,
|
||||||
requiresTouchScreen,
|
/* requiresProx */ false,
|
||||||
/* immediatelyReRegister */ true);
|
/* immediatelyReRegister */ true,
|
||||||
|
/* requiresAod */false
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public TriggerSensor createDozeSensor(
|
public TriggerSensor createDozeSensorForPosture(
|
||||||
Sensor sensor,
|
Sensor sensor,
|
||||||
int pulseReason,
|
int pulseReason,
|
||||||
boolean configured
|
boolean configured
|
||||||
@@ -522,15 +553,35 @@ public class DozeSensorsTest extends SysuiTestCase {
|
|||||||
/* requiresTouchscreen */ false,
|
/* requiresTouchscreen */ false,
|
||||||
/* ignoresSetting */ false,
|
/* ignoresSetting */ false,
|
||||||
/* requiresTouchScreen */ false,
|
/* requiresTouchScreen */ false,
|
||||||
/* immediatelyReRegister*/ true);
|
/* immediatelyReRegister*/ true,
|
||||||
|
false
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* create a doze sensor that supports postures and is enabled
|
* Create a doze sensor that requires Aod
|
||||||
*/
|
*/
|
||||||
public TriggerSensor createDozeSensor(Sensor[] sensors, int posture) {
|
public TriggerSensor createDozeSensorRequiringAod(Sensor sensor) {
|
||||||
|
return new TriggerSensor(/* sensor */ sensor,
|
||||||
|
/* setting name */ "aod_requiring_sensor",
|
||||||
|
/* settingDefault */ true,
|
||||||
|
/* configured */ true,
|
||||||
|
/* pulseReason*/ 0,
|
||||||
|
/* reportsTouchCoordinate*/ false,
|
||||||
|
/* requiresTouchscreen */ false,
|
||||||
|
/* ignoresSetting */ false,
|
||||||
|
/* requiresProx */ false,
|
||||||
|
/* immediatelyReRegister */ true,
|
||||||
|
/* requiresAoD */ true
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a doze sensor that supports postures and is enabled
|
||||||
|
*/
|
||||||
|
public TriggerSensor createDozeSensorForPosture(Sensor[] sensors, int posture) {
|
||||||
return new TriggerSensor(/* sensor */ sensors,
|
return new TriggerSensor(/* sensor */ sensors,
|
||||||
/* setting name */ "test_setting",
|
/* setting name */ "posture_test_setting",
|
||||||
/* settingDefault */ true,
|
/* settingDefault */ true,
|
||||||
/* configured */ true,
|
/* configured */ true,
|
||||||
/* pulseReason*/ 0,
|
/* pulseReason*/ 0,
|
||||||
@@ -539,7 +590,9 @@ public class DozeSensorsTest extends SysuiTestCase {
|
|||||||
/* ignoresSetting */ true,
|
/* ignoresSetting */ true,
|
||||||
/* requiresProx */ false,
|
/* requiresProx */ false,
|
||||||
/* immediatelyReRegister */ true,
|
/* immediatelyReRegister */ true,
|
||||||
posture);
|
posture,
|
||||||
|
/* requiresUi */ false
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addSensor(TriggerSensor sensor) {
|
public void addSensor(TriggerSensor sensor) {
|
||||||
|
|||||||
@@ -395,6 +395,14 @@ public class DozeTriggersTest extends SysuiTestCase {
|
|||||||
verify(mAuthController).onAodInterrupt(anyInt(), anyInt(), anyFloat(), anyFloat());
|
verify(mAuthController).onAodInterrupt(anyInt(), anyInt(), anyFloat(), anyFloat());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void udfpsLongPress_dozeState_notRegistered() {
|
||||||
|
// GIVEN device is DOZE_AOD_PAUSED
|
||||||
|
when(mMachine.getState()).thenReturn(DozeMachine.State.DOZE);
|
||||||
|
// beverlyt
|
||||||
|
}
|
||||||
|
|
||||||
private void waitForSensorManager() {
|
private void waitForSensorManager() {
|
||||||
mExecutor.runAllReady();
|
mExecutor.runAllReady();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user