Loading core/java/android/service/dreams/DreamService.java +2 −1 Original line number Diff line number Diff line Loading @@ -433,7 +433,8 @@ public class DreamService extends Service implements Window.Callback { mTrackingConfirmKey = event.getKeyCode(); } case KeyEvent.ACTION_UP -> { if (mTrackingConfirmKey != event.getKeyCode()) { if (mTrackingConfirmKey == null || mTrackingConfirmKey != event.getKeyCode()) { return true; } Loading services/tests/dreamservicetests/src/com/android/server/dreams/DreamServiceTest.java +12 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import android.service.dreams.DreamService; import android.service.dreams.Flags; import android.service.dreams.IDreamOverlayCallback; import android.testing.TestableLooper; import android.view.KeyEvent; import androidx.test.filters.SmallTest; import androidx.test.platform.app.InstrumentationRegistry; Loading Loading @@ -181,4 +182,15 @@ public class DreamServiceTest { environment.advance(TestDreamEnvironment.DREAM_STATE_WOKEN); verify(environment.getDreamOverlayClient()).onWakeRequested(); } @Test @EnableFlags(Flags.FLAG_DREAM_HANDLES_CONFIRM_KEYS) public void testPartialKeyHandling() throws Exception { TestDreamEnvironment environment = new TestDreamEnvironment.Builder(mTestableLooper) .build(); environment.advance(TestDreamEnvironment.DREAM_STATE_STARTED); // Ensure service does not crash from only receiving up event. environment.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_SPACE)); } } services/tests/dreamservicetests/src/com/android/server/dreams/TestDreamEnvironment.java +8 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import android.service.dreams.IDreamOverlayCallback; import android.service.dreams.IDreamOverlayClient; import android.service.dreams.IDreamService; import android.testing.TestableLooper; import android.view.KeyEvent; import android.view.View; import android.view.Window; import android.view.WindowInsetsController; Loading Loading @@ -390,6 +391,13 @@ public class TestDreamEnvironment { } } /** * Sends a key event to the dream. */ public void dispatchKeyEvent(KeyEvent event) { mService.dispatchKeyEvent(event); } private void wakeDream() throws RemoteException { mService.wakeUp(); } Loading Loading
core/java/android/service/dreams/DreamService.java +2 −1 Original line number Diff line number Diff line Loading @@ -433,7 +433,8 @@ public class DreamService extends Service implements Window.Callback { mTrackingConfirmKey = event.getKeyCode(); } case KeyEvent.ACTION_UP -> { if (mTrackingConfirmKey != event.getKeyCode()) { if (mTrackingConfirmKey == null || mTrackingConfirmKey != event.getKeyCode()) { return true; } Loading
services/tests/dreamservicetests/src/com/android/server/dreams/DreamServiceTest.java +12 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import android.service.dreams.DreamService; import android.service.dreams.Flags; import android.service.dreams.IDreamOverlayCallback; import android.testing.TestableLooper; import android.view.KeyEvent; import androidx.test.filters.SmallTest; import androidx.test.platform.app.InstrumentationRegistry; Loading Loading @@ -181,4 +182,15 @@ public class DreamServiceTest { environment.advance(TestDreamEnvironment.DREAM_STATE_WOKEN); verify(environment.getDreamOverlayClient()).onWakeRequested(); } @Test @EnableFlags(Flags.FLAG_DREAM_HANDLES_CONFIRM_KEYS) public void testPartialKeyHandling() throws Exception { TestDreamEnvironment environment = new TestDreamEnvironment.Builder(mTestableLooper) .build(); environment.advance(TestDreamEnvironment.DREAM_STATE_STARTED); // Ensure service does not crash from only receiving up event. environment.dispatchKeyEvent(new KeyEvent(KeyEvent.ACTION_UP, KeyEvent.KEYCODE_SPACE)); } }
services/tests/dreamservicetests/src/com/android/server/dreams/TestDreamEnvironment.java +8 −0 Original line number Diff line number Diff line Loading @@ -46,6 +46,7 @@ import android.service.dreams.IDreamOverlayCallback; import android.service.dreams.IDreamOverlayClient; import android.service.dreams.IDreamService; import android.testing.TestableLooper; import android.view.KeyEvent; import android.view.View; import android.view.Window; import android.view.WindowInsetsController; Loading Loading @@ -390,6 +391,13 @@ public class TestDreamEnvironment { } } /** * Sends a key event to the dream. */ public void dispatchKeyEvent(KeyEvent event) { mService.dispatchKeyEvent(event); } private void wakeDream() throws RemoteException { mService.wakeUp(); } Loading