diff --git a/packages/SystemUI/res/values/config.xml b/packages/SystemUI/res/values/config.xml
index 6e61148f4ac87..4689fb8f413a5 100644
--- a/packages/SystemUI/res/values/config.xml
+++ b/packages/SystemUI/res/values/config.xml
@@ -174,6 +174,23 @@
true
+
+ false
+
+
+ true
+
+
+ true
+
true
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java b/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java
index b7f6e2bb965a0..5cea31b5a905e 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java
@@ -81,6 +81,10 @@ public class DozeSensors {
private boolean mSettingRegistered;
private boolean mListening;
private boolean mListeningTouchScreenSensors;
+ private boolean mListeningProxSensors;
+
+ // whether to only register sensors that use prox when the display state is dozing or off
+ private boolean mSelectivelyRegisterProxSensors;
@VisibleForTesting
public enum DozeSensorsUiEvent implements UiEventLogger.UiEventEnum {
@@ -112,6 +116,8 @@ public class DozeSensors {
mSecureSettings = secureSettings;
mCallback = callback;
mProximitySensor = proximitySensor;
+ mSelectivelyRegisterProxSensors = dozeParameters.getSelectivelyRegisterSensorsUsingProx();
+ mListeningProxSensors = !mSelectivelyRegisterProxSensors;
boolean udfpsEnrolled =
authController.isUdfpsEnrolled(KeyguardUpdateMonitor.getCurrentUser());
@@ -131,6 +137,7 @@ public class DozeSensors {
DozeLog.REASON_SENSOR_PICKUP, false /* touchCoords */,
false /* touchscreen */,
false /* ignoresSetting */,
+ false /* requires prox */,
dozeLog),
new TriggerSensor(
findSensorWithType(config.doubleTapSensorType()),
@@ -143,10 +150,13 @@ public class DozeSensors {
new TriggerSensor(
findSensorWithType(config.tapSensorType()),
Settings.Secure.DOZE_TAP_SCREEN_GESTURE,
+ true /* settingDef */,
true /* configured */,
DozeLog.REASON_SENSOR_TAP,
false /* reports touch coordinates */,
true /* touchscreen */,
+ false /* ignoresSetting */,
+ dozeParameters.singleTapUsesProx() /* requiresProx */,
dozeLog),
new TriggerSensor(
findSensorWithType(config.longPressSensorType()),
@@ -156,6 +166,8 @@ public class DozeSensors {
DozeLog.PULSE_REASON_SENSOR_LONG_PRESS,
true /* reports touch coordinates */,
true /* touchscreen */,
+ false /* ignoresSetting */,
+ dozeParameters.longPressUsesProx() /* requiresProx */,
dozeLog),
new TriggerSensor(
findSensorWithType(config.udfpsLongPressSensorType()),
@@ -165,6 +177,8 @@ public class DozeSensors {
DozeLog.REASON_SENSOR_UDFPS_LONG_PRESS,
true /* reports touch coordinates */,
true /* touchscreen */,
+ false /* ignoresSetting */,
+ dozeParameters.longPressUsesProx(),
dozeLog),
new PluginSensor(
new SensorManagerPlugin.Sensor(TYPE_WAKE_DISPLAY),
@@ -254,6 +268,23 @@ public class DozeSensors {
updateListening();
}
+ /**
+ * If sensors should be registered and sending signals.
+ */
+ public void setListening(boolean listen, boolean includeTouchScreenSensors,
+ boolean lowPowerStateOrOff) {
+ final boolean shouldRegisterProxSensors =
+ !mSelectivelyRegisterProxSensors || lowPowerStateOrOff;
+ if (mListening == listen && mListeningTouchScreenSensors == includeTouchScreenSensors
+ && mListeningProxSensors == shouldRegisterProxSensors) {
+ return;
+ }
+ mListening = listen;
+ mListeningTouchScreenSensors = includeTouchScreenSensors;
+ mListeningProxSensors = shouldRegisterProxSensors;
+ updateListening();
+ }
+
/**
* Registers/unregisters sensors based on internal state.
*/
@@ -261,7 +292,8 @@ public class DozeSensors {
boolean anyListening = false;
for (TriggerSensor s : mSensors) {
boolean listen = mListening
- && (!s.mRequiresTouchscreen || mListeningTouchScreenSensors);
+ && (!s.mRequiresTouchscreen || mListeningTouchScreenSensors)
+ && (!s.mRequiresProx || mListeningProxSensors);
s.setListening(listen);
if (listen) {
anyListening = true;
@@ -337,6 +369,8 @@ public class DozeSensors {
public void dump(PrintWriter pw) {
pw.println("mListening=" + mListening);
pw.println("mListeningTouchScreenSensors=" + mListeningTouchScreenSensors);
+ pw.println("mSelectivelyRegisterProxSensors=" + mSelectivelyRegisterProxSensors);
+ pw.println("mListeningProxSensors=" + mListeningProxSensors);
IndentingPrintWriter idpw = new IndentingPrintWriter(pw);
idpw.increaseIndent();
for (TriggerSensor s : mSensors) {
@@ -361,6 +395,7 @@ public class DozeSensors {
private final boolean mReportsTouchCoordinates;
private final boolean mSettingDefault;
private final boolean mRequiresTouchscreen;
+ private final boolean mRequiresProx;
protected boolean mRequested;
protected boolean mRegistered;
@@ -378,12 +413,14 @@ public class DozeSensors {
boolean configured, int pulseReason, boolean reportsTouchCoordinates,
boolean requiresTouchscreen, DozeLog dozeLog) {
this(sensor, setting, settingDef, configured, pulseReason, reportsTouchCoordinates,
- requiresTouchscreen, false /* ignoresSetting */, dozeLog);
+ requiresTouchscreen, false /* ignoresSetting */,
+ false /* requiresProx */, dozeLog);
}
private TriggerSensor(Sensor sensor, String setting, boolean settingDef,
boolean configured, int pulseReason, boolean reportsTouchCoordinates,
- boolean requiresTouchscreen, boolean ignoresSetting, DozeLog dozeLog) {
+ boolean requiresTouchscreen, boolean ignoresSetting, boolean requiresProx,
+ DozeLog dozeLog) {
mSensor = sensor;
mSetting = setting;
mSettingDefault = settingDef;
@@ -392,6 +429,7 @@ public class DozeSensors {
mReportsTouchCoordinates = reportsTouchCoordinates;
mRequiresTouchscreen = requiresTouchscreen;
mIgnoresSetting = ignoresSetting;
+ mRequiresProx = requiresProx;
mDozeLog = dozeLog;
}
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java b/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java
index 04b46705226f7..c966d778b7ded 100644
--- a/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java
+++ b/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java
@@ -17,7 +17,6 @@
package com.android.systemui.doze;
import android.annotation.Nullable;
-import android.app.AlarmManager;
import android.app.UiModeManager;
import android.content.BroadcastReceiver;
import android.content.Context;
@@ -42,7 +41,6 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.systemui.Dependency;
import com.android.systemui.biometrics.AuthController;
import com.android.systemui.broadcast.BroadcastDispatcher;
-import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.dock.DockManager;
import com.android.systemui.doze.dagger.DozeScope;
@@ -101,15 +99,16 @@ public class DozeTriggers implements DozeMachine.Part {
private final BroadcastDispatcher mBroadcastDispatcher;
private final AuthController mAuthController;
private final DelayableExecutor mMainExecutor;
- private final DelayableExecutor mBgExecutor;
private long mNotificationPulseTime;
private boolean mPulsePending;
private final MetricsLogger mMetricsLogger = Dependency.get(MetricsLogger.class);
- private boolean mWantProx;
- private boolean mWantSensors;
+
+ /** see {@link #onProximityFar} prox for callback */
+ private boolean mWantProxSensor;
private boolean mWantTouchScreenSensors;
+ private boolean mWantSensors;
@VisibleForTesting
public enum DozingUpdateUiEvent implements UiEventLogger.UiEventEnum {
@@ -177,13 +176,13 @@ public class DozeTriggers implements DozeMachine.Part {
@Inject
public DozeTriggers(Context context, DozeHost dozeHost,
- AlarmManager alarmManager, AmbientDisplayConfiguration config,
+ AmbientDisplayConfiguration config,
DozeParameters dozeParameters, AsyncSensorManager sensorManager,
WakeLock wakeLock, DockManager dockManager,
ProximitySensor proximitySensor, ProximitySensor.ProximityCheck proxCheck,
DozeLog dozeLog, BroadcastDispatcher broadcastDispatcher,
SecureSettings secureSettings, AuthController authController,
- @Main DelayableExecutor mainExecutor, @Background DelayableExecutor bgExecutor) {
+ @Main DelayableExecutor mainExecutor) {
mContext = context;
mDozeHost = dozeHost;
mConfig = config;
@@ -201,7 +200,6 @@ public class DozeTriggers implements DozeMachine.Part {
mBroadcastDispatcher = broadcastDispatcher;
mAuthController = authController;
mMainExecutor = mainExecutor;
- mBgExecutor = bgExecutor;
}
@Override
@@ -459,7 +457,7 @@ public class DozeTriggers implements DozeMachine.Part {
break;
case DOZE:
case DOZE_AOD:
- mWantProx = newState != DozeMachine.State.DOZE;
+ mWantProxSensor = newState != DozeMachine.State.DOZE;
mWantSensors = true;
mWantTouchScreenSensors = true;
if (newState == DozeMachine.State.DOZE_AOD && !sWakeDisplaySensorState) {
@@ -468,15 +466,15 @@ public class DozeTriggers implements DozeMachine.Part {
break;
case DOZE_AOD_PAUSED:
case DOZE_AOD_PAUSING:
- mWantProx = true;
+ mWantProxSensor = true;
break;
case DOZE_PULSING:
case DOZE_PULSING_BRIGHT:
- mWantProx = true;
+ mWantProxSensor = true;
mWantTouchScreenSensors = false;
break;
case DOZE_AOD_DOCKED:
- mWantProx = false;
+ mWantProxSensor = false;
mWantTouchScreenSensors = false;
break;
case DOZE_PULSE_DONE:
@@ -490,7 +488,7 @@ public class DozeTriggers implements DozeMachine.Part {
mDozeSensors.setListening(false, false);
mDozeSensors.setProxListening(false);
mWantSensors = false;
- mWantProx = false;
+ mWantProxSensor = false;
mWantTouchScreenSensors = false;
break;
default:
@@ -501,10 +499,10 @@ public class DozeTriggers implements DozeMachine.Part {
@Override
public void onScreenState(int state) {
mDozeSensors.onScreenState(state);
- mDozeSensors.setProxListening(mWantProx && (state == Display.STATE_DOZE
- || state == Display.STATE_DOZE_SUSPEND
- || state == Display.STATE_OFF));
- mDozeSensors.setListening(mWantSensors, mWantTouchScreenSensors);
+ 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);
}
/**
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java
index c23f1ad6f9c9e..86ef0a727831e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeParameters.java
@@ -24,15 +24,20 @@ import android.os.UserHandle;
import android.provider.Settings;
import android.util.MathUtils;
+import androidx.annotation.NonNull;
+
+import com.android.systemui.Dumpable;
import com.android.systemui.R;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.doze.AlwaysOnDisplayPolicy;
import com.android.systemui.doze.DozeScreenState;
+import com.android.systemui.dump.DumpManager;
import com.android.systemui.statusbar.FeatureFlags;
import com.android.systemui.statusbar.policy.BatteryController;
import com.android.systemui.tuner.TunerService;
+import java.io.FileDescriptor;
import java.io.PrintWriter;
import javax.inject.Inject;
@@ -42,7 +47,7 @@ import javax.inject.Inject;
*/
@SysUISingleton
public class DozeParameters implements TunerService.Tunable,
- com.android.systemui.plugins.statusbar.DozeParameters {
+ com.android.systemui.plugins.statusbar.DozeParameters, Dumpable {
private static final int MAX_DURATION = 60 * 1000;
public static final boolean FORCE_NO_BLANKING =
SystemProperties.getBoolean("debug.force_no_blanking", false);
@@ -68,11 +73,13 @@ public class DozeParameters implements TunerService.Tunable,
PowerManager powerManager,
BatteryController batteryController,
TunerService tunerService,
+ DumpManager dumpManager,
FeatureFlags featureFlags) {
mResources = resources;
mAmbientDisplayConfiguration = ambientDisplayConfiguration;
mAlwaysOnPolicy = alwaysOnDisplayPolicy;
mBatteryController = batteryController;
+ dumpManager.registerDumpable("DozeParameters", this);
mControlScreenOffAnimation = !getDisplayNeedsBlanking();
mPowerManager = powerManager;
@@ -85,20 +92,6 @@ public class DozeParameters implements TunerService.Tunable,
Settings.Secure.ACCESSIBILITY_DISPLAY_INVERSION_ENABLED);
}
- public void dump(PrintWriter pw) {
- pw.println(" DozeParameters:");
- pw.print(" getDisplayStateSupported(): "); pw.println(getDisplayStateSupported());
- pw.print(" getPulseDuration(): "); pw.println(getPulseDuration());
- pw.print(" getPulseInDuration(): "); pw.println(getPulseInDuration());
- pw.print(" getPulseInVisibleDuration(): "); pw.println(getPulseVisibleDuration());
- pw.print(" getPulseOutDuration(): "); pw.println(getPulseOutDuration());
- pw.print(" getPulseOnSigMotion(): "); pw.println(getPulseOnSigMotion());
- pw.print(" getVibrateOnSigMotion(): "); pw.println(getVibrateOnSigMotion());
- pw.print(" getVibrateOnPickup(): "); pw.println(getVibrateOnPickup());
- pw.print(" getProxCheckBeforePulse(): "); pw.println(getProxCheckBeforePulse());
- pw.print(" getPickupVibrationThreshold(): "); pw.println(getPickupVibrationThreshold());
- }
-
public boolean getDisplayStateSupported() {
return getBoolean("doze.display.supported", R.bool.doze_display_state_supported);
}
@@ -144,6 +137,16 @@ public class DozeParameters implements TunerService.Tunable,
return getBoolean("doze.pulse.proxcheck", R.bool.doze_proximity_check_before_pulse);
}
+ /**
+ * @return true if we should only register for sensors that use the proximity sensor when the
+ * display state is {@link android.view.Display.STATE_OFF},
+ * {@link android.view.Display.STATE_DOZE} or {@link android.view.Display.STATE_DOZE_SUSPEND}
+ */
+ public boolean getSelectivelyRegisterSensorsUsingProx() {
+ return getBoolean("doze.prox.selectively_register",
+ R.bool.doze_selectively_register_prox);
+ }
+
public int getPickupVibrationThreshold() {
return getInt("doze.pickup.vibration.threshold", R.integer.doze_pickup_vibration_threshold);
}
@@ -233,8 +236,38 @@ public class DozeParameters implements TunerService.Tunable,
return mResources.getBoolean(R.bool.doze_double_tap_reports_touch_coordinates);
}
+ /**
+ * Whether the single tap sensor uses the proximity sensor.
+ */
+ public boolean singleTapUsesProx() {
+ return mResources.getBoolean(R.bool.doze_single_tap_uses_prox);
+ }
+
+ /**
+ * Whether the long press sensor uses the proximity sensor.
+ */
+ public boolean longPressUsesProx() {
+ return mResources.getBoolean(R.bool.doze_long_press_uses_prox);
+ }
+
@Override
public void onTuningChanged(String key, String newValue) {
mDozeAlwaysOn = mAmbientDisplayConfiguration.alwaysOnEnabled(UserHandle.USER_CURRENT);
}
+
+ @Override
+ public void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter pw, @NonNull String[] args) {
+ pw.print("getDisplayStateSupported(): "); pw.println(getDisplayStateSupported());
+ pw.print("getPulseDuration(): "); pw.println(getPulseDuration());
+ pw.print("getPulseInDuration(): "); pw.println(getPulseInDuration());
+ pw.print("getPulseInVisibleDuration(): "); pw.println(getPulseVisibleDuration());
+ pw.print("getPulseOutDuration(): "); pw.println(getPulseOutDuration());
+ pw.print("getPulseOnSigMotion(): "); pw.println(getPulseOnSigMotion());
+ pw.print("getVibrateOnSigMotion(): "); pw.println(getVibrateOnSigMotion());
+ pw.print("getVibrateOnPickup(): "); pw.println(getVibrateOnPickup());
+ pw.print("getProxCheckBeforePulse(): "); pw.println(getProxCheckBeforePulse());
+ pw.print("getPickupVibrationThreshold(): "); pw.println(getPickupVibrationThreshold());
+ pw.print("getSelectivelyRegisterSensorsUsingProx(): ");
+ pw.println(getSelectivelyRegisterSensorsUsingProx());
+ }
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeConfigurationUtil.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeConfigurationUtil.java
index 1aeb0d8a5361b..fe2103ccc5574 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeConfigurationUtil.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeConfigurationUtil.java
@@ -39,6 +39,9 @@ public class DozeConfigurationUtil {
when(params.getProxCheckBeforePulse()).thenReturn(true);
when(params.doubleTapReportsTouchCoordinates()).thenReturn(false);
when(params.getDisplayNeedsBlanking()).thenReturn(false);
+ when(params.getSelectivelyRegisterSensorsUsingProx()).thenReturn(false);
+ when(params.singleTapUsesProx()).thenReturn(true);
+ when(params.longPressUsesProx()).thenReturn(true);
doneHolder[0] = true;
return params;
diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSensorsTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSensorsTest.java
index 2320f4ee2b60b..0c94f09c8572a 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSensorsTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeSensorsTest.java
@@ -16,9 +16,11 @@
package com.android.systemui.doze;
+import static com.android.systemui.doze.DozeLog.REASON_SENSOR_TAP;
import static com.android.systemui.plugins.SensorManagerPlugin.Sensor.TYPE_WAKE_LOCK_SCREEN;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyFloat;
import static org.mockito.ArgumentMatchers.anyInt;
@@ -87,6 +89,7 @@ public class DozeSensorsTest extends SysuiTestCase {
private SensorManagerPlugin.SensorEventListener mWakeLockScreenListener;
private TestableLooper mTestableLooper;
private DozeSensors mDozeSensors;
+ private TriggerSensor mSensorTap;
@Before
public void setUp() {
@@ -149,6 +152,24 @@ public class DozeSensorsTest extends SysuiTestCase {
verify(mTriggerSensor).setListening(false);
}
+ @Test
+ public void testRegisterSensorsUsingProx() {
+ // GIVEN we only should register sensors using prox when not in low-powered mode / off
+ // and the single tap sensor uses the proximity sensor
+ when(mDozeParameters.getSelectivelyRegisterSensorsUsingProx()).thenReturn(true);
+ when(mDozeParameters.singleTapUsesProx()).thenReturn(true);
+ TestableDozeSensors dozeSensors = new TestableDozeSensors();
+
+ // THEN on initialization, the tap sensor isn't requested
+ assertFalse(mSensorTap.mRequested);
+
+ // WHEN we're now in a low powered state
+ dozeSensors.setListening(true, true, true);
+
+ // THEN the tap sensor is registered
+ assertTrue(mSensorTap.mRequested);
+ }
+
private class TestableDozeSensors extends DozeSensors {
TestableDozeSensors() {
@@ -160,9 +181,11 @@ public class DozeSensorsTest extends SysuiTestCase {
&& ((PluginSensor) sensor).mPluginSensor.getType()
== TYPE_WAKE_LOCK_SCREEN) {
mWakeLockScreenListener = (PluginSensor) sensor;
+ } else if (sensor.mPulseReason == REASON_SENSOR_TAP) {
+ mSensorTap = sensor;
}
}
- mSensors = new TriggerSensor[] {mTriggerSensor};
+ mSensors = new TriggerSensor[] {mTriggerSensor, mSensorTap};
}
}
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeTriggersTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeTriggersTest.java
index 1817fdfd4cdca..8eb0e9c5d0ab7 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeTriggersTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeTriggersTest.java
@@ -27,7 +27,6 @@ import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
-import android.app.AlarmManager;
import android.hardware.Sensor;
import android.hardware.display.AmbientDisplayConfiguration;
import android.testing.AndroidTestingRunner;
@@ -70,8 +69,6 @@ public class DozeTriggersTest extends SysuiTestCase {
@Mock
private DozeHost mHost;
@Mock
- private AlarmManager mAlarmManager;
- @Mock
private BroadcastDispatcher mBroadcastDispatcher;
@Mock
private DockManager mDockManager;
@@ -89,8 +86,14 @@ public class DozeTriggersTest extends SysuiTestCase {
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
- AmbientDisplayConfiguration config = DozeConfigurationUtil.createMockConfig();
- DozeParameters parameters = DozeConfigurationUtil.createMockParameters();
+ setupDozeTriggers(
+ DozeConfigurationUtil.createMockConfig(),
+ DozeConfigurationUtil.createMockParameters());
+ }
+
+ private void setupDozeTriggers(
+ AmbientDisplayConfiguration config,
+ DozeParameters dozeParameters) throws Exception {
mSensors = spy(new FakeSensorManager(mContext));
mTapSensor = mSensors.getFakeTapSensor().getSensor();
WakeLock wakeLock = new WakeLockFake();
@@ -101,10 +104,10 @@ public class DozeTriggersTest extends SysuiTestCase {
thresholdSensor.setLoaded(true);
mProximitySensor = new FakeProximitySensor(thresholdSensor, null, mExecutor);
- mTriggers = new DozeTriggers(mContext, mHost, mAlarmManager, config, parameters,
+ mTriggers = new DozeTriggers(mContext, mHost, config, dozeParameters,
asyncSensorManager, wakeLock, mDockManager, mProximitySensor,
mProximityCheck, mock(DozeLog.class), mBroadcastDispatcher, new FakeSettings(),
- mAuthController, mExecutor, mExecutor);
+ mAuthController, mExecutor);
mTriggers.setDozeMachine(mMachine);
waitForSensorManager();
}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeParametersTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeParametersTest.java
index 421c6f4aab0b4..9ac600afe9909 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeParametersTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeParametersTest.java
@@ -37,6 +37,7 @@ import androidx.test.runner.AndroidJUnit4;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.doze.AlwaysOnDisplayPolicy;
import com.android.systemui.doze.DozeScreenState;
+import com.android.systemui.dump.DumpManager;
import com.android.systemui.statusbar.FeatureFlags;
import com.android.systemui.statusbar.policy.BatteryController;
import com.android.systemui.tuner.TunerService;
@@ -61,6 +62,7 @@ public class DozeParametersTest extends SysuiTestCase {
@Mock private TunerService mTunerService;
@Mock private BatteryController mBatteryController;
@Mock private FeatureFlags mFeatureFlags;
+ @Mock private DumpManager mDumpManager;
@Before
public void setup() {
@@ -72,6 +74,7 @@ public class DozeParametersTest extends SysuiTestCase {
mPowerManager,
mBatteryController,
mTunerService,
+ mDumpManager,
mFeatureFlags
);
}