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
This commit is contained in:
Svetoslav Ganov
2012-05-23 15:21:10 -07:00
parent 53d003f0e7
commit 748ee2e82a

View File

@@ -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();
}
}