Loading packages/SystemUI/aconfig/systemui.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -745,6 +745,16 @@ flag { bug: "325099249" } flag { name: "remove_dream_overlay_hide_on_touch" namespace: "systemui" description: "Removes logic to hide the dream overlay on user interaction, as it conflicts with various transitions" bug: "329091030" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "keyboard_docking_indicator" namespace: "systemui" Loading packages/SystemUI/multivalentTests/src/com/android/systemui/dreams/complication/HideComplicationTouchHandlerTest.java +38 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.systemui.dreams.complication; import static com.android.systemui.Flags.FLAG_REMOVE_DREAM_OVERLAY_HIDE_ON_TOUCH; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.never; Loading @@ -23,6 +25,8 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.os.Handler; import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.view.MotionEvent; import android.view.View; Loading Loading @@ -90,6 +94,7 @@ public class HideComplicationTouchHandlerTest extends SysuiTestCase { * Ensures no actions are taken when there multiple sessions. */ @Test @DisableFlags(FLAG_REMOVE_DREAM_OVERLAY_HIDE_ON_TOUCH) public void testSessionEndOnMultipleSessions() { final HideComplicationTouchHandler touchHandler = new HideComplicationTouchHandler( mVisibilityController, Loading Loading @@ -122,6 +127,7 @@ public class HideComplicationTouchHandlerTest extends SysuiTestCase { * Ensures no actions are taken when the bouncer is showing. */ @Test @DisableFlags(FLAG_REMOVE_DREAM_OVERLAY_HIDE_ON_TOUCH) public void testSessionEndWhenBouncerShowing() { final HideComplicationTouchHandler touchHandler = new HideComplicationTouchHandler( mVisibilityController, Loading Loading @@ -154,6 +160,7 @@ public class HideComplicationTouchHandlerTest extends SysuiTestCase { * Ensures no actions are taken when there multiple sessions. */ @Test @DisableFlags(FLAG_REMOVE_DREAM_OVERLAY_HIDE_ON_TOUCH) public void testSessionEndWithTouchInInset() { final HideComplicationTouchHandler touchHandler = new HideComplicationTouchHandler( mVisibilityController, Loading Loading @@ -202,6 +209,7 @@ public class HideComplicationTouchHandlerTest extends SysuiTestCase { * Make sure visibility changes are triggered from session events. */ @Test @DisableFlags(FLAG_REMOVE_DREAM_OVERLAY_HIDE_ON_TOUCH) public void testSessionLifecycle() { final HideComplicationTouchHandler touchHandler = new HideComplicationTouchHandler( mVisibilityController, Loading Loading @@ -259,4 +267,34 @@ public class HideComplicationTouchHandlerTest extends SysuiTestCase { // Verify session ended. verify(mSession).pop(); } @Test @EnableFlags(FLAG_REMOVE_DREAM_OVERLAY_HIDE_ON_TOUCH) public void testNoActionWhenDisabledByFlag() { final HideComplicationTouchHandler touchHandler = new HideComplicationTouchHandler( mVisibilityController, RESTORE_TIMEOUT, HIDE_DELAY, mTouchInsetManager, mStatusBarKeyguardViewManager, mFakeExecutor, mStateController); // Report one session. when(mSession.getActiveSessionCount()).thenReturn(1); // Bouncer is showing. when(mStatusBarKeyguardViewManager.isBouncerShowing()).thenReturn(false); // Start session. touchHandler.onSessionStart(mSession); // Verify session end. verify(mSession).pop(); mClock.advanceTime(HIDE_DELAY); // Verify no interaction with visibility controller. verify(mVisibilityController, never()).setVisibility(anyInt()); } } packages/SystemUI/src/com/android/systemui/dreams/complication/HideComplicationTouchHandler.java +2 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.dreams.complication; import static com.android.systemui.Flags.removeDreamOverlayHideOnTouch; import static com.android.systemui.dreams.complication.dagger.ComplicationModule.COMPLICATIONS_FADE_OUT_DELAY; import static com.android.systemui.dreams.complication.dagger.ComplicationModule.COMPLICATIONS_RESTORE_TIMEOUT; Loading Loading @@ -120,7 +121,7 @@ public class HideComplicationTouchHandler implements DreamTouchHandler { final boolean bouncerShowing = mStatusBarKeyguardViewManager.isBouncerShowing(); // If other sessions are interested in this touch, do not fade out elements. if (session.getActiveSessionCount() > 1 || bouncerShowing if (removeDreamOverlayHideOnTouch() || session.getActiveSessionCount() > 1 || bouncerShowing || mOverlayStateController.areExitAnimationsRunning()) { if (DEBUG) { Log.d(TAG, "not fading. Active session count: " + session.getActiveSessionCount() Loading Loading
packages/SystemUI/aconfig/systemui.aconfig +10 −0 Original line number Diff line number Diff line Loading @@ -745,6 +745,16 @@ flag { bug: "325099249" } flag { name: "remove_dream_overlay_hide_on_touch" namespace: "systemui" description: "Removes logic to hide the dream overlay on user interaction, as it conflicts with various transitions" bug: "329091030" metadata { purpose: PURPOSE_BUGFIX } } flag { name: "keyboard_docking_indicator" namespace: "systemui" Loading
packages/SystemUI/multivalentTests/src/com/android/systemui/dreams/complication/HideComplicationTouchHandlerTest.java +38 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.systemui.dreams.complication; import static com.android.systemui.Flags.FLAG_REMOVE_DREAM_OVERLAY_HIDE_ON_TOUCH; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.never; Loading @@ -23,6 +25,8 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.os.Handler; import android.platform.test.annotations.DisableFlags; import android.platform.test.annotations.EnableFlags; import android.view.MotionEvent; import android.view.View; Loading Loading @@ -90,6 +94,7 @@ public class HideComplicationTouchHandlerTest extends SysuiTestCase { * Ensures no actions are taken when there multiple sessions. */ @Test @DisableFlags(FLAG_REMOVE_DREAM_OVERLAY_HIDE_ON_TOUCH) public void testSessionEndOnMultipleSessions() { final HideComplicationTouchHandler touchHandler = new HideComplicationTouchHandler( mVisibilityController, Loading Loading @@ -122,6 +127,7 @@ public class HideComplicationTouchHandlerTest extends SysuiTestCase { * Ensures no actions are taken when the bouncer is showing. */ @Test @DisableFlags(FLAG_REMOVE_DREAM_OVERLAY_HIDE_ON_TOUCH) public void testSessionEndWhenBouncerShowing() { final HideComplicationTouchHandler touchHandler = new HideComplicationTouchHandler( mVisibilityController, Loading Loading @@ -154,6 +160,7 @@ public class HideComplicationTouchHandlerTest extends SysuiTestCase { * Ensures no actions are taken when there multiple sessions. */ @Test @DisableFlags(FLAG_REMOVE_DREAM_OVERLAY_HIDE_ON_TOUCH) public void testSessionEndWithTouchInInset() { final HideComplicationTouchHandler touchHandler = new HideComplicationTouchHandler( mVisibilityController, Loading Loading @@ -202,6 +209,7 @@ public class HideComplicationTouchHandlerTest extends SysuiTestCase { * Make sure visibility changes are triggered from session events. */ @Test @DisableFlags(FLAG_REMOVE_DREAM_OVERLAY_HIDE_ON_TOUCH) public void testSessionLifecycle() { final HideComplicationTouchHandler touchHandler = new HideComplicationTouchHandler( mVisibilityController, Loading Loading @@ -259,4 +267,34 @@ public class HideComplicationTouchHandlerTest extends SysuiTestCase { // Verify session ended. verify(mSession).pop(); } @Test @EnableFlags(FLAG_REMOVE_DREAM_OVERLAY_HIDE_ON_TOUCH) public void testNoActionWhenDisabledByFlag() { final HideComplicationTouchHandler touchHandler = new HideComplicationTouchHandler( mVisibilityController, RESTORE_TIMEOUT, HIDE_DELAY, mTouchInsetManager, mStatusBarKeyguardViewManager, mFakeExecutor, mStateController); // Report one session. when(mSession.getActiveSessionCount()).thenReturn(1); // Bouncer is showing. when(mStatusBarKeyguardViewManager.isBouncerShowing()).thenReturn(false); // Start session. touchHandler.onSessionStart(mSession); // Verify session end. verify(mSession).pop(); mClock.advanceTime(HIDE_DELAY); // Verify no interaction with visibility controller. verify(mVisibilityController, never()).setVisibility(anyInt()); } }
packages/SystemUI/src/com/android/systemui/dreams/complication/HideComplicationTouchHandler.java +2 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.dreams.complication; import static com.android.systemui.Flags.removeDreamOverlayHideOnTouch; import static com.android.systemui.dreams.complication.dagger.ComplicationModule.COMPLICATIONS_FADE_OUT_DELAY; import static com.android.systemui.dreams.complication.dagger.ComplicationModule.COMPLICATIONS_RESTORE_TIMEOUT; Loading Loading @@ -120,7 +121,7 @@ public class HideComplicationTouchHandler implements DreamTouchHandler { final boolean bouncerShowing = mStatusBarKeyguardViewManager.isBouncerShowing(); // If other sessions are interested in this touch, do not fade out elements. if (session.getActiveSessionCount() > 1 || bouncerShowing if (removeDreamOverlayHideOnTouch() || session.getActiveSessionCount() > 1 || bouncerShowing || mOverlayStateController.areExitAnimationsRunning()) { if (DEBUG) { Log.d(TAG, "not fading. Active session count: " + session.getActiveSessionCount() Loading