diff options
author | Ray Chen <raychen@google.com> | 2012-03-20 16:32:57 +0800 |
---|---|---|
committer | Ray Chen <raychen@google.com> | 2012-03-20 16:56:20 +0800 |
commit | 9af4a90dae4c05acfd1ec4f8d63375e8c0ebb430 (patch) | |
tree | be01dfe43cedaaf213f4ddbb46d832d7b8677407 /src/com/android/gallery3d/app/GalleryActionBar.java | |
parent | d8d04a85419c75b91348d3baeba416a14c5132f7 (diff) | |
download | android_packages_apps_Snap-9af4a90dae4c05acfd1ec4f8d63375e8c0ebb430.tar.gz android_packages_apps_Snap-9af4a90dae4c05acfd1ec4f8d63375e8c0ebb430.tar.bz2 android_packages_apps_Snap-9af4a90dae4c05acfd1ec4f8d63375e8c0ebb430.zip |
Fix b/6191707 Unable to set Custom wallpaper from Home
Change-Id: I130f74c94ebf5d93922807f7fee5ae7f189a15d4
Diffstat (limited to 'src/com/android/gallery3d/app/GalleryActionBar.java')
-rw-r--r-- | src/com/android/gallery3d/app/GalleryActionBar.java | 108 |
1 files changed, 64 insertions, 44 deletions
diff --git a/src/com/android/gallery3d/app/GalleryActionBar.java b/src/com/android/gallery3d/app/GalleryActionBar.java index 35cb8b4cb..c99cd60d7 100644 --- a/src/com/android/gallery3d/app/GalleryActionBar.java +++ b/src/com/android/gallery3d/app/GalleryActionBar.java @@ -19,6 +19,7 @@ package com.android.gallery3d.app; import android.app.ActionBar; import android.app.Activity; import android.app.AlertDialog; +import android.app.ActionBar.OnMenuVisibilityListener; import android.content.Context; import android.content.DialogInterface; import android.view.LayoutInflater; @@ -37,6 +38,16 @@ import java.util.ArrayList; public class GalleryActionBar implements ActionBar.OnNavigationListener { private static final String TAG = "GalleryActionBar"; + private ClusterRunner mClusterRunner; + private CharSequence[] mTitles; + private ArrayList<Integer> mActions; + private Context mContext; + private LayoutInflater mInflater; + private GalleryActivity mActivity; + private ActionBar mActionBar; + private int mCurrentIndex; + private ClusterAdapter mAdapter = new ClusterAdapter(); + public interface ClusterRunner { public void doCluster(int id); } @@ -103,15 +114,23 @@ public class GalleryActionBar implements ActionBar.OnNavigationListener { } } - private ClusterRunner mClusterRunner; - private CharSequence[] mTitles; - private ArrayList<Integer> mActions; - private Context mContext; - private LayoutInflater mInflater; - private GalleryActivity mActivity; - private ActionBar mActionBar; - private int mCurrentIndex; - private ClusterAdapter mAdapter = new ClusterAdapter(); + public static String getClusterByTypeString(Context context, int type) { + for (ActionItem item : sClusterItems) { + if (item.action == type) { + return context.getString(item.clusterBy); + } + } + return null; + } + + public static ShareActionProvider initializeShareActionProvider(Menu menu) { + MenuItem item = menu.findItem(R.id.action_share); + ShareActionProvider shareActionProvider = null; + if (item != null) { + shareActionProvider = (ShareActionProvider) item.getActionProvider(); + } + return shareActionProvider; + } public GalleryActionBar(GalleryActivity activity) { mActionBar = ((Activity) activity).getActionBar(); @@ -121,11 +140,6 @@ public class GalleryActionBar implements ActionBar.OnNavigationListener { mCurrentIndex = 0; } - public static int getHeight(Activity activity) { - ActionBar actionBar = activity.getActionBar(); - return actionBar != null ? actionBar.getHeight() : 0; - } - private void createDialogData() { ArrayList<CharSequence> titles = new ArrayList<CharSequence>(); mActions = new ArrayList<Integer>(); @@ -139,6 +153,10 @@ public class GalleryActionBar implements ActionBar.OnNavigationListener { titles.toArray(mTitles); } + public int getHeight() { + return mActionBar != null ? mActionBar.getHeight() : 0; + } + public void setClusterItemEnabled(int id, boolean enabled) { for (ActionItem item : sClusterItems) { if (item.action == id) { @@ -161,41 +179,26 @@ public class GalleryActionBar implements ActionBar.OnNavigationListener { return sClusterItems[mCurrentIndex].action; } - public static String getClusterByTypeString(Context context, int type) { - for (ActionItem item : sClusterItems) { - if (item.action == type) { - return context.getString(item.clusterBy); - } - } - return null; - } - - public static ShareActionProvider initializeShareActionProvider(Menu menu) { - MenuItem item = menu.findItem(R.id.action_share); - ShareActionProvider shareActionProvider = null; - if (item != null) { - shareActionProvider = (ShareActionProvider) item.getActionProvider(); - } - return shareActionProvider; - } - public void enableClusterMenu(int action, ClusterRunner runner) { - Log.v(TAG, "showClusterMenu: runner=" + runner); - // Don't set cluster runner until action bar is ready. - mClusterRunner = null; - mActionBar.setListNavigationCallbacks(mAdapter, this); - mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); - setSelectedAction(action); - mClusterRunner = runner; + if (mActionBar != null) { + // Don't set cluster runner until action bar is ready. + mClusterRunner = null; + mActionBar.setListNavigationCallbacks(mAdapter, this); + mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); + setSelectedAction(action); + mClusterRunner = runner; + } } // The only use case not to hideMenu in this method is to ensure // all elements disappear at the same time when exiting gallery. // hideMenu should always be true in all other cases. public void disableClusterMenu(boolean hideMenu) { - mClusterRunner = null; - if (hideMenu) { - mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); + if (mActionBar != null) { + mClusterRunner = null; + if (hideMenu) { + mActionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); + } } } @@ -214,8 +217,7 @@ public class GalleryActionBar implements ActionBar.OnNavigationListener { if (mActionBar != null) { int options = (displayHomeAsUp ? ActionBar.DISPLAY_HOME_AS_UP : 0) | (showTitle ? ActionBar.DISPLAY_SHOW_TITLE : 0); - mActionBar.setDisplayOptions( - options, + mActionBar.setDisplayOptions(options, ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_TITLE); mActionBar.setHomeButtonEnabled(displayHomeAsUp); } @@ -233,7 +235,25 @@ public class GalleryActionBar implements ActionBar.OnNavigationListener { if (mActionBar != null) mActionBar.setSubtitle(title); } + public void show() { + if (mActionBar != null) mActionBar.show(); + } + + public void hide() { + if (mActionBar != null) mActionBar.hide(); + } + + public void addOnMenuVisibilityListener(OnMenuVisibilityListener listener) { + if (mActionBar != null) mActionBar.addOnMenuVisibilityListener(listener); + } + + public void removeOnMenuVisibilityListener(OnMenuVisibilityListener listener) { + if (mActionBar != null) mActionBar.removeOnMenuVisibilityListener(listener); + } + public boolean setSelectedAction(int type) { + if (mActionBar == null) return false; + for (int i = 0, n = sClusterItems.length; i < n; i++) { ActionItem item = sClusterItems[i]; if (item.action == type) { |