diff options
4 files changed, 27 insertions, 19 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java index 6c9748ec7ec1..2ff67abd6377 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java @@ -19,7 +19,6 @@ package com.android.systemui.statusbar.notification.stack; import static android.service.notification.NotificationStats.DISMISSAL_SHADE; import static android.service.notification.NotificationStats.DISMISS_SENTIMENT_NEUTRAL; -import static com.android.systemui.Dependency.ALLOW_NOTIFICATION_LONG_PRESS_NAME; import static com.android.systemui.statusbar.notification.ActivityLaunchAnimator.ExpandAnimationParameters; import static com.android.systemui.statusbar.notification.stack.NotificationSectionsManagerKt.BUCKET_SILENT; import static com.android.systemui.statusbar.notification.stack.StackScrollAlgorithm.ANCHOR_SCROLLING; @@ -210,7 +209,6 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd private final Paint mBackgroundPaint = new Paint(); private final boolean mShouldDrawNotificationBackground; private boolean mHighPriorityBeforeSpeedBump; - private final boolean mAllowLongPress; private boolean mDismissRtl; private float mExpandedHeight; @@ -551,7 +549,6 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd public NotificationStackScrollLayout( @Named(VIEW_CONTEXT) Context context, AttributeSet attrs, - @Named(ALLOW_NOTIFICATION_LONG_PRESS_NAME) boolean allowLongPress, NotificationRoundnessManager notificationRoundnessManager, DynamicPrivacyController dynamicPrivacyController, SysuiStatusBarStateController statusBarStateController, @@ -574,8 +571,6 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd super(context, attrs, 0, 0); Resources res = getResources(); - mAllowLongPress = allowLongPress; - mRoundnessManager = notificationRoundnessManager; mLockscreenUserManager = notificationLockscreenUserManager; @@ -716,9 +711,6 @@ public class NotificationStackScrollLayout extends ViewGroup implements ScrollAd inflateEmptyShadeView(); inflateFooterView(); mVisualStabilityManager.setVisibilityLocationProvider(this::isInVisibleLocation); - if (mAllowLongPress) { - setLongPressListener(mNotificationGutsManager::openGuts); - } } /** diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java index ac51cd02607a..8150593e69fd 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutController.java @@ -16,6 +16,8 @@ package com.android.systemui.statusbar.notification.stack; +import static com.android.systemui.Dependency.ALLOW_NOTIFICATION_LONG_PRESS_NAME; + import android.graphics.PointF; import android.view.Display; import android.view.View; @@ -29,6 +31,7 @@ import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.notification.row.ActivatableNotificationView; import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow; import com.android.systemui.statusbar.notification.row.ExpandableView; +import com.android.systemui.statusbar.notification.row.NotificationGutsManager; import com.android.systemui.statusbar.phone.HeadsUpAppearanceController; import com.android.systemui.statusbar.phone.HeadsUpTouchHelper; import com.android.systemui.statusbar.phone.NotificationGroupManager; @@ -41,21 +44,32 @@ import com.android.systemui.statusbar.phone.dagger.StatusBarComponent; import java.util.function.BiConsumer; import javax.inject.Inject; +import javax.inject.Named; /** * Controller for {@link NotificationStackScrollLayout}. */ @StatusBarComponent.StatusBarScope public class NotificationStackScrollLayoutController { + private final boolean mAllowLongPress; + private final NotificationGutsManager mNotificationGutsManager; private NotificationStackScrollLayout mView; @Inject - public NotificationStackScrollLayoutController() { + public NotificationStackScrollLayoutController( + @Named(ALLOW_NOTIFICATION_LONG_PRESS_NAME) boolean allowLongPress, + NotificationGutsManager notificationGutsManager) { + mAllowLongPress = allowLongPress; + mNotificationGutsManager = notificationGutsManager; } public void attach(NotificationStackScrollLayout view) { mView = view; mView.setController(this); + + if (mAllowLongPress) { + mView.setLongPressListener(mNotificationGutsManager::openGuts); + } } public void addOnExpandedHeightChangedListener(BiConsumer<Float, Float> listener) { diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java index 85701c24f7d6..fec467706b7b 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayoutTest.java @@ -212,7 +212,7 @@ public class NotificationStackScrollLayoutTest extends SysuiTestCase { // holds a copy of the CUT's instances of these KeyguardBypassController, so they still // refer to the CUT's member variables, not the spy's member variables. mStackScrollerInternal = new NotificationStackScrollLayout(getContext(), null, - true /* allowLongPress */, mNotificationRoundnessManager, + mNotificationRoundnessManager, mock(DynamicPrivacyController.class), mock(SysuiStatusBarStateController.class), mHeadsUpManager, diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java index 716ed779c962..f66fd5677a5d 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/NotificationPanelViewTest.java @@ -72,6 +72,7 @@ import com.android.systemui.statusbar.notification.ConversationNotificationManag import com.android.systemui.statusbar.notification.DynamicPrivacyController; import com.android.systemui.statusbar.notification.NotificationEntryManager; import com.android.systemui.statusbar.notification.NotificationWakeUpCoordinator; +import com.android.systemui.statusbar.notification.row.NotificationGutsManager; import com.android.systemui.statusbar.notification.stack.NotificationRoundnessManager; import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout; import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController; @@ -187,10 +188,6 @@ public class NotificationPanelViewTest extends SysuiTestCase { private StatusBarKeyguardViewManager mStatusBarKeyguardViewManager; @Mock private KeyguardClockSwitchController mKeyguardClockSwitchController; - private NotificationStackScrollLayoutController mNotificationStackScrollLayoutController = - new NotificationStackScrollLayoutController(); - private FlingAnimationUtils.Builder mFlingAnimationUtilsBuilder; - private NotificationPanelViewController mNotificationPanelViewController; private View.AccessibilityDelegate mAccessibiltyDelegate; @@ -215,7 +212,8 @@ public class NotificationPanelViewTest extends SysuiTestCase { when(mKeyguardBottomArea.getRightView()).thenReturn(mock(KeyguardAffordanceView.class)); when(mView.findViewById(R.id.big_clock_container)).thenReturn(mBigClockContainer); when(mView.findViewById(R.id.qs_frame)).thenReturn(mQsFrame); - mFlingAnimationUtilsBuilder = new FlingAnimationUtils.Builder(mDisplayMetrics); + FlingAnimationUtils.Builder flingAnimationUtilsBuilder = new FlingAnimationUtils.Builder( + mDisplayMetrics); doAnswer((Answer<Void>) invocation -> { mTouchHandler = invocation.getArgument(0); @@ -235,6 +233,11 @@ public class NotificationPanelViewTest extends SysuiTestCase { mock(NotificationRoundnessManager.class), mStatusBarStateController, new FalsingManagerFake()); + NotificationStackScrollLayoutController notificationStackScrollLayoutController = + new NotificationStackScrollLayoutController( + true /* allowLongPress */, + mock(NotificationGutsManager.class) + ); mNotificationPanelViewController = new NotificationPanelViewController(mView, mInjectionInflationController, coordinator, expansionHandler, mDynamicPrivacyController, mKeyguardBypassController, @@ -244,11 +247,11 @@ public class NotificationPanelViewTest extends SysuiTestCase { mDozeParameters, mCommandQueue, mVibratorHelper, mLatencyTracker, mPowerManager, mAccessibilityManager, 0, mUpdateMonitor, mMetricsLogger, mActivityManager, mZenModeController, mConfigurationController, - mFlingAnimationUtilsBuilder, mStatusBarTouchableRegionManager, + flingAnimationUtilsBuilder, mStatusBarTouchableRegionManager, mConversationNotificationManager, mMediaHiearchyManager, mBiometricUnlockController, mStatusBarKeyguardViewManager, () -> mKeyguardClockSwitchController, - mNotificationStackScrollLayoutController); + notificationStackScrollLayoutController); mNotificationPanelViewController.initDependencies(mStatusBar, mGroupManager, mNotificationShelfController, mNotificationAreaController, mScrimController); mNotificationPanelViewController.setHeadsUpManager(mHeadsUpManager); @@ -256,8 +259,7 @@ public class NotificationPanelViewTest extends SysuiTestCase { ArgumentCaptor<View.AccessibilityDelegate> accessibilityDelegateArgumentCaptor = ArgumentCaptor.forClass(View.AccessibilityDelegate.class); - verify(mView) - .setAccessibilityDelegate(accessibilityDelegateArgumentCaptor.capture()); + verify(mView).setAccessibilityDelegate(accessibilityDelegateArgumentCaptor.capture()); mAccessibiltyDelegate = accessibilityDelegateArgumentCaptor.getValue(); } |