DozeSensors uses default pickup config value
Instead of defaulting to TRUE if the setting value is unset/null. Test: atest DozeSensorsTest Test: manually test on device, see lift to wake is default ON/OFF and observe the lift to wake gesture matches the defualt value in settings Fixes: 256185823 Change-Id: I7ab03e23066047b4d51f03ccf98b9ebc8d0c809f
This commit is contained in:
@@ -22,6 +22,7 @@ import static com.android.systemui.plugins.SensorManagerPlugin.Sensor.TYPE_WAKE_
|
||||
import static com.android.systemui.plugins.SensorManagerPlugin.Sensor.TYPE_WAKE_LOCK_SCREEN;
|
||||
|
||||
import android.annotation.AnyThread;
|
||||
import android.content.res.Resources;
|
||||
import android.database.ContentObserver;
|
||||
import android.hardware.Sensor;
|
||||
import android.hardware.SensorManager;
|
||||
@@ -40,6 +41,7 @@ import android.view.Display;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
|
||||
import com.android.internal.R;
|
||||
import com.android.internal.logging.UiEvent;
|
||||
import com.android.internal.logging.UiEventLogger;
|
||||
import com.android.internal.logging.UiEventLoggerImpl;
|
||||
@@ -140,6 +142,7 @@ public class DozeSensors {
|
||||
}
|
||||
|
||||
DozeSensors(
|
||||
Resources resources,
|
||||
AsyncSensorManager sensorManager,
|
||||
DozeParameters dozeParameters,
|
||||
AmbientDisplayConfiguration config,
|
||||
@@ -185,7 +188,8 @@ public class DozeSensors {
|
||||
new TriggerSensor(
|
||||
mSensorManager.getDefaultSensor(Sensor.TYPE_PICK_UP_GESTURE),
|
||||
Settings.Secure.DOZE_PICK_UP_GESTURE,
|
||||
true /* settingDef */,
|
||||
resources.getBoolean(
|
||||
R.bool.config_dozePickupGestureEnabled) /* settingDef */,
|
||||
config.dozePickupSensorAvailable(),
|
||||
DozeLog.REASON_SENSOR_PICKUP, false /* touchCoords */,
|
||||
false /* touchscreen */,
|
||||
|
||||
@@ -210,7 +210,7 @@ public class DozeTriggers implements DozeMachine.Part {
|
||||
mAllowPulseTriggers = true;
|
||||
mSessionTracker = sessionTracker;
|
||||
|
||||
mDozeSensors = new DozeSensors(mSensorManager, dozeParameters,
|
||||
mDozeSensors = new DozeSensors(mContext.getResources(), mSensorManager, dozeParameters,
|
||||
config, wakeLock, this::onSensor, this::onProximityFar, dozeLog, proximitySensor,
|
||||
secureSettings, authController, devicePostureController, userTracker);
|
||||
mDockManager = dockManager;
|
||||
|
||||
@@ -35,6 +35,7 @@ import static org.mockito.Mockito.times;
|
||||
import static org.mockito.Mockito.verify;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
import android.content.res.Resources;
|
||||
import android.database.ContentObserver;
|
||||
import android.hardware.Sensor;
|
||||
import android.hardware.display.AmbientDisplayConfiguration;
|
||||
@@ -76,7 +77,8 @@ import java.util.function.Consumer;
|
||||
@RunWithLooper
|
||||
@SmallTest
|
||||
public class DozeSensorsTest extends SysuiTestCase {
|
||||
|
||||
@Mock
|
||||
private Resources mResources;
|
||||
@Mock
|
||||
private AsyncSensorManager mSensorManager;
|
||||
@Mock
|
||||
@@ -426,7 +428,7 @@ public class DozeSensorsTest extends SysuiTestCase {
|
||||
|
||||
@Test
|
||||
public void testGesturesAllInitiallyRespectSettings() {
|
||||
DozeSensors dozeSensors = new DozeSensors(mSensorManager, mDozeParameters,
|
||||
DozeSensors dozeSensors = new DozeSensors(mResources, mSensorManager, mDozeParameters,
|
||||
mAmbientDisplayConfiguration, mWakeLock, mCallback, mProxCallback, mDozeLog,
|
||||
mProximitySensor, mFakeSettings, mAuthController,
|
||||
mDevicePostureController, mUserTracker);
|
||||
@@ -436,9 +438,47 @@ public class DozeSensorsTest extends SysuiTestCase {
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void liftToWake_defaultSetting_configDefaultFalse() {
|
||||
// WHEN the default lift to wake gesture setting is false
|
||||
when(mResources.getBoolean(
|
||||
com.android.internal.R.bool.config_dozePickupGestureEnabled)).thenReturn(false);
|
||||
|
||||
DozeSensors dozeSensors = new DozeSensors(mResources, mSensorManager, mDozeParameters,
|
||||
mAmbientDisplayConfiguration, mWakeLock, mCallback, mProxCallback, mDozeLog,
|
||||
mProximitySensor, mFakeSettings, mAuthController,
|
||||
mDevicePostureController, mUserTracker);
|
||||
|
||||
for (TriggerSensor sensor : dozeSensors.mTriggerSensors) {
|
||||
// THEN lift to wake's TriggerSensor enabledBySettings is false
|
||||
if (sensor.mPulseReason == DozeLog.REASON_SENSOR_PICKUP) {
|
||||
assertFalse(sensor.enabledBySetting());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void liftToWake_defaultSetting_configDefaultTrue() {
|
||||
// WHEN the default lift to wake gesture setting is true
|
||||
when(mResources.getBoolean(
|
||||
com.android.internal.R.bool.config_dozePickupGestureEnabled)).thenReturn(true);
|
||||
|
||||
DozeSensors dozeSensors = new DozeSensors(mResources, mSensorManager, mDozeParameters,
|
||||
mAmbientDisplayConfiguration, mWakeLock, mCallback, mProxCallback, mDozeLog,
|
||||
mProximitySensor, mFakeSettings, mAuthController,
|
||||
mDevicePostureController, mUserTracker);
|
||||
|
||||
for (TriggerSensor sensor : dozeSensors.mTriggerSensors) {
|
||||
// THEN lift to wake's TriggerSensor enabledBySettings is true
|
||||
if (sensor.mPulseReason == DozeLog.REASON_SENSOR_PICKUP) {
|
||||
assertTrue(sensor.enabledBySetting());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class TestableDozeSensors extends DozeSensors {
|
||||
TestableDozeSensors() {
|
||||
super(mSensorManager, mDozeParameters,
|
||||
super(mResources, mSensorManager, mDozeParameters,
|
||||
mAmbientDisplayConfiguration, mWakeLock, mCallback, mProxCallback, mDozeLog,
|
||||
mProximitySensor, mFakeSettings, mAuthController,
|
||||
mDevicePostureController, mUserTracker);
|
||||
|
||||
Reference in New Issue
Block a user