From 7c6fe5b71f6367eb4aa3a4b2a9c1d3b1872fa866 Mon Sep 17 00:00:00 2001 From: Selim Cinek Date: Mon, 9 Apr 2018 18:27:13 -0700 Subject: [PATCH] Hiding clear all when replying now Change-Id: Id08084776967f85101b07d3a56b5dffe80af6dbc Fixes: 75984847 Test: runtest -x packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java --- .../systemui/statusbar/phone/StatusBar.java | 4 +++- .../systemui/statusbar/phone/StatusBarTest.java | 23 +++++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index 7987bfd9bfb8..c08d8242fb59 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -1446,7 +1446,8 @@ public class StatusBar extends SystemUI implements DemoMode, @VisibleForTesting protected void updateFooter() { boolean showFooterView = mState != StatusBarState.KEYGUARD - && mEntryManager.getNotificationData().getActiveNotifications().size() != 0; + && mEntryManager.getNotificationData().getActiveNotifications().size() != 0 + && !mRemoteInputManager.getController().isRemoteInputActive(); boolean showDismissView = mClearAllEnabled && mState != StatusBarState.KEYGUARD && hasActiveClearableNotifications(); @@ -2826,6 +2827,7 @@ public class StatusBar extends SystemUI implements DemoMode, boolean remoteInputActive) { mHeadsUpManager.setRemoteInputActive(entry, remoteInputActive); entry.row.notifyHeightChanged(true /* needsAnimation */); + updateFooter(); } public void lockScrollTo(NotificationData.Entry entry) { mStackScroller.lockScrollTo(entry.row); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java index e68c7c8011dc..d3cb5a6ecd8a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/StatusBarTest.java @@ -95,6 +95,7 @@ import com.android.systemui.statusbar.NotificationPresenter; import com.android.systemui.statusbar.NotificationRemoteInputManager; import com.android.systemui.statusbar.NotificationShelf; import com.android.systemui.statusbar.NotificationViewHierarchyManager; +import com.android.systemui.statusbar.RemoteInputController; import com.android.systemui.statusbar.StatusBarState; import com.android.systemui.statusbar.notification.ActivityLaunchAnimator; import com.android.systemui.statusbar.notification.VisualStabilityManager; @@ -139,6 +140,8 @@ public class StatusBarTest extends SysuiTestCase { @Mock private NotificationListener mNotificationListener; @Mock private KeyguardViewMediator mKeyguardViewMediator; @Mock private NotificationLockscreenUserManager mLockscreenUserManager; + @Mock private NotificationRemoteInputManager mRemoteInputManager; + @Mock private RemoteInputController mRemoteInputController; private TestableStatusBar mStatusBar; private FakeMetricsLogger mMetricsLogger; @@ -200,13 +203,14 @@ public class StatusBarTest extends SysuiTestCase { mEntryManager = new TestableNotificationEntryManager(mSystemServicesProxy, mPowerManager, mContext); + when(mRemoteInputManager.getController()).thenReturn(mRemoteInputController); mStatusBar = new TestableStatusBar(mStatusBarKeyguardViewManager, mUnlockMethodCache, mKeyguardIndicationController, mStackScroller, mHeadsUpManager, mPowerManager, mNotificationPanelView, mBarService, mNotificationListener, mNotificationLogger, mVisualStabilityManager, mViewHierarchyManager, mEntryManager, mScrimController, mFingerprintUnlockController, mock(ActivityLaunchAnimator.class), mKeyguardViewMediator, - mock(NotificationRemoteInputManager.class), mock(NotificationGroupManager.class), + mRemoteInputManager, mock(NotificationGroupManager.class), mock(FalsingManager.class), mock(StatusBarWindowManager.class), mock(NotificationIconAreaController.class), mock(DozeScrimController.class), mock(NotificationShelf.class), mLockscreenUserManager, @@ -588,6 +592,23 @@ public class StatusBarTest extends SysuiTestCase { } @Test + public void testUpdateFooter_remoteInput() { + mStatusBar.setBarStateForTest(StatusBarState.SHADE); + ArrayList entries = new ArrayList<>(); + entries.add(mock(Entry.class)); + when(mNotificationData.getActiveNotifications()).thenReturn(entries); + + ExpandableNotificationRow row = mock(ExpandableNotificationRow.class); + when(row.canViewBeDismissed()).thenReturn(true); + when(mStackScroller.getChildCount()).thenReturn(1); + when(mStackScroller.getChildAt(anyInt())).thenReturn(row); + when(mRemoteInputController.isRemoteInputActive()).thenReturn(true); + + mStatusBar.updateFooter(); + verify(mStackScroller).updateFooterView(false, true); + } + + @Test public void testUpdateFooter_oneClearableNotification() { mStatusBar.setBarStateForTest(StatusBarState.SHADE); ArrayList entries = new ArrayList<>(); -- 2.11.0