Loading services/core/java/com/android/server/policy/PhoneWindowManager.java +1 −1 Original line number Diff line number Diff line Loading @@ -590,7 +590,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { private int mDoubleTapOnHomeBehavior; // Whether to lock the device after the next app transition has finished. private boolean mLockAfterAppTransitionFinished; boolean mLockAfterAppTransitionFinished; // Allowed theater mode wake actions private boolean mAllowTheaterModeWakeFromKey; Loading services/tests/wmtests/src/com/android/server/policy/PowerKeyGestureTests.java +27 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static android.view.KeyEvent.KEYCODE_VOLUME_UP; import static com.android.server.policy.PhoneWindowManager.LONG_PRESS_POWER_ASSISTANT; import static com.android.server.policy.PhoneWindowManager.LONG_PRESS_POWER_GLOBAL_ACTIONS; import static com.android.server.policy.PhoneWindowManager.SHORT_PRESS_POWER_DREAM_OR_SLEEP; import android.provider.Settings; import android.view.Display; Loading Loading @@ -48,6 +49,32 @@ public class PowerKeyGestureTests extends ShortcutKeyTestBase { mPhoneWindowManager.assertNoPowerSleep(); } /** * Power single press to start dreaming when so configured. */ @Test public void testPowerSinglePressRequestsDream() { mPhoneWindowManager.overrideShortPressOnPower(SHORT_PRESS_POWER_DREAM_OR_SLEEP); mPhoneWindowManager.overrideCanStartDreaming(true); sendKey(KEYCODE_POWER); mPhoneWindowManager.assertDreamRequest(); mPhoneWindowManager.assertLockedAfterAppTransitionFinished(); } /** * Power double-press to launch camera does not lock device when the single press behavior is to * dream. */ @Test public void testPowerDoublePressWillNotLockDevice() { mPhoneWindowManager.overrideShortPressOnPower(SHORT_PRESS_POWER_DREAM_OR_SLEEP); mPhoneWindowManager.overrideCanStartDreaming(false); sendKey(KEYCODE_POWER); sendKey(KEYCODE_POWER); mPhoneWindowManager.assertCameraLaunch(); mPhoneWindowManager.assertWillNotLockAfterAppTransitionFinished(); } /** * Power double press to trigger camera. */ Loading services/tests/wmtests/src/com/android/server/policy/TestPhoneWindowManager.java +26 −0 Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ import com.android.server.wm.ActivityTaskManagerInternal; import com.android.server.wm.DisplayPolicy; import com.android.server.wm.DisplayRotation; import com.android.server.wm.WindowManagerInternal; import com.android.server.wm.WindowManagerInternal.AppTransitionListener; import junit.framework.Assert; Loading Loading @@ -289,6 +290,10 @@ class TestPhoneWindowManager { } } void overrideShortPressOnPower(int behavior) { mPhoneWindowManager.mShortPressOnPowerBehavior = behavior; } // Override assist perform function. void overrideLongPressOnPower(int behavior) { mPhoneWindowManager.mLongPressOnPowerBehavior = behavior; Loading @@ -311,6 +316,10 @@ class TestPhoneWindowManager { } } void overrideCanStartDreaming(boolean canDream) { doReturn(canDream).when(mDreamManagerInternal).canStartDreaming(anyBoolean()); } void overrideDisplayState(int state) { doReturn(state).when(mDisplay).getState(); Mockito.reset(mPowerManager); Loading Loading @@ -374,6 +383,10 @@ class TestPhoneWindowManager { timeout(SHORTCUT_KEY_DELAY_MILLIS)).performAccessibilityShortcut(); } void assertDreamRequest() { verify(mDreamManagerInternal).requestDream(); } void assertPowerSleep() { waitForIdle(); verify(mPowerManager, Loading Loading @@ -454,4 +467,17 @@ class TestPhoneWindowManager { waitForIdle(); verify(mInputManagerInternal).toggleCapsLock(anyInt()); } void assertWillNotLockAfterAppTransitionFinished() { Assert.assertFalse(mPhoneWindowManager.mLockAfterAppTransitionFinished); } void assertLockedAfterAppTransitionFinished() { ArgumentCaptor<AppTransitionListener> transitionCaptor = ArgumentCaptor.forClass(AppTransitionListener.class); verify(mWindowManagerInternal).registerAppTransitionListener( transitionCaptor.capture()); transitionCaptor.getValue().onAppTransitionFinishedLocked(any()); verify(mPhoneWindowManager).lockNow(null); } } Loading
services/core/java/com/android/server/policy/PhoneWindowManager.java +1 −1 Original line number Diff line number Diff line Loading @@ -590,7 +590,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { private int mDoubleTapOnHomeBehavior; // Whether to lock the device after the next app transition has finished. private boolean mLockAfterAppTransitionFinished; boolean mLockAfterAppTransitionFinished; // Allowed theater mode wake actions private boolean mAllowTheaterModeWakeFromKey; Loading
services/tests/wmtests/src/com/android/server/policy/PowerKeyGestureTests.java +27 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static android.view.KeyEvent.KEYCODE_VOLUME_UP; import static com.android.server.policy.PhoneWindowManager.LONG_PRESS_POWER_ASSISTANT; import static com.android.server.policy.PhoneWindowManager.LONG_PRESS_POWER_GLOBAL_ACTIONS; import static com.android.server.policy.PhoneWindowManager.SHORT_PRESS_POWER_DREAM_OR_SLEEP; import android.provider.Settings; import android.view.Display; Loading Loading @@ -48,6 +49,32 @@ public class PowerKeyGestureTests extends ShortcutKeyTestBase { mPhoneWindowManager.assertNoPowerSleep(); } /** * Power single press to start dreaming when so configured. */ @Test public void testPowerSinglePressRequestsDream() { mPhoneWindowManager.overrideShortPressOnPower(SHORT_PRESS_POWER_DREAM_OR_SLEEP); mPhoneWindowManager.overrideCanStartDreaming(true); sendKey(KEYCODE_POWER); mPhoneWindowManager.assertDreamRequest(); mPhoneWindowManager.assertLockedAfterAppTransitionFinished(); } /** * Power double-press to launch camera does not lock device when the single press behavior is to * dream. */ @Test public void testPowerDoublePressWillNotLockDevice() { mPhoneWindowManager.overrideShortPressOnPower(SHORT_PRESS_POWER_DREAM_OR_SLEEP); mPhoneWindowManager.overrideCanStartDreaming(false); sendKey(KEYCODE_POWER); sendKey(KEYCODE_POWER); mPhoneWindowManager.assertCameraLaunch(); mPhoneWindowManager.assertWillNotLockAfterAppTransitionFinished(); } /** * Power double press to trigger camera. */ Loading
services/tests/wmtests/src/com/android/server/policy/TestPhoneWindowManager.java +26 −0 Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ import com.android.server.wm.ActivityTaskManagerInternal; import com.android.server.wm.DisplayPolicy; import com.android.server.wm.DisplayRotation; import com.android.server.wm.WindowManagerInternal; import com.android.server.wm.WindowManagerInternal.AppTransitionListener; import junit.framework.Assert; Loading Loading @@ -289,6 +290,10 @@ class TestPhoneWindowManager { } } void overrideShortPressOnPower(int behavior) { mPhoneWindowManager.mShortPressOnPowerBehavior = behavior; } // Override assist perform function. void overrideLongPressOnPower(int behavior) { mPhoneWindowManager.mLongPressOnPowerBehavior = behavior; Loading @@ -311,6 +316,10 @@ class TestPhoneWindowManager { } } void overrideCanStartDreaming(boolean canDream) { doReturn(canDream).when(mDreamManagerInternal).canStartDreaming(anyBoolean()); } void overrideDisplayState(int state) { doReturn(state).when(mDisplay).getState(); Mockito.reset(mPowerManager); Loading Loading @@ -374,6 +383,10 @@ class TestPhoneWindowManager { timeout(SHORTCUT_KEY_DELAY_MILLIS)).performAccessibilityShortcut(); } void assertDreamRequest() { verify(mDreamManagerInternal).requestDream(); } void assertPowerSleep() { waitForIdle(); verify(mPowerManager, Loading Loading @@ -454,4 +467,17 @@ class TestPhoneWindowManager { waitForIdle(); verify(mInputManagerInternal).toggleCapsLock(anyInt()); } void assertWillNotLockAfterAppTransitionFinished() { Assert.assertFalse(mPhoneWindowManager.mLockAfterAppTransitionFinished); } void assertLockedAfterAppTransitionFinished() { ArgumentCaptor<AppTransitionListener> transitionCaptor = ArgumentCaptor.forClass(AppTransitionListener.class); verify(mWindowManagerInternal).registerAppTransitionListener( transitionCaptor.capture()); transitionCaptor.getValue().onAppTransitionFinishedLocked(any()); verify(mPhoneWindowManager).lockNow(null); } }