ActivityChooser view not handling its removal and relayout properly.
1. ActivityChooserView did not hide the popup window when detached.
bug:6544220
2. ActivityChooserView was calling show popup when it was already
showing it resulting in an incrrect update and losing one item
per rotation.
bug:6522041
Change-Id: Iec1682ca5d27e38caf57214fa86060edf82a2166
diff --git a/core/java/android/widget/ActivityChooserView.java b/core/java/android/widget/ActivityChooserView.java
index be6b4e2..4eb169b 100644
--- a/core/java/android/widget/ActivityChooserView.java
+++ b/core/java/android/widget/ActivityChooserView.java
@@ -400,6 +400,9 @@
if (viewTreeObserver.isAlive()) {
viewTreeObserver.removeOnGlobalLayoutListener(mOnGlobalLayoutListener);
}
+ if (isShowingPopup()) {
+ dismissPopup();
+ }
mIsAttachedToWindow = false;
}
@@ -420,9 +423,7 @@
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
mActivityChooserContent.layout(0, 0, right - left, bottom - top);
- if (getListPopupWindow().isShowing()) {
- showPopupUnchecked(mAdapter.getMaxActivityCount());
- } else {
+ if (!isShowingPopup()) {
dismissPopup();
}
}