diff options
2 files changed, 9 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfo.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfo.java index bcc81a8b967f..23b911b6f687 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfo.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfo.java @@ -88,8 +88,8 @@ public class NotificationConversationInfo extends LinearLayout implements private INotificationManager mINotificationManager; ShortcutManager mShortcutManager; private PackageManager mPm; - private VisualStabilityManager mVisualStabilityManager; private ConversationIconFactory mIconFactory; + private VisualStabilityManager mVisualStabilityManager; private String mPackageName; private String mAppName; @@ -108,7 +108,9 @@ public class NotificationConversationInfo extends LinearLayout implements private TextView mPriorityDescriptionView; private TextView mDefaultDescriptionView; private TextView mSilentDescriptionView; + private @Action int mSelectedAction = -1; + private boolean mPressedApply; private OnSnoozeClickListener mOnSnoozeClickListener; private OnSettingsClickListener mOnSettingsClickListener; @@ -160,6 +162,7 @@ public class NotificationConversationInfo extends LinearLayout implements }; private OnClickListener mOnDone = v -> { + mPressedApply = true; closeControls(v, true); }; @@ -521,6 +524,7 @@ public class NotificationConversationInfo extends LinearLayout implements bgHandler.post( new UpdateChannelRunnable(mINotificationManager, mPackageName, mAppUid, mSelectedAction, mNotificationChannel)); + mVisualStabilityManager.temporarilyAllowReordering(); } private boolean shouldShowPriorityOnboarding() { @@ -587,7 +591,7 @@ public class NotificationConversationInfo extends LinearLayout implements @Override public boolean shouldBeSaved() { - return mSelectedAction == ACTION_FAVORITE || mSelectedAction == ACTION_MUTE; + return mPressedApply; } @Override diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfoTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfoTest.java index 6db868563d3d..3847028a25df 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfoTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationConversationInfoTest.java @@ -597,6 +597,7 @@ public class NotificationConversationInfoTest extends SysuiTestCase { .isEqualTo(GONE); // no changes until hit done + assertFalse(mNotificationInfo.shouldBeSaved()); verify(mMockINotificationManager, never()).updateNotificationChannelForPackage( anyString(), anyInt(), any()); assertFalse(mConversationChannel.isImportantConversation()); @@ -637,6 +638,7 @@ public class NotificationConversationInfoTest extends SysuiTestCase { .isEqualTo(GONE); // no changes until hit done + assertFalse(mNotificationInfo.shouldBeSaved()); verify(mMockINotificationManager, never()).updateNotificationChannelForPackage( anyString(), anyInt(), any()); assertFalse(mConversationChannel.isImportantConversation()); @@ -679,6 +681,7 @@ public class NotificationConversationInfoTest extends SysuiTestCase { .isEqualTo(VISIBLE); // no changes until save + assertFalse(mNotificationInfo.shouldBeSaved()); verify(mMockINotificationManager, never()).updateNotificationChannelForPackage( anyString(), anyInt(), any()); assertEquals(IMPORTANCE_DEFAULT, mConversationChannel.getImportance()); |