summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d
diff options
context:
space:
mode:
authorRay Chen <raychen@google.com>2012-03-20 16:32:57 +0800
committerRay Chen <raychen@google.com>2012-03-20 16:56:20 +0800
commit9af4a90dae4c05acfd1ec4f8d63375e8c0ebb430 (patch)
treebe01dfe43cedaaf213f4ddbb46d832d7b8677407 /src/com/android/gallery3d
parentd8d04a85419c75b91348d3baeba416a14c5132f7 (diff)
downloadandroid_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')
-rw-r--r--src/com/android/gallery3d/app/AbstractGalleryActivity.java6
-rw-r--r--src/com/android/gallery3d/app/AlbumPage.java2
-rw-r--r--src/com/android/gallery3d/app/AlbumSetPage.java39
-rw-r--r--src/com/android/gallery3d/app/Gallery.java7
-rw-r--r--src/com/android/gallery3d/app/GalleryActionBar.java108
-rw-r--r--src/com/android/gallery3d/app/ManageCachePage.java2
-rw-r--r--src/com/android/gallery3d/app/PhotoPage.java11
-rw-r--r--src/com/android/gallery3d/app/PickerActivity.java8
8 files changed, 92 insertions, 91 deletions
diff --git a/src/com/android/gallery3d/app/AbstractGalleryActivity.java b/src/com/android/gallery3d/app/AbstractGalleryActivity.java
index 03f522f48..9a1d3d300 100644
--- a/src/com/android/gallery3d/app/AbstractGalleryActivity.java
+++ b/src/com/android/gallery3d/app/AbstractGalleryActivity.java
@@ -43,6 +43,7 @@ public class AbstractGalleryActivity extends Activity implements GalleryActivity
private static final String TAG = "AbstractGalleryActivity";
private GLRootView mGLRootView;
private StateManager mStateManager;
+ private GalleryActionBar mActionBar;
private AlertDialog mAlertDialog = null;
private BroadcastReceiver mMountReceiver = new BroadcastReceiver() {
@@ -192,7 +193,10 @@ public class AbstractGalleryActivity extends Activity implements GalleryActivity
@Override
public GalleryActionBar getGalleryActionBar() {
- return null;
+ if (mActionBar == null) {
+ mActionBar = new GalleryActionBar(this);
+ }
+ return mActionBar;
}
@Override
diff --git a/src/com/android/gallery3d/app/AlbumPage.java b/src/com/android/gallery3d/app/AlbumPage.java
index 411464e86..c83321671 100644
--- a/src/com/android/gallery3d/app/AlbumPage.java
+++ b/src/com/android/gallery3d/app/AlbumPage.java
@@ -118,7 +118,7 @@ public class AlbumPage extends ActivityState implements GalleryActionBar.Cluster
protected void onLayout(
boolean changed, int left, int top, int right, int bottom) {
- int slotViewTop = GalleryActionBar.getHeight((Activity) mActivity);
+ int slotViewTop = mActivity.getGalleryActionBar().getHeight();
int slotViewBottom = bottom - top;
int slotViewRight = right - left;
diff --git a/src/com/android/gallery3d/app/AlbumSetPage.java b/src/com/android/gallery3d/app/AlbumSetPage.java
index c52cd8c05..e79a3ae04 100644
--- a/src/com/android/gallery3d/app/AlbumSetPage.java
+++ b/src/com/android/gallery3d/app/AlbumSetPage.java
@@ -79,6 +79,7 @@ public class AlbumSetPage extends ActivityState implements
private String mTitle;
private String mSubtitle;
private boolean mShowClusterMenu;
+ private GalleryActionBar mActionBar;
private int mSelectedAction;
private Vibrator mVibrator;
@@ -120,7 +121,7 @@ public class AlbumSetPage extends ActivityState implements
boolean changed, int left, int top, int right, int bottom) {
mEyePosition.resetPosition();
- int slotViewTop = GalleryActionBar.getHeight((Activity) mActivity);
+ int slotViewTop = mActionBar.getHeight();
int slotViewBottom = bottom - top;
int slotViewRight = right - left;
@@ -270,11 +271,9 @@ public class AlbumSetPage extends ActivityState implements
mEyePosition = new EyePosition(context, this);
mDetailsSource = new MyDetailsSource();
mVibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
- GalleryActionBar actionBar = mActivity.getGalleryActionBar();
- if (actionBar != null) {
- mSelectedAction = data.getInt(
- AlbumSetPage.KEY_SELECTED_CLUSTER_TYPE, FilterUtils.CLUSTER_BY_ALBUM);
- }
+ mActionBar = mActivity.getGalleryActionBar();
+ mSelectedAction = data.getInt(AlbumSetPage.KEY_SELECTED_CLUSTER_TYPE,
+ FilterUtils.CLUSTER_BY_ALBUM);
startTransition();
}
@@ -311,11 +310,10 @@ public class AlbumSetPage extends ActivityState implements
mAlbumSetView.pause();
mEyePosition.pause();
DetailsHelper.pause();
- GalleryActionBar actionBar = mActivity.getGalleryActionBar();
// Call disableClusterMenu to avoid receiving callback after paused.
// Don't hide menu here otherwise the list menu will disappear earlier than
// the action bar, which is janky and unwanted behavior.
- if (actionBar != null) actionBar.disableClusterMenu(false);
+ mActionBar.disableClusterMenu(false);
if (mSyncTask != null) {
mSyncTask.cancel();
mSyncTask = null;
@@ -337,9 +335,8 @@ public class AlbumSetPage extends ActivityState implements
mAlbumSetView.resume();
mEyePosition.resume();
mActionModeHandler.resume();
- GalleryActionBar actionBar = mActivity.getGalleryActionBar();
- if (mShowClusterMenu && actionBar != null) {
- actionBar.enableClusterMenu(mSelectedAction, this);
+ if (mShowClusterMenu) {
+ mActionBar.enableClusterMenu(mSelectedAction, this);
}
if (!mInitialSynced) {
setLoadingBit(BIT_LOADING_SYNC);
@@ -399,7 +396,6 @@ public class AlbumSetPage extends ActivityState implements
@Override
protected boolean onCreateActionBar(Menu menu) {
Activity activity = (Activity) mActivity;
- GalleryActionBar actionBar = mActivity.getGalleryActionBar();
MenuInflater inflater = activity.getMenuInflater();
final boolean inAlbum = mActivity.getStateManager().hasStateClass(
@@ -415,10 +411,10 @@ public class AlbumSetPage extends ActivityState implements
? R.string.select_video
: R.string.select_item;
}
- actionBar.setTitle(id);
+ mActionBar.setTitle(id);
} else if (mGetAlbum) {
inflater.inflate(R.menu.pickup, menu);
- actionBar.setTitle(R.string.select_album);
+ mActionBar.setTitle(R.string.select_album);
} else {
mShowClusterMenu = !inAlbum;
inflater.inflate(R.menu.albumset, menu);
@@ -426,7 +422,7 @@ public class AlbumSetPage extends ActivityState implements
if (selectItem != null) {
boolean selectAlbums = !inAlbum &&
- actionBar.getClusterTypeAction() == FilterUtils.CLUSTER_BY_ALBUM;
+ mActionBar.getClusterTypeAction() == FilterUtils.CLUSTER_BY_ALBUM;
if (selectAlbums) {
selectItem.setTitle(R.string.select_album);
} else {
@@ -434,14 +430,14 @@ public class AlbumSetPage extends ActivityState implements
}
}
- FilterUtils.setupMenuItems(actionBar, mMediaSet.getPath(), false);
+ FilterUtils.setupMenuItems(mActionBar, mMediaSet.getPath(), false);
MenuItem switchCamera = menu.findItem(R.id.action_camera);
if (switchCamera != null) {
switchCamera.setVisible(GalleryUtils.isCameraAvailable(activity));
}
- actionBar.setTitle(mTitle);
- actionBar.setSubtitle(mSubtitle);
+ mActionBar.setTitle(mTitle);
+ mActionBar.setSubtitle(mSubtitle);
}
return true;
}
@@ -525,9 +521,8 @@ public class AlbumSetPage extends ActivityState implements
}
private String getSelectedString() {
- GalleryActionBar actionBar = mActivity.getGalleryActionBar();
int count = mSelectionManager.getSelectedCount();
- int action = actionBar.getClusterTypeAction();
+ int action = mActionBar.getClusterTypeAction();
int string = action == FilterUtils.CLUSTER_BY_ALBUM
? R.plurals.number_of_albums_selected
: R.plurals.number_of_groups_selected;
@@ -539,7 +534,7 @@ public class AlbumSetPage extends ActivityState implements
switch (mode) {
case SelectionManager.ENTER_SELECTION_MODE: {
- mActivity.getGalleryActionBar().disableClusterMenu(true);
+ mActionBar.disableClusterMenu(true);
mActionMode = mActionModeHandler.startActionMode();
mVibrator.vibrate(100);
break;
@@ -547,7 +542,7 @@ public class AlbumSetPage extends ActivityState implements
case SelectionManager.LEAVE_SELECTION_MODE: {
mActionMode.finish();
if (mShowClusterMenu) {
- mActivity.getGalleryActionBar().enableClusterMenu(mSelectedAction, this);
+ mActionBar.enableClusterMenu(mSelectedAction, this);
}
mRootPane.invalidate();
break;
diff --git a/src/com/android/gallery3d/app/Gallery.java b/src/com/android/gallery3d/app/Gallery.java
index cd93c45ee..e3937bcd0 100644
--- a/src/com/android/gallery3d/app/Gallery.java
+++ b/src/com/android/gallery3d/app/Gallery.java
@@ -52,7 +52,6 @@ public final class Gallery extends AbstractGalleryActivity implements OnCancelLi
public static final String KEY_MEDIA_TYPES = "mediaTypes";
private static final String TAG = "Gallery";
- private GalleryActionBar mActionBar;
private Dialog mVersionCheckDialog;
@Override
@@ -63,7 +62,6 @@ public final class Gallery extends AbstractGalleryActivity implements OnCancelLi
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.main);
- mActionBar = new GalleryActionBar(this);
if (savedInstanceState != null) {
getStateManager().restoreFromState(savedInstanceState);
@@ -276,11 +274,6 @@ public final class Gallery extends AbstractGalleryActivity implements OnCancelLi
}
@Override
- public GalleryActionBar getGalleryActionBar() {
- return mActionBar;
- }
-
- @Override
public void onCancel(DialogInterface dialog) {
if (dialog == mVersionCheckDialog) {
mVersionCheckDialog = null;
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) {
diff --git a/src/com/android/gallery3d/app/ManageCachePage.java b/src/com/android/gallery3d/app/ManageCachePage.java
index 4134e3273..124eb7bf0 100644
--- a/src/com/android/gallery3d/app/ManageCachePage.java
+++ b/src/com/android/gallery3d/app/ManageCachePage.java
@@ -112,7 +112,7 @@ public class ManageCachePage extends ActivityState implements
mEyePosition.resetPosition();
Activity activity = (Activity) mActivity;
- int slotViewTop = GalleryActionBar.getHeight(activity);
+ int slotViewTop = mActivity.getGalleryActionBar().getHeight();
int slotViewBottom = bottom - top;
View footer = activity.findViewById(R.id.footer);
diff --git a/src/com/android/gallery3d/app/PhotoPage.java b/src/com/android/gallery3d/app/PhotoPage.java
index 8040a2fc6..502530a42 100644
--- a/src/com/android/gallery3d/app/PhotoPage.java
+++ b/src/com/android/gallery3d/app/PhotoPage.java
@@ -16,7 +16,6 @@
package com.android.gallery3d.app;
-import android.app.ActionBar;
import android.app.ActionBar.OnMenuVisibilityListener;
import android.app.Activity;
import android.content.ActivityNotFoundException;
@@ -97,7 +96,7 @@ public class PhotoPage extends ActivityState
private int mCurrentIndex = 0;
private Handler mHandler;
private boolean mShowBars = true;
- private ActionBar mActionBar;
+ private GalleryActionBar mActionBar;
private MyMenuVisibilityListener mMenuVisibilityListener;
private boolean mIsMenuVisible;
private boolean mIsInteracting;
@@ -145,8 +144,7 @@ public class PhotoPage extends ActivityState
right - left, bottom - top);
}
if (mShowDetails) {
- mDetailsHelper.layout(left, GalleryActionBar.getHeight((Activity) mActivity),
- right, bottom);
+ mDetailsHelper.layout(left, mActionBar.getHeight(), right, bottom);
}
}
};
@@ -169,7 +167,7 @@ public class PhotoPage extends ActivityState
@Override
public void onCreate(Bundle data, Bundle restoreState) {
- mActionBar = ((Activity) mActivity).getActionBar();
+ mActionBar = mActivity.getGalleryActionBar();
mSelectionManager = new SelectionManager(mActivity, false);
mMenuExecutor = new MenuExecutor(mActivity, mSelectionManager);
@@ -630,8 +628,7 @@ public class PhotoPage extends ActivityState
if (mMenuVisibilityListener == null) {
mMenuVisibilityListener = new MyMenuVisibilityListener();
}
- mActivity.getGalleryActionBar().setDisplayOptions(mSetPathString != null, true);
-
+ mActionBar.setDisplayOptions(mSetPathString != null, true);
mActionBar.addOnMenuVisibilityListener(mMenuVisibilityListener);
onUserInteraction();
}
diff --git a/src/com/android/gallery3d/app/PickerActivity.java b/src/com/android/gallery3d/app/PickerActivity.java
index 855a0cee7..d63e23733 100644
--- a/src/com/android/gallery3d/app/PickerActivity.java
+++ b/src/com/android/gallery3d/app/PickerActivity.java
@@ -33,8 +33,6 @@ public class PickerActivity extends AbstractGalleryActivity
public static final String KEY_ALBUM_PATH = "album-path";
- private GalleryActionBar mActionBar;
-
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -46,7 +44,6 @@ public class PickerActivity extends AbstractGalleryActivity
if (!isDialog) {
requestWindowFeature(Window.FEATURE_ACTION_BAR);
requestWindowFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
- mActionBar = new GalleryActionBar(this);
}
setContentView(R.layout.dialog_picker);
@@ -96,9 +93,4 @@ public class PickerActivity extends AbstractGalleryActivity
public void onClick(View v) {
if (v.getId() == R.id.cancel) finish();
}
-
- @Override
- public GalleryActionBar getGalleryActionBar() {
- return mActionBar;
- }
}