From f5e830a713231445e5ada75ec654732697eb7740 Mon Sep 17 00:00:00 2001 From: Beverly Tai Date: Fri, 6 May 2022 19:37:29 +0000 Subject: [PATCH] Revert "Don't trigger lift-to-wake on wireless charger" This reverts commit a874fa40d7b999687857920097fc6c999e200b84. Reason for revert: Screen wasn't waking after lifting from the wireless charger because the batteryController "no longer on wireless charger" event is frequently sent after the wakeup gesture signal. Instead of relying on this bandaid fix, the sensor team will look into updating their algo. Fixes: 229860868 Change-Id: I3e5abeabc4652e386fa1badb25ea4d14eabeb81b --- .../android/systemui/doze/DozeTriggers.java | 15 +++--------- .../systemui/doze/DozeTriggersTest.java | 23 +------------------ .../server/policy/PhoneWindowManager.java | 15 +----------- 3 files changed, 5 insertions(+), 48 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java b/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java index 74044e2c2eb85..1cc5df5d04cf1 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java @@ -39,7 +39,6 @@ import com.android.systemui.dock.DockManager; import com.android.systemui.doze.DozeMachine.State; import com.android.systemui.doze.dagger.DozeScope; import com.android.systemui.statusbar.phone.DozeParameters; -import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.DevicePostureController; import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.util.Assert; @@ -94,7 +93,6 @@ public class DozeTriggers implements DozeMachine.Part { private final AuthController mAuthController; private final DelayableExecutor mMainExecutor; private final KeyguardStateController mKeyguardStateController; - private final BatteryController mBatteryController; private final UiEventLogger mUiEventLogger; private final DevicePostureController mDevicePostureController; @@ -186,8 +184,7 @@ public class DozeTriggers implements DozeMachine.Part { @Main DelayableExecutor mainExecutor, UiEventLogger uiEventLogger, KeyguardStateController keyguardStateController, - DevicePostureController devicePostureController, - BatteryController batteryController) { + DevicePostureController devicePostureController) { mContext = context; mDozeHost = dozeHost; mConfig = config; @@ -208,7 +205,6 @@ public class DozeTriggers implements DozeMachine.Part { mMainExecutor = mainExecutor; mUiEventLogger = uiEventLogger; mKeyguardStateController = keyguardStateController; - mBatteryController = batteryController; } private final DevicePostureController.Callback mDevicePostureCallback = posture -> { @@ -320,12 +316,7 @@ public class DozeTriggers implements DozeMachine.Part { gentleWakeUp(pulseReason); } else if (isPickup) { if (shouldDropPickupEvent()) { - mDozeLog.traceSensorEventDropped( - pulseReason, - "keyguardOccluded=" - + mKeyguardStateController.isOccluded() - + " pluggedInWireless=" - + mBatteryController.isPluggedInWireless()); + mDozeLog.traceSensorEventDropped(pulseReason, "keyguard occluded"); return; } gentleWakeUp(pulseReason); @@ -356,7 +347,7 @@ public class DozeTriggers implements DozeMachine.Part { } private boolean shouldDropPickupEvent() { - return mKeyguardStateController.isOccluded() || mBatteryController.isPluggedInWireless(); + return mKeyguardStateController.isOccluded(); } private void gentleWakeUp(int reason) { 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 ae387e86de9d0..4eeb4acf18b82 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeTriggersTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeTriggersTest.java @@ -45,7 +45,6 @@ import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.dock.DockManager; import com.android.systemui.doze.DozeTriggers.DozingUpdateUiEvent; import com.android.systemui.statusbar.phone.DozeParameters; -import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.DevicePostureController; import com.android.systemui.statusbar.policy.KeyguardStateController; import com.android.systemui.util.concurrency.FakeExecutor; @@ -91,8 +90,6 @@ public class DozeTriggersTest extends SysuiTestCase { private KeyguardStateController mKeyguardStateController; @Mock private DevicePostureController mDevicePostureController; - @Mock - private BatteryController mBatteryController; private DozeTriggers mTriggers; private FakeSensorManager mSensors; @@ -125,7 +122,7 @@ public class DozeTriggersTest extends SysuiTestCase { asyncSensorManager, wakeLock, mDockManager, mProximitySensor, mProximityCheck, mock(DozeLog.class), mBroadcastDispatcher, new FakeSettings(), mAuthController, mExecutor, mUiEventLogger, mKeyguardStateController, - mDevicePostureController, mBatteryController); + mDevicePostureController); mTriggers.setDozeMachine(mMachine); waitForSensorManager(); } @@ -233,9 +230,7 @@ public class DozeTriggersTest extends SysuiTestCase { when(mMachine.getState()).thenReturn(DozeMachine.State.DOZE); // WHEN the pick up gesture is triggered and keyguard isn't occluded - // and device isn't on a wireless charger when(mKeyguardStateController.isOccluded()).thenReturn(false); - when(mBatteryController.isPluggedInWireless()).thenReturn(false); mTriggers.onSensor(DozeLog.REASON_SENSOR_PICKUP, 100, 100, null); // THEN wakeup @@ -249,22 +244,6 @@ public class DozeTriggersTest extends SysuiTestCase { // WHEN the pick up gesture is triggered and keyguard IS occluded when(mKeyguardStateController.isOccluded()).thenReturn(true); - when(mBatteryController.isPluggedInWireless()).thenReturn(false); - mTriggers.onSensor(DozeLog.REASON_SENSOR_PICKUP, 100, 100, null); - - // THEN never wakeup - verify(mMachine, never()).wakeUp(); - } - - @Test - public void testPickupGestureWirelessCharger() { - // GIVEN device is in doze (screen blank, but running doze sensors) - when(mMachine.getState()).thenReturn(DozeMachine.State.DOZE); - - // WHEN the pick up gesture is triggered - // and device IS on a wireless charger - when(mKeyguardStateController.isOccluded()).thenReturn(false); - when(mBatteryController.isPluggedInWireless()).thenReturn(true); mTriggers.onSensor(DozeLog.REASON_SENSOR_PICKUP, 100, 100, null); // THEN never wakeup diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index b142141898331..d8e7fbe8b2962 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -27,7 +27,6 @@ import static android.content.pm.PackageManager.FEATURE_LEANBACK; import static android.content.pm.PackageManager.FEATURE_PICTURE_IN_PICTURE; import static android.content.pm.PackageManager.FEATURE_WATCH; import static android.content.pm.PackageManager.PERMISSION_GRANTED; -import static android.os.BatteryManager.BATTERY_PLUGGED_WIRELESS; import static android.os.Build.VERSION_CODES.M; import static android.os.Build.VERSION_CODES.O; import static android.provider.Settings.Secure.VOLUME_HUSH_OFF; @@ -130,7 +129,6 @@ import android.media.AudioManagerInternal; import android.media.AudioSystem; import android.media.IAudioService; import android.media.session.MediaSessionLegacyHelper; -import android.os.BatteryManagerInternal; import android.os.Binder; import android.os.Bundle; import android.os.DeviceIdleManager; @@ -396,7 +394,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { PowerManagerInternal mPowerManagerInternal; IStatusBarService mStatusBarService; StatusBarManagerInternal mStatusBarManagerInternal; - BatteryManagerInternal mBatteryManagerInternal; AudioManagerInternal mAudioManagerInternal; DisplayManager mDisplayManager; DisplayManagerInternal mDisplayManagerInternal; @@ -791,8 +788,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { @Override public void onWakeUp() { synchronized (mLock) { - if (shouldEnableWakeGestureLp() - && getBatteryManagerInternal().getPlugType() != BATTERY_PLUGGED_WIRELESS) { + if (shouldEnableWakeGestureLp()) { performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY, false, "Wake Up"); wakeUp(SystemClock.uptimeMillis(), mAllowTheaterModeWakeFromWakeGesture, @@ -849,15 +845,6 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } - BatteryManagerInternal getBatteryManagerInternal() { - synchronized (mServiceAcquireLock) { - if (mBatteryManagerInternal == null) { - mBatteryManagerInternal = - LocalServices.getService(BatteryManagerInternal.class); - } - return mBatteryManagerInternal; - } - } // returns true if the key was handled and should not be passed to the user private boolean backKeyPress() {