summaryrefslogtreecommitdiffstats
path: root/core/java/android/widget/ActivityChooserView.java
diff options
context:
space:
mode:
authorAdam Powell <adamp@google.com>2011-09-21 18:26:13 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-09-21 18:26:13 -0700
commitc3e4454fdb57391c8d7c77a9d61381d0f4d857e8 (patch)
treece80e3938dbb1c7ab1b469b1f103e7b1302d450c /core/java/android/widget/ActivityChooserView.java
parentabb06265efad56434ca8dfa73cad9c9a7dff781d (diff)
parent823f074a73cfc23c40a7b576c71daa096ee9ed6a (diff)
downloadframeworks_base-c3e4454fdb57391c8d7c77a9d61381d0f4d857e8.zip
frameworks_base-c3e4454fdb57391c8d7c77a9d61381d0f4d857e8.tar.gz
frameworks_base-c3e4454fdb57391c8d7c77a9d61381d0f4d857e8.tar.bz2
Merge "Fix bug 5300621 - Share menu disappears in gallery"
Diffstat (limited to 'core/java/android/widget/ActivityChooserView.java')
-rw-r--r--core/java/android/widget/ActivityChooserView.java27
1 files changed, 25 insertions, 2 deletions
diff --git a/core/java/android/widget/ActivityChooserView.java b/core/java/android/widget/ActivityChooserView.java
index 25af3fa..5841283 100644
--- a/core/java/android/widget/ActivityChooserView.java
+++ b/core/java/android/widget/ActivityChooserView.java
@@ -16,6 +16,8 @@
package android.widget;
+import com.android.internal.R;
+
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
@@ -25,6 +27,7 @@ import android.content.res.TypedArray;
import android.database.DataSetObserver;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
+import android.view.ActionProvider;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -32,8 +35,6 @@ import android.view.ViewTreeObserver;
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
import android.widget.ActivityChooserModel.ActivityChooserModelClient;
-import com.android.internal.R;
-
/**
* This class is a view for choosing an activity for handling a given {@link Intent}.
* <p>
@@ -105,6 +106,11 @@ public class ActivityChooserView extends ViewGroup implements ActivityChooserMod
private final int mListPopupMaxWidth;
/**
+ * The ActionProvider hosting this view, if applicable.
+ */
+ ActionProvider mProvider;
+
+ /**
* Observer for the model data.
*/
private final DataSetObserver mModelDataSetOberver = new DataSetObserver() {
@@ -129,6 +135,9 @@ public class ActivityChooserView extends ViewGroup implements ActivityChooserMod
getListPopupWindow().dismiss();
} else {
getListPopupWindow().show();
+ if (mProvider != null) {
+ mProvider.subUiVisibilityChanged(true);
+ }
}
}
}
@@ -260,6 +269,14 @@ public class ActivityChooserView extends ViewGroup implements ActivityChooserMod
}
/**
+ * Set the provider hosting this view, if applicable.
+ * @hide Internal use only
+ */
+ public void setProvider(ActionProvider provider) {
+ mProvider = provider;
+ }
+
+ /**
* Shows the popup window with activities.
*
* @return True if the popup was shown, false if already showing.
@@ -307,6 +324,9 @@ public class ActivityChooserView extends ViewGroup implements ActivityChooserMod
final int contentWidth = Math.min(mAdapter.measureContentWidth(), mListPopupMaxWidth);
popupWindow.setContentWidth(contentWidth);
popupWindow.show();
+ if (mProvider != null) {
+ mProvider.subUiVisibilityChanged(true);
+ }
}
}
@@ -525,6 +545,9 @@ public class ActivityChooserView extends ViewGroup implements ActivityChooserMod
// PopUpWindow.OnDismissListener#onDismiss
public void onDismiss() {
notifyOnDismissListener();
+ if (mProvider != null) {
+ mProvider.subUiVisibilityChanged(false);
+ }
}
private void notifyOnDismissListener() {