Merge "Fix bug 5099037 - No delete option when multiple videos are selected"
diff --git a/core/java/android/widget/ActivityChooserView.java b/core/java/android/widget/ActivityChooserView.java
index 45d73af..6a84626 100644
--- a/core/java/android/widget/ActivityChooserView.java
+++ b/core/java/android/widget/ActivityChooserView.java
@@ -156,7 +156,7 @@
      * @param attrs A collection of attributes.
      */
     public ActivityChooserView(Context context, AttributeSet attrs) {
-        this(context, attrs, R.attr.actionButtonStyle);
+        this(context, attrs, 0);
     }
 
     /**
diff --git a/core/java/com/android/internal/view/menu/ActionMenuPresenter.java b/core/java/com/android/internal/view/menu/ActionMenuPresenter.java
index 5c42579..dd75925 100644
--- a/core/java/com/android/internal/view/menu/ActionMenuPresenter.java
+++ b/core/java/com/android/internal/view/menu/ActionMenuPresenter.java
@@ -391,7 +391,6 @@
                 final boolean inGroup = seenGroups.get(groupId);
                 boolean isAction = (maxActions > 0 || inGroup) && widthLimit > 0 &&
                         (!mStrictWidthLimit || cellsRemaining > 0);
-                maxActions--;
 
                 if (isAction) {
                     View v = getItemView(item, mScrapActionButtonView, parent);
@@ -430,11 +429,15 @@
                     for (int j = 0; j < i; j++) {
                         MenuItemImpl areYouMyGroupie = visibleItems.get(j);
                         if (areYouMyGroupie.getGroupId() == groupId) {
+                            // Give back the action slot
+                            if (areYouMyGroupie.isActionButton()) maxActions++;
                             areYouMyGroupie.setIsActionButton(false);
                         }
                     }
                 }
 
+                if (isAction) maxActions--;
+
                 item.setIsActionButton(isAction);
             }
         }
diff --git a/core/java/com/android/internal/view/menu/MenuBuilder.java b/core/java/com/android/internal/view/menu/MenuBuilder.java
index 5e70e4c..5622b44 100644
--- a/core/java/com/android/internal/view/menu/MenuBuilder.java
+++ b/core/java/com/android/internal/view/menu/MenuBuilder.java
@@ -567,7 +567,7 @@
             }
         }
 
-        if (changedAtLeastOneItem) onItemsChanged(false);
+        if (changedAtLeastOneItem) onItemsChanged(true);
     }
 
     public void setGroupEnabled(int group, boolean enabled) {
@@ -929,6 +929,7 @@
      * 
      * @param structureChanged true if the menu structure changed,
      *                         false if only item properties changed.
+     *                         (Visibility is a structural property since it affects layout.)
      */
     void onItemsChanged(boolean structureChanged) {
         if (!mPreventDispatchingItemsChanged) {
@@ -971,7 +972,7 @@
     void onItemVisibleChanged(MenuItemImpl item) {
         // Notify of items being changed
         mIsVisibleItemsStale = true;
-        onItemsChanged(false);
+        onItemsChanged(true);
     }
     
     /**
@@ -981,7 +982,7 @@
     void onItemActionRequestChanged(MenuItemImpl item) {
         // Notify of items being changed
         mIsActionItemsStale = true;
-        onItemsChanged(false);
+        onItemsChanged(true);
     }
     
     ArrayList<MenuItemImpl> getVisibleItems() {
diff --git a/core/java/com/android/internal/view/menu/MenuItemImpl.java b/core/java/com/android/internal/view/menu/MenuItemImpl.java
index 8b53bb8..04147ab 100644
--- a/core/java/com/android/internal/view/menu/MenuItemImpl.java
+++ b/core/java/com/android/internal/view/menu/MenuItemImpl.java
@@ -585,7 +585,7 @@
     public MenuItem setActionProvider(ActionProvider actionProvider) {
         mActionView = null;
         mActionProvider = actionProvider;
-        mMenu.onItemsChanged(false);
+        mMenu.onItemsChanged(true); // Measurement can be changed
         return this;
     }
 
diff --git a/core/res/res/layout/activity_chooser_view.xml b/core/res/res/layout/activity_chooser_view.xml
index 5d82a97..82e1f83 100644
--- a/core/res/res/layout/activity_chooser_view.xml
+++ b/core/res/res/layout/activity_chooser_view.xml
@@ -22,7 +22,8 @@
     android:layout_height="wrap_content"
     android:layout_gravity="center"
     android:gravity="center"
-    style="?android:attr/actionButtonStyle">
+    style="?android:attr/actionButtonStyle"
+    android:padding="0dip">
 
     <FrameLayout
         android:id="@+id/default_activity_button"
@@ -31,7 +32,7 @@
         android:layout_gravity="center"
         android:focusable="true"
         android:addStatesFromChildren="true"
-        android:background="?android:attr/selectableItemBackground">
+        android:background="?android:attr/actionBarItemBackground">
 
         <ImageView android:id="@+id/image"
             android:layout_width="32dip"
@@ -53,7 +54,7 @@
         android:layout_gravity="center"
         android:focusable="true"
         android:addStatesFromChildren="true"
-        android:background="?android:attr/selectableItemBackground">
+        android:background="?android:attr/actionBarItemBackground">
 
         <ImageView android:id="@+id/image"
             android:layout_width="32dip"