diff options
| author | 2025-02-20 14:24:41 -0500 | |
|---|---|---|
| committer | 2025-03-10 14:03:06 -0400 | |
| commit | 1aa94f07d0376bea860edb6af38b105375603c8d (patch) | |
| tree | d0a24083ec14167cdce64c9685b5401baf705eb8 | |
| parent | 22067462fc35fab2822bcd7adbbf7e72c55ff3a7 (diff) | |
Add Dismiss button to Notification Guts.
Bug: 383967964
Test: NotificationInfoTest
Flag: EXEMPT bugfix
Change-Id: I8f5814588fdfc313b1361360df018581822cb371
12 files changed, 134 insertions, 17 deletions
diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.kt index 1b8d64d5483c..510e87b8ecf0 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerTest.kt @@ -80,6 +80,9 @@ import com.android.systemui.statusbar.policy.DeviceProvisionedController import com.android.systemui.testKosmos import com.android.systemui.util.kotlin.JavaAdapter import com.android.systemui.wmshell.BubblesManager +import java.util.Optional +import kotlin.test.assertNotNull +import kotlin.test.fail import kotlinx.coroutines.test.runCurrent import kotlinx.coroutines.test.runTest import org.junit.Assert.assertEquals @@ -107,9 +110,6 @@ import org.mockito.kotlin.verify import org.mockito.kotlin.whenever import platform.test.runner.parameterized.ParameterizedAndroidJunit4 import platform.test.runner.parameterized.Parameters -import java.util.Optional -import kotlin.test.assertNotNull -import kotlin.test.fail /** Tests for [NotificationGutsManager]. */ @SmallTest @@ -509,6 +509,7 @@ class NotificationGutsManagerTest(flags: FlagsParameterization) : SysuiTestCase( .setImportance(NotificationManager.IMPORTANCE_HIGH) .build() + whenever(row.canViewBeDismissed()).thenReturn(true) whenever(highPriorityProvider.isHighPriority(entry)).thenReturn(true) val statusBarNotification = entry.sbn gutsManager.initializeNotificationInfo(row, notificationInfoView) @@ -530,6 +531,7 @@ class NotificationGutsManagerTest(flags: FlagsParameterization) : SysuiTestCase( any<UiEventLogger>(), /* isDeviceProvisioned = */ eq(false), /* isNonblockable = */ eq(false), + /* isDismissable = */ eq(true), /* wasShownHighPriority = */ eq(true), eq(assistantFeedbackController), eq(metricsLogger), @@ -545,6 +547,7 @@ class NotificationGutsManagerTest(flags: FlagsParameterization) : SysuiTestCase( NotificationEntryHelper.modifyRanking(row.entry) .setUserSentiment(NotificationListenerService.Ranking.USER_SENTIMENT_NEGATIVE) .build() + whenever(row.canViewBeDismissed()).thenReturn(true) val statusBarNotification = row.entry.sbn val entry = row.entry @@ -569,6 +572,7 @@ class NotificationGutsManagerTest(flags: FlagsParameterization) : SysuiTestCase( any<UiEventLogger>(), /* isDeviceProvisioned = */ eq(true), /* isNonblockable = */ eq(false), + /* isDismissable = */ eq(true), /* wasShownHighPriority = */ eq(false), eq(assistantFeedbackController), eq(metricsLogger), @@ -584,6 +588,7 @@ class NotificationGutsManagerTest(flags: FlagsParameterization) : SysuiTestCase( NotificationEntryHelper.modifyRanking(row.entry) .setUserSentiment(NotificationListenerService.Ranking.USER_SENTIMENT_NEGATIVE) .build() + whenever(row.canViewBeDismissed()).thenReturn(true) val statusBarNotification = row.entry.sbn val entry = row.entry @@ -606,6 +611,7 @@ class NotificationGutsManagerTest(flags: FlagsParameterization) : SysuiTestCase( any<UiEventLogger>(), /* isDeviceProvisioned = */ eq(false), /* isNonblockable = */ eq(false), + /* isDismissable = */ eq(true), /* wasShownHighPriority = */ eq(false), eq(assistantFeedbackController), eq(metricsLogger), diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationInfoTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationInfoTest.kt index 96ae07035ed2..09e1b4a5e650 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationInfoTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/NotificationInfoTest.kt @@ -49,6 +49,7 @@ import android.view.View.GONE import android.view.View.VISIBLE import android.widget.ImageView import android.widget.TextView +import androidx.core.view.isVisible import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.filters.SmallTest import com.android.internal.logging.MetricsLogger @@ -863,6 +864,31 @@ class NotificationInfoTest : SysuiTestCase() { assertThat(underTest.findViewById<View>(R.id.feedback).visibility).isEqualTo(GONE) } + @Test + @Throws(RemoteException::class) + fun testDismissListenerBound() { + val latch = CountDownLatch(1) + bindNotification(onCloseClick = { _: View? -> latch.countDown() }) + + val dismissView = underTest.findViewById<View>(R.id.inline_dismiss) + assertThat(dismissView.isVisible).isTrue() + dismissView.performClick() + + // Verify that listener was triggered. + assertThat(latch.count).isEqualTo(0) + } + + @Test + @Throws(RemoteException::class) + fun testDismissHiddenWhenUndismissable() { + + entry.sbn.notification.flags = + entry.sbn.notification.flags or android.app.Notification.FLAG_NO_DISMISS + bindNotification(isDismissable = false) + val dismissView = underTest.findViewById<View>(R.id.inline_dismiss) + assertThat(dismissView.isVisible).isFalse() + } + private fun bindNotification( pm: PackageManager = this.mockPackageManager, iNotificationManager: INotificationManager = this.mockINotificationManager, @@ -880,6 +906,7 @@ class NotificationInfoTest : SysuiTestCase() { uiEventLogger: UiEventLogger = this.uiEventLogger, isDeviceProvisioned: Boolean = true, isNonblockable: Boolean = false, + isDismissable: Boolean = true, wasShownHighPriority: Boolean = true, assistantFeedbackController: AssistantFeedbackController = this.assistantFeedbackController, metricsLogger: MetricsLogger = kosmos.metricsLogger, @@ -901,6 +928,7 @@ class NotificationInfoTest : SysuiTestCase() { uiEventLogger, isDeviceProvisioned, isNonblockable, + isDismissable, wasShownHighPriority, assistantFeedbackController, metricsLogger, diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/PromotedNotificationInfoTest.java b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/PromotedNotificationInfoTest.java index 5638e0b434aa..5b5810de4a80 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/PromotedNotificationInfoTest.java +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/statusbar/notification/row/PromotedNotificationInfoTest.java @@ -148,6 +148,7 @@ public class PromotedNotificationInfoTest extends SysuiTestCase { true, false, true, + true, mAssistantFeedbackController, mMetricsLogger, null); diff --git a/packages/SystemUI/res/layout/notification_2025_info.xml b/packages/SystemUI/res/layout/notification_2025_info.xml index 7b6916652924..fa852a2b8e85 100644 --- a/packages/SystemUI/res/layout/notification_2025_info.xml +++ b/packages/SystemUI/res/layout/notification_2025_info.xml @@ -18,6 +18,7 @@ <!-- extends LinearLayout --> <com.android.systemui.statusbar.notification.row.NotificationInfo xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:androidprv="http://schemas.android.com/apk/prv/res/android" android:id="@+id/notification_guts" android:layout_width="match_parent" @@ -324,18 +325,34 @@ </com.android.systemui.statusbar.notification.row.ButtonLinearLayout> </LinearLayout> - - <LinearLayout + <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/bottom_buttons" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@*android:dimen/notification_2025_margin" android:minHeight="@dimen/notification_2025_guts_button_size" - android:gravity="center_vertical" - > + android:gravity="center_vertical"> + + <TextView + android:id="@+id/inline_dismiss" + android:text="@string/notification_inline_dismiss" + android:paddingEnd="@dimen/notification_importance_button_padding" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:paddingTop="8dp" + android:paddingBottom="@*android:dimen/notification_2025_margin" + app:layout_constraintStart_toStartOf="parent" + android:gravity="center" + android:minWidth="@dimen/notification_2025_min_tap_target_size" + android:minHeight="@dimen/notification_2025_min_tap_target_size" + android:maxWidth="200dp" + style="@style/TextAppearance.NotificationInfo.Button" + android:textSize="@*android:dimen/notification_2025_action_text_size" + /> <TextView android:id="@+id/turn_off_notifications" android:text="@string/inline_turn_off_notifications" + android:paddingStart="@dimen/notification_importance_button_padding" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginEnd="32dp" @@ -345,6 +362,8 @@ android:minWidth="@dimen/notification_2025_min_tap_target_size" android:minHeight="@dimen/notification_2025_min_tap_target_size" android:maxWidth="200dp" + app:layout_constraintStart_toEndOf="@id/inline_dismiss" + app:layout_constraintBaseline_toBaselineOf="@id/inline_dismiss" style="@style/TextAppearance.NotificationInfo.Button" android:textSize="@*android:dimen/notification_2025_action_text_size"/> <TextView @@ -354,12 +373,18 @@ android:layout_height="wrap_content" android:paddingTop="8dp" android:paddingBottom="@*android:dimen/notification_2025_margin" - android:gravity="center" + android:gravity="end" + app:layout_constraintEnd_toEndOf="parent" android:minWidth="@dimen/notification_2025_min_tap_target_size" android:minHeight="@dimen/notification_2025_min_tap_target_size" android:maxWidth="125dp" style="@style/TextAppearance.NotificationInfo.Button" android:textSize="@*android:dimen/notification_2025_action_text_size"/> - </LinearLayout> + <androidx.constraintlayout.helper.widget.Flow + android:layout_width="match_parent" + android:layout_height="wrap_content" + app:constraint_referenced_ids="inline_dismiss,turn_off_notifications,done" + app:flow_wrapMode="chain"/> + </androidx.constraintlayout.widget.ConstraintLayout> </LinearLayout> </com.android.systemui.statusbar.notification.row.NotificationInfo> diff --git a/packages/SystemUI/res/layout/notification_info.xml b/packages/SystemUI/res/layout/notification_info.xml index 089ceaee6ce3..d4bd142d9089 100644 --- a/packages/SystemUI/res/layout/notification_info.xml +++ b/packages/SystemUI/res/layout/notification_info.xml @@ -341,15 +341,28 @@ asked for it --> android:paddingEnd="4dp" > <TextView + android:id="@+id/inline_dismiss" + android:text="@string/notification_inline_dismiss" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentStart="true" + android:gravity="start|center_vertical" + android:minWidth="@dimen/notification_importance_toggle_size" + android:minHeight="@dimen/notification_importance_toggle_size" + android:maxWidth="200dp" + android:paddingEnd="@dimen/notification_importance_button_padding" + style="@style/TextAppearance.NotificationInfo.Button"/> + <TextView android:id="@+id/turn_off_notifications" android:text="@string/inline_turn_off_notifications" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentStart="true" + android:layout_toEndOf="@id/inline_dismiss" android:gravity="start|center_vertical" android:minWidth="@dimen/notification_importance_toggle_size" android:minHeight="@dimen/notification_importance_toggle_size" android:maxWidth="200dp" + android:paddingStart="@dimen/notification_importance_button_padding" style="@style/TextAppearance.NotificationInfo.Button"/> <TextView android:id="@+id/done" diff --git a/packages/SystemUI/res/layout/partial_conversation_info.xml b/packages/SystemUI/res/layout/partial_conversation_info.xml index 4850b35833e5..d1755eff6dab 100644 --- a/packages/SystemUI/res/layout/partial_conversation_info.xml +++ b/packages/SystemUI/res/layout/partial_conversation_info.xml @@ -143,15 +143,28 @@ android:paddingEnd="4dp" > <TextView + android:id="@+id/inline_dismiss" + android:text="@string/notification_inline_dismiss" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentStart="true" + android:gravity="start|center_vertical" + android:minWidth="@dimen/notification_importance_toggle_size" + android:minHeight="@dimen/notification_importance_toggle_size" + android:maxWidth="200dp" + android:paddingEnd="@dimen/notification_importance_button_padding" + style="@style/TextAppearance.NotificationInfo.Button"/> + <TextView android:id="@+id/turn_off_notifications" android:text="@string/inline_turn_off_notifications" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentStart="true" + android:layout_toEndOf="@id/inline_dismiss" android:gravity="start|center_vertical" android:minWidth="@dimen/notification_importance_toggle_size" android:minHeight="@dimen/notification_importance_toggle_size" android:maxWidth="200dp" + android:paddingStart="@dimen/notification_importance_button_padding" style="@style/TextAppearance.NotificationInfo.Button"/> <TextView android:id="@+id/done" diff --git a/packages/SystemUI/res/layout/promoted_notification_info.xml b/packages/SystemUI/res/layout/promoted_notification_info.xml index 2e0a0ca1185c..3982a6638666 100644 --- a/packages/SystemUI/res/layout/promoted_notification_info.xml +++ b/packages/SystemUI/res/layout/promoted_notification_info.xml @@ -373,15 +373,28 @@ asked for it --> android:paddingEnd="4dp" > <TextView + android:id="@+id/inline_dismiss" + android:text="@string/notification_inline_dismiss" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentStart="true" + android:gravity="start|center_vertical" + android:minWidth="@dimen/notification_importance_toggle_size" + android:minHeight="@dimen/notification_importance_toggle_size" + android:maxWidth="200dp" + android:paddingEnd="@dimen/notification_importance_button_padding" + style="@style/TextAppearance.NotificationInfo.Button"/> + <TextView android:id="@+id/turn_off_notifications" android:text="@string/inline_turn_off_notifications" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentStart="true" + android:layout_toEndOf="@id/inline_dismiss" android:gravity="start|center_vertical" android:minWidth="@dimen/notification_importance_toggle_size" android:minHeight="@dimen/notification_importance_toggle_size" android:maxWidth="200dp" + android:paddingStart="@dimen/notification_importance_button_padding" style="@style/TextAppearance.NotificationInfo.Button"/> <TextView android:id="@+id/done" diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml index c06c17a0844f..efeb777590f7 100644 --- a/packages/SystemUI/res/values/strings.xml +++ b/packages/SystemUI/res/values/strings.xml @@ -2056,7 +2056,7 @@ <string name="inline_ok_button">Apply</string> <!-- Notification inline controls: button to show block screen [CHAR_LIMIT=35] --> - <string name="inline_turn_off_notifications">Turn off notifications</string> + <string name="inline_turn_off_notifications">Turn off</string> <!-- [CHAR LIMIT=100] Notification Importance title --> <string name="notification_silence_title">Silent</string> diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationGutsManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationGutsManager.java index 9a75253295d5..8fa7b1b3fb63 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationGutsManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationGutsManager.java @@ -440,6 +440,7 @@ public class NotificationGutsManager implements NotifGutsViewManager, CoreStarta NotificationBundleUi.isEnabled() ? !row.getEntry().isBlockable() : row.getIsNonblockable(), + row.canViewBeDismissed(), mHighPriorityProvider.isHighPriority(row.getEntry()), mAssistantFeedbackController, mMetricsLogger, diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationInfo.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationInfo.java index 661122510c6c..4ba57a130695 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationInfo.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationInfo.java @@ -120,6 +120,7 @@ public class NotificationInfo extends LinearLayout implements NotificationGuts.G private boolean mIsAutomaticChosen; private boolean mIsSingleDefaultChannel; private boolean mIsNonblockable; + private boolean mIsDismissable; private NotificationEntry mEntry; private StatusBarNotification mSbn; private boolean mIsDeviceProvisioned; @@ -160,6 +161,7 @@ public class NotificationInfo extends LinearLayout implements NotificationGuts.G mPressedApply = true; mGutsContainer.closeControls(v, /* save= */ true); }; + private OnClickListener mOnCloseClickListener; public NotificationInfo(Context context, AttributeSet attrs) { super(context, attrs); @@ -202,6 +204,7 @@ public class NotificationInfo extends LinearLayout implements NotificationGuts.G UiEventLogger uiEventLogger, boolean isDeviceProvisioned, boolean isNonblockable, + boolean isDismissable, boolean wasShownHighPriority, AssistantFeedbackController assistantFeedbackController, MetricsLogger metricsLogger, @@ -226,11 +229,13 @@ public class NotificationInfo extends LinearLayout implements NotificationGuts.G mStartingChannelImportance = mSingleNotificationChannel.getImportance(); mWasShownHighPriority = wasShownHighPriority; mIsNonblockable = isNonblockable; + mIsDismissable = isDismissable; mAppUid = mSbn.getUid(); mDelegatePkg = mSbn.getOpPkg(); mIsDeviceProvisioned = isDeviceProvisioned; mShowAutomaticSetting = mAssistantFeedbackController.isFeedbackEnabled(); mUiEventLogger = uiEventLogger; + mOnCloseClickListener = onCloseClick; mIsSystemRegisteredCall = mSbn.getNotification().isStyle(Notification.CallStyle.class) && mINotificationManager.isInCall(mSbn.getPackageName(), mSbn.getUid()); @@ -277,6 +282,11 @@ public class NotificationInfo extends LinearLayout implements NotificationGuts.G turnOffButton.setVisibility(turnOffButton.hasOnClickListeners() && !mIsNonblockable ? VISIBLE : GONE); + View dismissButton = findViewById(R.id.inline_dismiss); + dismissButton.setOnClickListener(mOnCloseClickListener); + dismissButton.setVisibility(dismissButton.hasOnClickListeners() && mIsDismissable + ? VISIBLE : GONE); + View done = findViewById(R.id.done); done.setOnClickListener(mOnDismissSettings); done.setAccessibilityDelegate(mGutsContainer.getAccessibilityDelegate()); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/PromotedNotificationInfo.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/PromotedNotificationInfo.java index 6ff711deeb01..dc89c83f8390 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/PromotedNotificationInfo.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/PromotedNotificationInfo.java @@ -65,13 +65,14 @@ public class PromotedNotificationInfo extends NotificationInfo { UiEventLogger uiEventLogger, boolean isDeviceProvisioned, boolean isNonblockable, + boolean isDismissable, boolean wasShownHighPriority, AssistantFeedbackController assistantFeedbackController, MetricsLogger metricsLogger, OnClickListener onCloseClick) throws RemoteException { super.bindNotification(pm, iNotificationManager, appIconProvider, iconStyleProvider, onUserInteractionCallback, channelEditorDialogController, pkg, notificationChannel, entry, onSettingsClick, onAppSettingsClick, feedbackClickListener, uiEventLogger, - isDeviceProvisioned, isNonblockable, wasShownHighPriority, + isDeviceProvisioned, isNonblockable, isDismissable, wasShownHighPriority, assistantFeedbackController, metricsLogger, onCloseClick); mNotificationManager = iNotificationManager; diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerWithScenesTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerWithScenesTest.kt index 0c0ef9d5edfe..29abe80db855 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerWithScenesTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationGutsManagerWithScenesTest.kt @@ -427,6 +427,7 @@ class NotificationGutsManagerWithScenesTest : SysuiTestCase() { .setUserSentiment(Ranking.USER_SENTIMENT_NEGATIVE) .setImportance(NotificationManager.IMPORTANCE_HIGH) .build() + whenever(row.canViewBeDismissed()).thenReturn(true) whenever(highPriorityProvider.isHighPriority(entry)).thenReturn(true) val statusBarNotification = entry.sbn gutsManager.initializeNotificationInfo(row, notificationInfoView) @@ -447,7 +448,8 @@ class NotificationGutsManagerWithScenesTest : SysuiTestCase() { any<UiEventLogger>(), eq(true), eq(false), - eq(true), /* wasShownHighPriority */ + eq(true), + eq(true), eq(assistantFeedbackController), any<MetricsLogger>(), any<View.OnClickListener>(), @@ -462,6 +464,7 @@ class NotificationGutsManagerWithScenesTest : SysuiTestCase() { NotificationEntryHelper.modifyRanking(row.entry) .setUserSentiment(Ranking.USER_SENTIMENT_NEGATIVE) .build() + whenever(row.canViewBeDismissed()).thenReturn(true) val statusBarNotification = row.entry.sbn val entry = row.entry gutsManager.initializeNotificationInfo(row, notificationInfoView) @@ -482,7 +485,8 @@ class NotificationGutsManagerWithScenesTest : SysuiTestCase() { any<UiEventLogger>(), eq(true), eq(false), - eq(false), /* wasShownHighPriority */ + eq(true), /* wasShownHighPriority */ + eq(false), eq(assistantFeedbackController), any<MetricsLogger>(), any<View.OnClickListener>(), @@ -497,6 +501,7 @@ class NotificationGutsManagerWithScenesTest : SysuiTestCase() { NotificationEntryHelper.modifyRanking(row.entry) .setUserSentiment(Ranking.USER_SENTIMENT_NEGATIVE) .build() + whenever(row.canViewBeDismissed()).thenReturn(true) val statusBarNotification = row.entry.sbn val entry = row.entry gutsManager.initializeNotificationInfo(row, notificationInfoView) @@ -517,7 +522,8 @@ class NotificationGutsManagerWithScenesTest : SysuiTestCase() { any<UiEventLogger>(), eq(true), eq(false), - eq(false), /* wasShownHighPriority */ + eq(true), /* wasShownHighPriority */ + eq(false), eq(assistantFeedbackController), any<MetricsLogger>(), any<View.OnClickListener>(), |