Close notification guts after applying changes
ChannelEditorDialogController now tells interested parties about the
fact that it wants to dismiss. NotificationInfo also can close itself
without saving changes
Test: disable top channel in dialog, watch the guts close and
notification disappear
Bug: 133182818
Change-Id: I70adc7dc0d6b9a8a207cdff0b28b281fbd24e18a
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 1dc96b8..626701c 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
@@ -159,13 +159,13 @@
// used by standard ui
private OnClickListener mOnDismissSettings = v -> {
mPressedApply = true;
- closeControls(v);
+ closeControls(v, true);
};
// used by blocking helper
private OnClickListener mOnKeepShowing = v -> {
mExitReason = NotificationCounters.BLOCKING_HELPER_KEEP_SHOWING;
- closeControls(v);
+ closeControls(v, true);
mMetricsLogger.write(getLogMaker().setCategory(
MetricsEvent.NOTIFICATION_BLOCKING_HELPER)
.setType(MetricsEvent.TYPE_ACTION)
@@ -445,6 +445,8 @@
if (mChannelEditorDialogController != null) {
mChannelEditorDialogController.prepareDialogForApp(mAppName, mPackageName, mAppUid,
mUniqueChannelsInRow, mPkgIcon, mOnSettingsClickListener);
+ mChannelEditorDialogController.setOnFinishListener(
+ () -> closeControls(this, false));
mChannelEditorDialogController.show();
}
});
@@ -725,7 +727,7 @@
* {@link #swapContent(boolean, boolean)} for where undo is handled.
*/
@VisibleForTesting
- void closeControls(View v) {
+ void closeControls(View v, boolean save) {
int[] parentLoc = new int[2];
int[] targetLoc = new int[2];
mGutsContainer.getLocationOnScreen(parentLoc);
@@ -734,7 +736,7 @@
final int centerY = v.getHeight() / 2;
final int x = targetLoc[0] - parentLoc[0] + centerX;
final int y = targetLoc[1] - parentLoc[1] + centerY;
- mGutsContainer.closeControls(x, y, true /* save */, false /* force */);
+ mGutsContainer.closeControls(x, y, save, false /* force */);
}
@Override