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

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

Suppress home gesture when bubbles are expanded

When bubbles are expanded we handle the home gesture there. This allows
us to animate the expanded view in response to touch gestures.

Bug: 170163464
Test: atest
PlatformScenarioTests: android.platform.test.scenario.sysui.bubble.CollapseExpandedViewTest
Change-Id: Ib97df2db089dd4613f6a749c6415fedddd939106
parent a617ae90
Loading
Loading
Loading
Loading
+24 −6
Original line number Original line Diff line number Diff line
@@ -51,6 +51,7 @@ import android.os.Bundle;
import android.os.IBinder;
import android.os.IBinder;
import android.os.Looper;
import android.os.Looper;
import android.os.SystemClock;
import android.os.SystemClock;
import android.os.SystemProperties;
import android.util.Log;
import android.util.Log;
import android.view.Choreographer;
import android.view.Choreographer;
import android.view.InputEvent;
import android.view.InputEvent;
@@ -127,6 +128,9 @@ public class TouchInteractionService extends Service


    private static final String TAG = "TouchInteractionService";
    private static final String TAG = "TouchInteractionService";


    private static final boolean BUBBLES_HOME_GESTURE_ENABLED =
            SystemProperties.getBoolean("persist.wm.debug.bubbles_home_gesture", false);

    private static final String KEY_BACK_NOTIFICATION_COUNT = "backNotificationCount";
    private static final String KEY_BACK_NOTIFICATION_COUNT = "backNotificationCount";
    private static final String NOTIFY_ACTION_BACK = "com.android.quickstep.action.BACK_GESTURE";
    private static final String NOTIFY_ACTION_BACK = "com.android.quickstep.action.BACK_GESTURE";
    private static final String HAS_ENABLED_QUICKSTEP_ONCE = "launcher.has_enabled_quickstep_once";
    private static final String HAS_ENABLED_QUICKSTEP_ONCE = "launcher.has_enabled_quickstep_once";
@@ -698,15 +702,29 @@ public class TouchInteractionService extends Service
                base = new TaskbarStashInputConsumer(this, base, mInputMonitorCompat, tac);
                base = new TaskbarStashInputConsumer(this, base, mInputMonitorCompat, tac);
            }
            }


            // If Bubbles is expanded, use the overlay input consumer, which will close Bubbles
            if (mDeviceState.isBubblesExpanded()) {
            // instead of going all the way home when a swipe up is detected.
                if (BUBBLES_HOME_GESTURE_ENABLED) {
                    // Bubbles can handle home gesture itself.
                    base = getDefaultInputConsumer();
                } else {
                    // If Bubbles is expanded, use the overlay input consumer, which will close
                    // Bubbles instead of going all the way home when a swipe up is detected.
                    // Notification panel can be expanded on top of expanded bubbles. Bubbles remain
                    // Notification panel can be expanded on top of expanded bubbles. Bubbles remain
            // expanded in the back. Make sure swipe up is not passed to bubbles in this case.
                    // expanded in the back. Make sure swipe up is not passed to bubbles in this
            if ((mDeviceState.isBubblesExpanded() && !mDeviceState.isNotificationPanelExpanded())
                    // case.
                    || mDeviceState.isSystemUiDialogShowing()) {
                    if (!mDeviceState.isNotificationPanelExpanded()) {
                        base = new SysUiOverlayInputConsumer(
                        base = new SysUiOverlayInputConsumer(
                                getBaseContext(), mDeviceState, mInputMonitorCompat);
                                getBaseContext(), mDeviceState, mInputMonitorCompat);
                    }
                    }
                }
            }

            if (mDeviceState.isSystemUiDialogShowing()) {
                base = new SysUiOverlayInputConsumer(
                        getBaseContext(), mDeviceState, mInputMonitorCompat);
            }




            if (mDeviceState.isScreenPinningActive()) {
            if (mDeviceState.isScreenPinningActive()) {
                // Note: we only allow accessibility to wrap this, and it replaces the previous
                // Note: we only allow accessibility to wrap this, and it replaces the previous