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