diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMenuRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMenuRow.java index 5055dda0d8639..bb82b602afbb4 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMenuRow.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationMenuRow.java @@ -120,6 +120,9 @@ public class NotificationMenuRow implements NotificationMenuRowPlugin, View.OnCl @Override public void createMenu(ViewGroup parent) { mParent = (ExpandableNotificationRow) parent; + if (mMenuContainer != null) { + mMenuContainer.removeAllViews(); + } mMenuContainer = new FrameLayout(mContext); for (int i = 0; i < mMenuItems.size(); i++) { addMenuView(mMenuItems.get(i), mMenuContainer); diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationMenuRowTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationMenuRowTest.java index 31b9bae846d9c..efb9fea4f8956 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationMenuRowTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationMenuRowTest.java @@ -44,4 +44,11 @@ public class NotificationMenuRowTest extends LeakCheckedTest { ViewUtils.detachView(row.getMenuView()); TestableLooper.get(this).processAllMessages(); } + + @Test + public void testRecreateMenu() { + NotificationMenuRowPlugin row = new NotificationMenuRow(mContext); + row.createMenu(null); + row.createMenu(null); + } }