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

Commit dafc3a5f authored by Tracy Zhou's avatar Tracy Zhou Committed by Automerger Merge Worker
Browse files

Merge "Consider motion events classification (for trackpad gestures) when...

Merge "Consider motion events classification (for trackpad gestures) when cancelling current gesture" into udc-dev am: cb295bed

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/21976891



Change-Id: I5efc38344c8af8b176461586c2cbeb4387b6cbdf
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 371f9147 cb295bed
Loading
Loading
Loading
Loading
+20 −5
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.systemui.shade;

import static com.android.systemui.flags.Flags.TRACKPAD_GESTURE_BACK;
import static com.android.systemui.util.kotlin.JavaAdapterKt.collectFlow;

import android.app.StatusBarManager;
@@ -39,6 +40,7 @@ import com.android.systemui.R;
import com.android.systemui.biometrics.domain.interactor.UdfpsOverlayInteractor;
import com.android.systemui.classifier.FalsingCollector;
import com.android.systemui.dock.DockManager;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.keyguard.KeyguardUnlockAnimationController;
import com.android.systemui.keyguard.domain.interactor.AlternateBouncerInteractor;
import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor;
@@ -88,10 +90,12 @@ public class NotificationShadeWindowViewController {
    private final NotificationInsetsController mNotificationInsetsController;
    private final AlternateBouncerInteractor mAlternateBouncerInteractor;
    private final UdfpsOverlayInteractor mUdfpsOverlayInteractor;
    private final boolean mIsTrackpadGestureBackEnabled;
    private GestureDetector mPulsingWakeupGestureHandler;
    private View mBrightnessMirror;
    private boolean mTouchActive;
    private boolean mTouchCancelled;
    private MotionEvent mDownEvent;
    private boolean mExpandAnimationRunning;
    private NotificationStackScrollLayout mStackScrollLayout;
    private PhoneStatusBarViewController mStatusBarViewController;
@@ -137,8 +141,8 @@ public class NotificationShadeWindowViewController {
            AlternateBouncerInteractor alternateBouncerInteractor,
            UdfpsOverlayInteractor udfpsOverlayInteractor,
            KeyguardTransitionInteractor keyguardTransitionInteractor,
            PrimaryBouncerToGoneTransitionViewModel primaryBouncerToGoneTransitionViewModel
    ) {
            PrimaryBouncerToGoneTransitionViewModel primaryBouncerToGoneTransitionViewModel,
            FeatureFlags featureFlags) {
        mLockscreenShadeTransitionController = transitionController;
        mFalsingCollector = falsingCollector;
        mStatusBarStateController = statusBarStateController;
@@ -159,6 +163,7 @@ public class NotificationShadeWindowViewController {
        mNotificationInsetsController = notificationInsetsController;
        mAlternateBouncerInteractor = alternateBouncerInteractor;
        mUdfpsOverlayInteractor = udfpsOverlayInteractor;
        mIsTrackpadGestureBackEnabled = featureFlags.isEnabled(TRACKPAD_GESTURE_BACK);

        // This view is not part of the newly inflated expanded status bar.
        mBrightnessMirror = mView.findViewById(R.id.brightness_mirror_container);
@@ -219,9 +224,11 @@ public class NotificationShadeWindowViewController {
                if (isDown) {
                    mTouchActive = true;
                    mTouchCancelled = false;
                    mDownEvent = ev;
                } else if (ev.getActionMasked() == MotionEvent.ACTION_UP
                        || ev.getActionMasked() == MotionEvent.ACTION_CANCEL) {
                    mTouchActive = false;
                    mDownEvent = null;
                }
                if (mTouchCancelled || mExpandAnimationRunning) {
                    return false;
@@ -447,9 +454,17 @@ public class NotificationShadeWindowViewController {
    public void cancelCurrentTouch() {
        if (mTouchActive) {
            final long now = SystemClock.uptimeMillis();
            MotionEvent event = MotionEvent.obtain(now, now,
            final MotionEvent event;
            if (mIsTrackpadGestureBackEnabled) {
                event = MotionEvent.obtain(mDownEvent);
                event.setDownTime(now);
                event.setAction(MotionEvent.ACTION_CANCEL);
                event.setLocation(0.0f, 0.0f);
            } else {
                event = MotionEvent.obtain(now, now,
                        MotionEvent.ACTION_CANCEL, 0.0f, 0.0f, 0);
                event.setSource(InputDevice.SOURCE_TOUCHSCREEN);
            }
            mView.dispatchTouchEvent(event);
            event.recycle();
            mTouchCancelled = true;
+6 −0
Original line number Diff line number Diff line
@@ -29,6 +29,8 @@ import com.android.systemui.SysuiTestCase
import com.android.systemui.biometrics.domain.interactor.UdfpsOverlayInteractor
import com.android.systemui.classifier.FalsingCollectorFake
import com.android.systemui.dock.DockManager
import com.android.systemui.flags.FakeFeatureFlags
import com.android.systemui.flags.Flags
import com.android.systemui.keyguard.KeyguardUnlockAnimationController
import com.android.systemui.keyguard.domain.interactor.AlternateBouncerInteractor
import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor
@@ -112,6 +114,9 @@ class NotificationShadeWindowViewControllerTest : SysuiTestCase() {
            .thenReturn(keyguardSecurityContainerController)
        whenever(keyguardTransitionInteractor.lockscreenToDreamingTransition)
            .thenReturn(emptyFlow<TransitionStep>())

        val featureFlags = FakeFeatureFlags();
        featureFlags.set(Flags.TRACKPAD_GESTURE_BACK, false)
        underTest =
            NotificationShadeWindowViewController(
                lockscreenShadeTransitionController,
@@ -138,6 +143,7 @@ class NotificationShadeWindowViewControllerTest : SysuiTestCase() {
                udfpsOverlayInteractor,
                keyguardTransitionInteractor,
                primaryBouncerToGoneTransitionViewModel,
                featureFlags,
            )
        underTest.setupExpandedStatusBar()

+6 −1
Original line number Diff line number Diff line
@@ -43,6 +43,8 @@ import com.android.systemui.SysuiTestCase;
import com.android.systemui.biometrics.domain.interactor.UdfpsOverlayInteractor;
import com.android.systemui.classifier.FalsingCollectorFake;
import com.android.systemui.dock.DockManager;
import com.android.systemui.flags.FakeFeatureFlags;
import com.android.systemui.flags.Flags;
import com.android.systemui.keyguard.KeyguardUnlockAnimationController;
import com.android.systemui.keyguard.domain.interactor.AlternateBouncerInteractor;
import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor;
@@ -132,6 +134,8 @@ public class NotificationShadeWindowViewTest extends SysuiTestCase {
        when(mKeyguardTransitionInteractor.getLockscreenToDreamingTransition())
                .thenReturn(emptyFlow());

        FakeFeatureFlags featureFlags = new FakeFeatureFlags();
        featureFlags.set(Flags.TRACKPAD_GESTURE_BACK, false);
        mController = new NotificationShadeWindowViewController(
                mLockscreenShadeTransitionController,
                new FalsingCollectorFake(),
@@ -156,7 +160,8 @@ public class NotificationShadeWindowViewTest extends SysuiTestCase {
                mAlternateBouncerInteractor,
                mUdfpsOverlayInteractor,
                mKeyguardTransitionInteractor,
                mPrimaryBouncerToGoneTransitionViewModel
                mPrimaryBouncerToGoneTransitionViewModel,
                featureFlags
        );
        mController.setupExpandedStatusBar();
        mController.setDragDownHelper(mDragDownHelper);