From 748ee2e82a6f7a3adbbb522d45001e6dcb52b947 Mon Sep 17 00:00:00 2001 From: Svetoslav Ganov Date: Wed, 23 May 2012 15:21:10 -0700 Subject: 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 --- core/java/android/widget/ActivityChooserView.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/core/java/android/widget/ActivityChooserView.java b/core/java/android/widget/ActivityChooserView.java index be6b4e2f5c76..4eb169bf9a6d 100644 --- a/core/java/android/widget/ActivityChooserView.java +++ b/core/java/android/widget/ActivityChooserView.java @@ -400,6 +400,9 @@ public class ActivityChooserView extends ViewGroup implements ActivityChooserMod if (viewTreeObserver.isAlive()) { viewTreeObserver.removeOnGlobalLayoutListener(mOnGlobalLayoutListener); } + if (isShowingPopup()) { + dismissPopup(); + } mIsAttachedToWindow = false; } @@ -420,9 +423,7 @@ public class ActivityChooserView extends ViewGroup implements ActivityChooserMod @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(); } } -- cgit v1.2.3-59-g8ed1b