Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 32664125 authored by Ats Jenk's avatar Ats Jenk
Browse files

Create bubbles input consumer before nav bar long press

NavHandleLongPressInputConsumer handles long presses on the nav handle
and passes the touches on to a delegate if the touch is not a long
press.
When bubbles are expanded, we create a new input consumer that does
nothing and allows bubble input consumer in shell to take over.
Change the order how the input consumers are created. Create the bubbles
input consumer first, so it can be passed in as a delegate to the
nav handle input consumer. And this avoids bubbles overriding the nav
handle behavior.

Flag: ACONFIG com.android.wm.shell.enable_bubbles_long_press_nav_handle DISABLED
Bug: 324910035
Test: manual, expand a bubble, long press on home button for CtS
Change-Id: I05c219145c096a567bb0bb5a9cb3a40046b29519
parent 5faed49e
Loading
Loading
Loading
Loading
+21 −6
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ import static com.android.systemui.shared.system.QuickStepContract.KEY_EXTRA_UNF
import static com.android.systemui.shared.system.QuickStepContract.KEY_EXTRA_UNLOCK_ANIMATION_CONTROLLER;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_QUICK_SETTINGS_EXPANDED;
import static com.android.wm.shell.Flags.enableBubblesLongPressNavHandle;
import static com.android.wm.shell.sysui.ShellSharedConstants.KEY_EXTRA_SHELL_BACK_ANIMATION;
import static com.android.wm.shell.sysui.ShellSharedConstants.KEY_EXTRA_SHELL_BUBBLES;
import static com.android.wm.shell.sysui.ShellSharedConstants.KEY_EXTRA_SHELL_DESKTOP_MODE;
@@ -1006,6 +1007,17 @@ public class TouchInteractionService extends Service {
                            mOverviewCommandHelper);
                }
            }
            if (enableBubblesLongPressNavHandle()) {
                // Create bubbles input consumer before NavHandleLongPressInputConsumer.
                // This allows for nav handle to fall back to bubbles.
                if (mDeviceState.isBubblesExpanded()) {
                    reasonString = newCompoundString(reasonPrefix)
                            .append(SUBSTRING_PREFIX)
                            .append("bubbles expanded, trying to use default input consumer");
                    // Bubbles can handle home gesture itself.
                    base = getDefaultInputConsumer(reasonString);
                }
            }

            NavHandle navHandle = tac != null ? tac.getNavHandle()
                    : SystemUiProxy.INSTANCE.get(this);
@@ -1023,6 +1035,8 @@ public class TouchInteractionService extends Service {
                        mDeviceState, navHandle);
            }

            if (!enableBubblesLongPressNavHandle()) {
                // Continue overriding nav handle input consumer with bubbles
                if (mDeviceState.isBubblesExpanded()) {
                    reasonString = newCompoundString(reasonPrefix)
                            .append(SUBSTRING_PREFIX)
@@ -1030,6 +1044,7 @@ public class TouchInteractionService extends Service {
                    // Bubbles can handle home gesture itself.
                    base = getDefaultInputConsumer(reasonString);
                }
            }

            if (mDeviceState.isSystemUiDialogShowing()) {
                reasonString = newCompoundString(reasonPrefix)