Merge "Don't register for UDFPS long press in STATE_DOZE" into tm-qpr-dev am: e85826a6e8 am: 8279a3237b
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20807027 Change-Id: I60f0be13550e1db052a00c1c9dadc3b7512f9031 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -119,6 +119,7 @@ public class DozeSensors {
|
||||
private boolean mListening;
|
||||
private boolean mListeningTouchScreenSensors;
|
||||
private boolean mListeningProxSensors;
|
||||
private boolean mListeningAodOnlySensors;
|
||||
private boolean mUdfpsEnrolled;
|
||||
|
||||
@DevicePostureController.DevicePostureInt
|
||||
@@ -187,7 +188,8 @@ public class DozeSensors {
|
||||
dozeParameters.getPulseOnSigMotion(),
|
||||
DozeLog.PULSE_REASON_SENSOR_SIGMOTION,
|
||||
false /* touchCoords */,
|
||||
false /* touchscreen */),
|
||||
false /* touchscreen */
|
||||
),
|
||||
new TriggerSensor(
|
||||
mSensorManager.getDefaultSensor(Sensor.TYPE_PICK_UP_GESTURE),
|
||||
Settings.Secure.DOZE_PICK_UP_GESTURE,
|
||||
@@ -198,14 +200,17 @@ public class DozeSensors {
|
||||
false /* touchscreen */,
|
||||
false /* ignoresSetting */,
|
||||
false /* requires prox */,
|
||||
true /* immediatelyReRegister */),
|
||||
true /* immediatelyReRegister */,
|
||||
false /* requiresAod */
|
||||
),
|
||||
new TriggerSensor(
|
||||
findSensor(config.doubleTapSensorType()),
|
||||
Settings.Secure.DOZE_DOUBLE_TAP_GESTURE,
|
||||
true /* configured */,
|
||||
DozeLog.REASON_SENSOR_DOUBLE_TAP,
|
||||
dozeParameters.doubleTapReportsTouchCoordinates(),
|
||||
true /* touchscreen */),
|
||||
true /* touchscreen */
|
||||
),
|
||||
new TriggerSensor(
|
||||
findSensors(config.tapSensorTypeMapping()),
|
||||
Settings.Secure.DOZE_TAP_SCREEN_GESTURE,
|
||||
@@ -217,7 +222,9 @@ public class DozeSensors {
|
||||
false /* ignoresSetting */,
|
||||
dozeParameters.singleTapUsesProx(mDevicePosture) /* requiresProx */,
|
||||
true /* immediatelyReRegister */,
|
||||
mDevicePosture),
|
||||
mDevicePosture,
|
||||
false
|
||||
),
|
||||
new TriggerSensor(
|
||||
findSensor(config.longPressSensorType()),
|
||||
Settings.Secure.DOZE_PULSE_ON_LONG_PRESS,
|
||||
@@ -228,7 +235,9 @@ public class DozeSensors {
|
||||
true /* touchscreen */,
|
||||
false /* ignoresSetting */,
|
||||
dozeParameters.longPressUsesProx() /* requiresProx */,
|
||||
true /* immediatelyReRegister */),
|
||||
true /* immediatelyReRegister */,
|
||||
false /* requiresAod */
|
||||
),
|
||||
new TriggerSensor(
|
||||
findSensor(config.udfpsLongPressSensorType()),
|
||||
"doze_pulse_on_auth",
|
||||
@@ -239,7 +248,9 @@ public class DozeSensors {
|
||||
true /* touchscreen */,
|
||||
false /* ignoresSetting */,
|
||||
dozeParameters.longPressUsesProx(),
|
||||
false /* immediatelyReRegister */),
|
||||
false /* immediatelyReRegister */,
|
||||
true /* requiresAod */
|
||||
),
|
||||
new PluginSensor(
|
||||
new SensorManagerPlugin.Sensor(TYPE_WAKE_DISPLAY),
|
||||
Settings.Secure.DOZE_WAKE_DISPLAY_GESTURE,
|
||||
@@ -247,7 +258,8 @@ public class DozeSensors {
|
||||
&& mConfig.alwaysOnEnabled(UserHandle.USER_CURRENT),
|
||||
DozeLog.REASON_SENSOR_WAKE_UP_PRESENCE,
|
||||
false /* reports touch coordinates */,
|
||||
false /* touchscreen */),
|
||||
false /* touchscreen */
|
||||
),
|
||||
new PluginSensor(
|
||||
new SensorManagerPlugin.Sensor(TYPE_WAKE_LOCK_SCREEN),
|
||||
Settings.Secure.DOZE_WAKE_LOCK_SCREEN_GESTURE,
|
||||
@@ -255,7 +267,8 @@ public class DozeSensors {
|
||||
DozeLog.PULSE_REASON_SENSOR_WAKE_REACH,
|
||||
false /* reports touch coordinates */,
|
||||
false /* touchscreen */,
|
||||
mConfig.getWakeLockScreenDebounce()),
|
||||
mConfig.getWakeLockScreenDebounce()
|
||||
),
|
||||
new TriggerSensor(
|
||||
findSensor(config.quickPickupSensorType()),
|
||||
Settings.Secure.DOZE_QUICK_PICKUP_GESTURE,
|
||||
@@ -266,7 +279,9 @@ public class DozeSensors {
|
||||
false /* requiresTouchscreen */,
|
||||
false /* ignoresSetting */,
|
||||
false /* requiresProx */,
|
||||
true /* immediatelyReRegister */),
|
||||
true /* immediatelyReRegister */,
|
||||
false /* requiresAod */
|
||||
),
|
||||
};
|
||||
setProxListening(false); // Don't immediately start listening when we register.
|
||||
mProximitySensor.register(
|
||||
@@ -360,29 +375,36 @@ public class DozeSensors {
|
||||
/**
|
||||
* If sensors should be registered and sending signals.
|
||||
*/
|
||||
public void setListening(boolean listen, boolean includeTouchScreenSensors) {
|
||||
if (mListening == listen && mListeningTouchScreenSensors == includeTouchScreenSensors) {
|
||||
public void setListening(boolean listen, boolean includeTouchScreenSensors,
|
||||
boolean includeAodOnlySensors) {
|
||||
if (mListening == listen && mListeningTouchScreenSensors == includeTouchScreenSensors
|
||||
&& mListeningAodOnlySensors == includeAodOnlySensors) {
|
||||
return;
|
||||
}
|
||||
mListening = listen;
|
||||
mListeningTouchScreenSensors = includeTouchScreenSensors;
|
||||
mListeningAodOnlySensors = includeAodOnlySensors;
|
||||
updateListening();
|
||||
}
|
||||
|
||||
/**
|
||||
* If sensors should be registered and sending signals.
|
||||
*/
|
||||
public void setListening(boolean listen, boolean includeTouchScreenSensors,
|
||||
boolean lowPowerStateOrOff) {
|
||||
public void setListeningWithPowerState(boolean listen, boolean includeTouchScreenSensors,
|
||||
boolean includeAodRequiringSensors, boolean lowPowerStateOrOff) {
|
||||
final boolean shouldRegisterProxSensors =
|
||||
!mSelectivelyRegisterProxSensors || lowPowerStateOrOff;
|
||||
if (mListening == listen && mListeningTouchScreenSensors == includeTouchScreenSensors
|
||||
&& mListeningProxSensors == shouldRegisterProxSensors) {
|
||||
if (mListening == listen
|
||||
&& mListeningTouchScreenSensors == includeTouchScreenSensors
|
||||
&& mListeningProxSensors == shouldRegisterProxSensors
|
||||
&& mListeningAodOnlySensors == includeAodRequiringSensors
|
||||
) {
|
||||
return;
|
||||
}
|
||||
mListening = listen;
|
||||
mListeningTouchScreenSensors = includeTouchScreenSensors;
|
||||
mListeningProxSensors = shouldRegisterProxSensors;
|
||||
mListeningAodOnlySensors = includeAodRequiringSensors;
|
||||
updateListening();
|
||||
}
|
||||
|
||||
@@ -394,7 +416,8 @@ public class DozeSensors {
|
||||
for (TriggerSensor s : mTriggerSensors) {
|
||||
boolean listen = mListening
|
||||
&& (!s.mRequiresTouchscreen || mListeningTouchScreenSensors)
|
||||
&& (!s.mRequiresProx || mListeningProxSensors);
|
||||
&& (!s.mRequiresProx || mListeningProxSensors)
|
||||
&& (!s.mRequiresAod || mListeningAodOnlySensors);
|
||||
s.setListening(listen);
|
||||
if (listen) {
|
||||
anyListening = true;
|
||||
@@ -502,6 +525,9 @@ public class DozeSensors {
|
||||
private final boolean mRequiresTouchscreen;
|
||||
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.
|
||||
// If false, the sensor registration will be updated on the next AOD state transition.
|
||||
private final boolean mImmediatelyReRegister;
|
||||
@@ -530,7 +556,8 @@ public class DozeSensors {
|
||||
requiresTouchscreen,
|
||||
false /* ignoresSetting */,
|
||||
false /* requiresProx */,
|
||||
true /* immediatelyReRegister */
|
||||
true /* immediatelyReRegister */,
|
||||
false
|
||||
);
|
||||
}
|
||||
|
||||
@@ -544,7 +571,8 @@ public class DozeSensors {
|
||||
boolean requiresTouchscreen,
|
||||
boolean ignoresSetting,
|
||||
boolean requiresProx,
|
||||
boolean immediatelyReRegister
|
||||
boolean immediatelyReRegister,
|
||||
boolean requiresAod
|
||||
) {
|
||||
this(
|
||||
new Sensor[]{ sensor },
|
||||
@@ -557,7 +585,8 @@ public class DozeSensors {
|
||||
ignoresSetting,
|
||||
requiresProx,
|
||||
immediatelyReRegister,
|
||||
DevicePostureController.DEVICE_POSTURE_UNKNOWN
|
||||
DevicePostureController.DEVICE_POSTURE_UNKNOWN,
|
||||
requiresAod
|
||||
);
|
||||
}
|
||||
|
||||
@@ -572,7 +601,8 @@ public class DozeSensors {
|
||||
boolean ignoresSetting,
|
||||
boolean requiresProx,
|
||||
boolean immediatelyReRegister,
|
||||
@DevicePostureController.DevicePostureInt int posture
|
||||
@DevicePostureController.DevicePostureInt int posture,
|
||||
boolean requiresAod
|
||||
) {
|
||||
mSensors = sensors;
|
||||
mSetting = setting;
|
||||
@@ -583,6 +613,7 @@ public class DozeSensors {
|
||||
mRequiresTouchscreen = requiresTouchscreen;
|
||||
mIgnoresSetting = ignoresSetting;
|
||||
mRequiresProx = requiresProx;
|
||||
mRequiresAod = requiresAod;
|
||||
mPosture = posture;
|
||||
mImmediatelyReRegister = immediatelyReRegister;
|
||||
}
|
||||
|
||||
@@ -111,6 +111,7 @@ public class DozeTriggers implements DozeMachine.Part {
|
||||
private boolean mWantProxSensor;
|
||||
private boolean mWantTouchScreenSensors;
|
||||
private boolean mWantSensors;
|
||||
private boolean mInAod;
|
||||
|
||||
private final UserTracker.Callback mUserChangedCallback =
|
||||
new UserTracker.Callback() {
|
||||
@@ -460,12 +461,19 @@ public class DozeTriggers implements DozeMachine.Part {
|
||||
mDozeSensors.requestTemporaryDisable();
|
||||
break;
|
||||
case DOZE:
|
||||
case DOZE_AOD:
|
||||
mAodInterruptRunnable = null;
|
||||
mWantProxSensor = newState != DozeMachine.State.DOZE;
|
||||
mWantProxSensor = false;
|
||||
mWantSensors = 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);
|
||||
}
|
||||
break;
|
||||
@@ -491,7 +499,7 @@ public class DozeTriggers implements DozeMachine.Part {
|
||||
break;
|
||||
default:
|
||||
}
|
||||
mDozeSensors.setListening(mWantSensors, mWantTouchScreenSensors);
|
||||
mDozeSensors.setListening(mWantSensors, mWantTouchScreenSensors, mInAod);
|
||||
}
|
||||
|
||||
private void registerCallbacks() {
|
||||
@@ -510,11 +518,12 @@ public class DozeTriggers implements DozeMachine.Part {
|
||||
|
||||
private void stopListeningToAllTriggers() {
|
||||
unregisterCallbacks();
|
||||
mDozeSensors.setListening(false, false);
|
||||
mDozeSensors.setListening(false, false, false);
|
||||
mDozeSensors.setProxListening(false);
|
||||
mWantSensors = false;
|
||||
mWantProxSensor = false;
|
||||
mWantTouchScreenSensors = false;
|
||||
mInAod = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -523,7 +532,8 @@ public class DozeTriggers implements DozeMachine.Part {
|
||||
final boolean lowPowerStateOrOff = state == Display.STATE_DOZE
|
||||
|| state == Display.STATE_DOZE_SUSPEND || state == Display.STATE_OFF;
|
||||
mDozeSensors.setProxListening(mWantProxSensor && lowPowerStateOrOff);
|
||||
mDozeSensors.setListening(mWantSensors, mWantTouchScreenSensors, lowPowerStateOrOff);
|
||||
mDozeSensors.setListeningWithPowerState(mWantSensors, mWantTouchScreenSensors,
|
||||
mInAod, lowPowerStateOrOff);
|
||||
|
||||
if (mAodInterruptRunnable != null && state == Display.STATE_ON) {
|
||||
mAodInterruptRunnable.run();
|
||||
|
||||
@@ -146,7 +146,7 @@ public class DozeSensorsTest extends SysuiTestCase {
|
||||
|
||||
@Test
|
||||
public void testSensorDebounce() {
|
||||
mDozeSensors.setListening(true, true);
|
||||
mDozeSensors.setListening(true, true, true);
|
||||
|
||||
mWakeLockScreenListener.onSensorChanged(mock(SensorManagerPlugin.SensorEvent.class));
|
||||
mTestableLooper.processAllMessages();
|
||||
@@ -164,7 +164,7 @@ public class DozeSensorsTest extends SysuiTestCase {
|
||||
@Test
|
||||
public void testSetListening_firstTrue_registerSettingsObserver() {
|
||||
verify(mSensorManager, never()).registerListener(any(), any(Sensor.class), anyInt());
|
||||
mDozeSensors.setListening(true, true);
|
||||
mDozeSensors.setListening(true, true, true);
|
||||
|
||||
verify(mTriggerSensor).registerSettingsObserver(any(ContentObserver.class));
|
||||
}
|
||||
@@ -172,8 +172,8 @@ public class DozeSensorsTest extends SysuiTestCase {
|
||||
@Test
|
||||
public void testSetListening_twiceTrue_onlyRegisterSettingsObserverOnce() {
|
||||
verify(mSensorManager, never()).registerListener(any(), any(Sensor.class), anyInt());
|
||||
mDozeSensors.setListening(true, true);
|
||||
mDozeSensors.setListening(true, true);
|
||||
mDozeSensors.setListening(true, true, true);
|
||||
mDozeSensors.setListening(true, true, true);
|
||||
|
||||
verify(mTriggerSensor, times(1)).registerSettingsObserver(any(ContentObserver.class));
|
||||
}
|
||||
@@ -198,7 +198,7 @@ public class DozeSensorsTest extends SysuiTestCase {
|
||||
assertFalse(mSensorTap.mRequested);
|
||||
|
||||
// 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
|
||||
assertTrue(mSensorTap.mRequested);
|
||||
@@ -209,12 +209,12 @@ public class DozeSensorsTest extends SysuiTestCase {
|
||||
// GIVEN doze sensors enabled
|
||||
when(mAmbientDisplayConfiguration.enabled(anyInt())).thenReturn(true);
|
||||
|
||||
// GIVEN a trigger sensor
|
||||
// GIVEN a trigger sensor that's enabled by settings
|
||||
Sensor mockSensor = mock(Sensor.class);
|
||||
TriggerSensor triggerSensor = mDozeSensors.createDozeSensor(
|
||||
TriggerSensor triggerSensor = mDozeSensors.createDozeSensorWithSettingEnabled(
|
||||
mockSensor,
|
||||
/* settingEnabled */ true,
|
||||
/* requiresTouchScreen */ true);
|
||||
/* settingEnabled */ true
|
||||
);
|
||||
when(mSensorManager.requestTriggerSensor(eq(triggerSensor), eq(mockSensor)))
|
||||
.thenReturn(true);
|
||||
|
||||
@@ -230,12 +230,12 @@ public class DozeSensorsTest extends SysuiTestCase {
|
||||
// GIVEN doze sensors enabled
|
||||
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);
|
||||
TriggerSensor triggerSensor = mDozeSensors.createDozeSensor(
|
||||
TriggerSensor triggerSensor = mDozeSensors.createDozeSensorWithSettingEnabled(
|
||||
mockSensor,
|
||||
/* settingEnabled*/ false,
|
||||
/* requiresTouchScreen */ true);
|
||||
/* settingEnabled*/ false
|
||||
);
|
||||
when(mSensorManager.requestTriggerSensor(eq(triggerSensor), eq(mockSensor)))
|
||||
.thenReturn(true);
|
||||
|
||||
@@ -251,12 +251,12 @@ public class DozeSensorsTest extends SysuiTestCase {
|
||||
// GIVEN doze sensors enabled
|
||||
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);
|
||||
TriggerSensor triggerSensor = mDozeSensors.createDozeSensor(
|
||||
TriggerSensor triggerSensor = mDozeSensors.createDozeSensorWithSettingEnabled(
|
||||
mockSensor,
|
||||
/* settingEnabled*/ false,
|
||||
/* requiresTouchScreen */ true);
|
||||
/* settingEnabled*/ false
|
||||
);
|
||||
when(mSensorManager.requestTriggerSensor(eq(triggerSensor), eq(mockSensor)))
|
||||
.thenReturn(true);
|
||||
|
||||
@@ -266,7 +266,7 @@ public class DozeSensorsTest extends SysuiTestCase {
|
||||
// WHEN ignoreSetting is called
|
||||
triggerSensor.ignoreSetting(true);
|
||||
|
||||
// THEN the sensor is registered
|
||||
// THEN the sensor is still registered since the setting is ignore
|
||||
assertTrue(triggerSensor.mRegistered);
|
||||
}
|
||||
|
||||
@@ -277,10 +277,10 @@ public class DozeSensorsTest extends SysuiTestCase {
|
||||
|
||||
// GIVEN a trigger sensor
|
||||
Sensor mockSensor = mock(Sensor.class);
|
||||
TriggerSensor triggerSensor = mDozeSensors.createDozeSensor(
|
||||
TriggerSensor triggerSensor = mDozeSensors.createDozeSensorWithSettingEnabled(
|
||||
mockSensor,
|
||||
/* settingEnabled*/ true,
|
||||
/* requiresTouchScreen */ true);
|
||||
/* settingEnabled*/ true
|
||||
);
|
||||
when(mSensorManager.requestTriggerSensor(eq(triggerSensor), eq(mockSensor)))
|
||||
.thenReturn(true);
|
||||
|
||||
@@ -297,7 +297,7 @@ public class DozeSensorsTest extends SysuiTestCase {
|
||||
// GIVEN doze sensor that supports postures
|
||||
Sensor closedSensor = createSensor(Sensor.TYPE_LIGHT, Sensor.STRING_TYPE_LIGHT);
|
||||
Sensor openedSensor = createSensor(Sensor.TYPE_PROXIMITY, Sensor.STRING_TYPE_LIGHT);
|
||||
TriggerSensor triggerSensor = mDozeSensors.createDozeSensor(
|
||||
TriggerSensor triggerSensor = mDozeSensors.createDozeSensorForPosture(
|
||||
new Sensor[] {
|
||||
null /* unknown */,
|
||||
closedSensor,
|
||||
@@ -318,7 +318,7 @@ public class DozeSensorsTest extends SysuiTestCase {
|
||||
// GIVEN doze sensor that supports postures
|
||||
Sensor closedSensor = createSensor(Sensor.TYPE_LIGHT, Sensor.STRING_TYPE_LIGHT);
|
||||
Sensor openedSensor = createSensor(Sensor.TYPE_PROXIMITY, Sensor.STRING_TYPE_LIGHT);
|
||||
TriggerSensor triggerSensor = mDozeSensors.createDozeSensor(
|
||||
TriggerSensor triggerSensor = mDozeSensors.createDozeSensorForPosture(
|
||||
new Sensor[] {
|
||||
null /* unknown */,
|
||||
closedSensor,
|
||||
@@ -347,7 +347,7 @@ public class DozeSensorsTest extends SysuiTestCase {
|
||||
// GIVEN doze sensor that supports postures
|
||||
Sensor closedSensor = createSensor(Sensor.TYPE_LIGHT, Sensor.STRING_TYPE_LIGHT);
|
||||
Sensor openedSensor = createSensor(Sensor.TYPE_PROXIMITY, Sensor.STRING_TYPE_LIGHT);
|
||||
TriggerSensor triggerSensor = mDozeSensors.createDozeSensor(
|
||||
TriggerSensor triggerSensor = mDozeSensors.createDozeSensorForPosture(
|
||||
new Sensor[] {
|
||||
null /* unknown */,
|
||||
closedSensor,
|
||||
@@ -402,7 +402,7 @@ public class DozeSensorsTest extends SysuiTestCase {
|
||||
public void testUdfpsEnrollmentChanged() throws Exception {
|
||||
// GIVEN a UDFPS_LONG_PRESS trigger sensor that's not configured
|
||||
Sensor mockSensor = mock(Sensor.class);
|
||||
TriggerSensor triggerSensor = mDozeSensors.createDozeSensor(
|
||||
TriggerSensor triggerSensor = mDozeSensors.createDozeSensorForPosture(
|
||||
mockSensor,
|
||||
REASON_SENSOR_UDFPS_LONG_PRESS,
|
||||
/* configured */ false);
|
||||
@@ -411,7 +411,7 @@ public class DozeSensorsTest extends SysuiTestCase {
|
||||
.thenReturn(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
|
||||
assertFalse(triggerSensor.mConfigured);
|
||||
@@ -440,6 +440,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
|
||||
public void liftToWake_defaultSetting_configDefaultFalse() {
|
||||
// WHEN the default lift to wake gesture setting is false
|
||||
@@ -496,8 +525,8 @@ public class DozeSensorsTest extends SysuiTestCase {
|
||||
mTriggerSensors = new TriggerSensor[] {mTriggerSensor, mSensorTap};
|
||||
}
|
||||
|
||||
public TriggerSensor createDozeSensor(Sensor sensor, boolean settingEnabled,
|
||||
boolean requiresTouchScreen) {
|
||||
public TriggerSensor createDozeSensorWithSettingEnabled(Sensor sensor,
|
||||
boolean settingEnabled) {
|
||||
return new TriggerSensor(/* sensor */ sensor,
|
||||
/* setting name */ "test_setting",
|
||||
/* settingDefault */ settingEnabled,
|
||||
@@ -506,11 +535,13 @@ public class DozeSensorsTest extends SysuiTestCase {
|
||||
/* reportsTouchCoordinate*/ false,
|
||||
/* requiresTouchscreen */ false,
|
||||
/* ignoresSetting */ false,
|
||||
requiresTouchScreen,
|
||||
/* immediatelyReRegister */ true);
|
||||
/* requiresProx */ false,
|
||||
/* immediatelyReRegister */ true,
|
||||
/* requiresAod */false
|
||||
);
|
||||
}
|
||||
|
||||
public TriggerSensor createDozeSensor(
|
||||
public TriggerSensor createDozeSensorForPosture(
|
||||
Sensor sensor,
|
||||
int pulseReason,
|
||||
boolean configured
|
||||
@@ -524,15 +555,35 @@ public class DozeSensorsTest extends SysuiTestCase {
|
||||
/* requiresTouchscreen */ false,
|
||||
/* ignoresSetting */ 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,
|
||||
/* setting name */ "test_setting",
|
||||
/* setting name */ "posture_test_setting",
|
||||
/* settingDefault */ true,
|
||||
/* configured */ true,
|
||||
/* pulseReason*/ 0,
|
||||
@@ -541,7 +592,9 @@ public class DozeSensorsTest extends SysuiTestCase {
|
||||
/* ignoresSetting */ true,
|
||||
/* requiresProx */ false,
|
||||
/* immediatelyReRegister */ true,
|
||||
posture);
|
||||
posture,
|
||||
/* requiresUi */ false
|
||||
);
|
||||
}
|
||||
|
||||
public void addSensor(TriggerSensor sensor) {
|
||||
|
||||
@@ -395,6 +395,14 @@ public class DozeTriggersTest extends SysuiTestCase {
|
||||
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() {
|
||||
mExecutor.runAllReady();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user