Loading packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowViewController.java +20 −5 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading @@ -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); Loading Loading @@ -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; Loading Loading @@ -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; Loading packages/SystemUI/tests/src/com/android/systemui/shade/NotificationShadeWindowViewControllerTest.kt +6 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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, Loading @@ -138,6 +143,7 @@ class NotificationShadeWindowViewControllerTest : SysuiTestCase() { udfpsOverlayInteractor, keyguardTransitionInteractor, primaryBouncerToGoneTransitionViewModel, featureFlags, ) underTest.setupExpandedStatusBar() Loading packages/SystemUI/tests/src/com/android/systemui/shade/NotificationShadeWindowViewTest.java +6 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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(), Loading @@ -156,7 +160,8 @@ public class NotificationShadeWindowViewTest extends SysuiTestCase { mAlternateBouncerInteractor, mUdfpsOverlayInteractor, mKeyguardTransitionInteractor, mPrimaryBouncerToGoneTransitionViewModel mPrimaryBouncerToGoneTransitionViewModel, featureFlags ); mController.setupExpandedStatusBar(); mController.setDragDownHelper(mDragDownHelper); Loading Loading
packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowViewController.java +20 −5 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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; Loading @@ -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); Loading Loading @@ -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; Loading Loading @@ -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; Loading
packages/SystemUI/tests/src/com/android/systemui/shade/NotificationShadeWindowViewControllerTest.kt +6 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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, Loading @@ -138,6 +143,7 @@ class NotificationShadeWindowViewControllerTest : SysuiTestCase() { udfpsOverlayInteractor, keyguardTransitionInteractor, primaryBouncerToGoneTransitionViewModel, featureFlags, ) underTest.setupExpandedStatusBar() Loading
packages/SystemUI/tests/src/com/android/systemui/shade/NotificationShadeWindowViewTest.java +6 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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(), Loading @@ -156,7 +160,8 @@ public class NotificationShadeWindowViewTest extends SysuiTestCase { mAlternateBouncerInteractor, mUdfpsOverlayInteractor, mKeyguardTransitionInteractor, mPrimaryBouncerToGoneTransitionViewModel mPrimaryBouncerToGoneTransitionViewModel, featureFlags ); mController.setupExpandedStatusBar(); mController.setDragDownHelper(mDragDownHelper); Loading