diff options
Diffstat (limited to 'src/com/android/gallery3d/ui')
16 files changed, 120 insertions, 126 deletions
diff --git a/src/com/android/gallery3d/ui/ActionModeHandler.java b/src/com/android/gallery3d/ui/ActionModeHandler.java index 7deee5bc8..379f79c76 100644 --- a/src/com/android/gallery3d/ui/ActionModeHandler.java +++ b/src/com/android/gallery3d/ui/ActionModeHandler.java @@ -17,23 +17,23 @@ package com.android.gallery3d.ui; import android.annotation.TargetApi; -import android.app.Activity; -import android.content.Context; import android.content.Intent; import android.net.Uri; import android.nfc.NfcAdapter; import android.os.Handler; import android.view.LayoutInflater; -import android.view.Menu; -import android.view.MenuItem; import android.view.View; import android.widget.Button; +import com.actionbarsherlock.app.SherlockActivity; +import com.actionbarsherlock.view.ActionMode; +import com.actionbarsherlock.view.ActionMode.Callback; +import com.actionbarsherlock.view.Menu; +import com.actionbarsherlock.view.MenuItem; +import com.actionbarsherlock.widget.ShareActionProvider; +import com.actionbarsherlock.widget.ShareActionProvider.OnShareTargetSelectedListener; import com.android.gallery3d.R; -import com.android.gallery3d.actionbar.ActionBarUtils; -import com.android.gallery3d.actionbar.ActionModeInterface; -import com.android.gallery3d.actionbar.ActionModeInterface.OnShareTargetSelectedListener; -import com.android.gallery3d.app.GalleryActivity; +import com.android.gallery3d.app.AbstractGalleryActivity; import com.android.gallery3d.common.ApiHelper; import com.android.gallery3d.common.Utils; import com.android.gallery3d.data.DataManager; @@ -47,8 +47,7 @@ import com.android.gallery3d.util.ThreadPool.JobContext; import java.util.ArrayList; -public class ActionModeHandler implements - ActionModeInterface.Callback, PopupList.OnPopupItemClickListener { +public class ActionModeHandler implements Callback, PopupList.OnPopupItemClickListener { @SuppressWarnings("unused") private static final String TAG = "ActionModeHandler"; @@ -61,19 +60,20 @@ public class ActionModeHandler implements public boolean onActionItemClicked(MenuItem item); } - private final GalleryActivity mActivity; + private final AbstractGalleryActivity mActivity; private final MenuExecutor mMenuExecutor; private final SelectionManager mSelectionManager; private final NfcAdapter mNfcAdapter; private Menu mMenu; + private MenuItem mShareMenuItem; private SelectionMenu mSelectionMenu; private ActionModeListener mListener; private Future<?> mMenuTask; private final Handler mMainHandler; - private ActionModeInterface mActionMode; + private ActionMode mActionMode; public ActionModeHandler( - GalleryActivity activity, SelectionManager selectionManager) { + AbstractGalleryActivity activity, SelectionManager selectionManager) { mActivity = Utils.checkNotNull(activity); mSelectionManager = Utils.checkNotNull(selectionManager); mMenuExecutor = new MenuExecutor(activity, selectionManager); @@ -82,8 +82,8 @@ public class ActionModeHandler implements } public void startActionMode() { - Activity a = (Activity) mActivity; - mActionMode = ActionBarUtils.startActionMode(a, this); + SherlockActivity a = mActivity; + mActionMode = a.startActionMode(this); View customView = LayoutInflater.from(a).inflate( R.layout.action_mode, null); mActionMode.setCustomView(customView); @@ -105,7 +105,7 @@ public class ActionModeHandler implements } @Override - public boolean onActionItemClicked(ActionModeInterface mode, MenuItem item) { + public boolean onActionItemClicked(ActionMode mode, MenuItem item) { GLRoot root = mActivity.getGLRoot(); root.lockRenderThread(); try { @@ -164,24 +164,35 @@ public class ActionModeHandler implements mSelectionMenu.updateSelectAllMode(mSelectionManager.inSelectAllMode()); } + private final OnShareTargetSelectedListener mShareTargetSelectedListener = + new OnShareTargetSelectedListener() { + @Override + public boolean onShareTargetSelected(ShareActionProvider source, Intent intent) { + mSelectionManager.leaveSelectionMode(); + return false; + } + }; + @Override - public boolean onCreateActionMode(ActionModeInterface mode, Menu menu) { - mode.inflateMenu(R.menu.operation); + public boolean onPrepareActionMode(ActionMode mode, Menu menu) { + return false; + } + + @Override + public boolean onCreateActionMode(ActionMode mode, Menu menu) { + mode.getMenuInflater().inflate(R.menu.operation, menu); - OnShareTargetSelectedListener listener = new OnShareTargetSelectedListener() { - @Override - public boolean onShareTargetSelected(Intent intent) { - mSelectionManager.leaveSelectionMode(); - return false; - } - }; - mode.setOnShareTargetSelectedListener(listener); mMenu = menu; + mShareMenuItem = menu.findItem(R.id.action_share); + if (mShareMenuItem != null) { + ((ShareActionProvider) mShareMenuItem.getActionProvider()) + .setOnShareTargetSelectedListener(mShareTargetSelectedListener); + } return true; } @Override - public void onDestroyActionMode(ActionModeInterface mode) { + public void onDestroyActionMode(ActionMode mode) { mSelectionManager.leaveSelectionMode(); } @@ -209,7 +220,7 @@ public class ActionModeHandler implements switch (unexpandedPaths.size()) { case 1: final String mimeType = MenuExecutor.getMimeType(type); - if (!GalleryUtils.isEditorAvailable((Context) mActivity, mimeType)) { + if (!GalleryUtils.isEditorAvailable(mActivity, mimeType)) { operation &= ~MediaObject.SUPPORT_EDIT; } break; @@ -223,7 +234,7 @@ public class ActionModeHandler implements @TargetApi(ApiHelper.VERSION_CODES.JELLY_BEAN) private void setNfcBeamPushUris(Uri[] uris) { if (mNfcAdapter != null && ApiHelper.HAS_SET_BEAM_PUSH_URIS) { - mNfcAdapter.setBeamPushUris(uris, (Activity)mActivity); + mNfcAdapter.setBeamPushUris(uris, mActivity); } } @@ -275,15 +286,12 @@ public class ActionModeHandler implements public void updateSupportedOperation() { // Interrupt previous unfinished task, mMenuTask is only accessed in main thread - if (mMenuTask != null) { - mMenuTask.cancel(); - } + if (mMenuTask != null) mMenuTask.cancel(); updateSelectionMenu(); // Disable share action until share intent is in good shape - final boolean hasShareButton = mActionMode.hasShareButton(); - if (hasShareButton) mActionMode.setShareIntent(null); + if (mShareMenuItem != null) mShareMenuItem.setEnabled(false); // Generate sharing intent and update supported operations in the background // The task can take a long time and be canceled in the mean time. @@ -294,17 +302,17 @@ public class ActionModeHandler implements final int operation = computeMenuOptions(jc); // Pass2: Deal with expanded media object list for sharing operation. - final Intent intent = hasShareButton ? computeSharingIntent(jc) : null; + final Intent intent = (mShareMenuItem != null) ? computeSharingIntent(jc) : null; mMainHandler.post(new Runnable() { @Override public void run() { mMenuTask = null; - if (!jc.isCancelled()) { - MenuExecutor.updateMenuOperation(mActionMode, operation); - if (hasShareButton) { - mActionMode.setShareIntent(intent); - mMenuExecutor.setShareIntent(intent); - } + if (jc.isCancelled()) return; + MenuExecutor.updateMenuOperation(mMenu, operation); + if (mShareMenuItem != null) { + mShareMenuItem.setEnabled(true); + ((ShareActionProvider) mShareMenuItem.getActionProvider()) + .setShareIntent(intent); } } }); diff --git a/src/com/android/gallery3d/ui/AlbumSetSlidingWindow.java b/src/com/android/gallery3d/ui/AlbumSetSlidingWindow.java index 449c6f9d3..e32ec5160 100644 --- a/src/com/android/gallery3d/ui/AlbumSetSlidingWindow.java +++ b/src/com/android/gallery3d/ui/AlbumSetSlidingWindow.java @@ -20,8 +20,8 @@ import android.graphics.Bitmap; import android.os.Message; import com.android.gallery3d.R; +import com.android.gallery3d.app.AbstractGalleryActivity; import com.android.gallery3d.app.AlbumSetDataLoader; -import com.android.gallery3d.app.GalleryActivity; import com.android.gallery3d.common.Utils; import com.android.gallery3d.data.BitmapPool; import com.android.gallery3d.data.DataSourceType; @@ -89,7 +89,7 @@ public class AlbumSetSlidingWindow implements AlbumSetDataLoader.DataListener { private BitmapLoader coverLoader; } - public AlbumSetSlidingWindow(GalleryActivity activity, + public AlbumSetSlidingWindow(AbstractGalleryActivity activity, AlbumSetDataLoader source, AlbumSetSlotRenderer.LabelSpec labelSpec, int cacheSize) { source.setModelListener(this); mSource = source; diff --git a/src/com/android/gallery3d/ui/AlbumSetSlotRenderer.java b/src/com/android/gallery3d/ui/AlbumSetSlotRenderer.java index bdc0e676e..a1f2b4c4f 100644 --- a/src/com/android/gallery3d/ui/AlbumSetSlotRenderer.java +++ b/src/com/android/gallery3d/ui/AlbumSetSlotRenderer.java @@ -16,10 +16,8 @@ package com.android.gallery3d.ui; -import android.content.Context; - +import com.android.gallery3d.app.AbstractGalleryActivity; import com.android.gallery3d.app.AlbumSetDataLoader; -import com.android.gallery3d.app.GalleryActivity; import com.android.gallery3d.data.MediaObject; import com.android.gallery3d.data.Path; import com.android.gallery3d.ui.AlbumSetSlidingWindow.AlbumSetEntry; @@ -31,7 +29,7 @@ public class AlbumSetSlotRenderer extends AbstractSlotRenderer { private final int mPlaceholderColor; private final ColorTexture mWaitLoadingTexture; - private final GalleryActivity mActivity; + private final AbstractGalleryActivity mActivity; private final SelectionManager mSelectionManager; protected final LabelSpec mLabelSpec; @@ -58,9 +56,10 @@ public class AlbumSetSlotRenderer extends AbstractSlotRenderer { public int borderSize; } - public AlbumSetSlotRenderer(GalleryActivity activity, SelectionManager selectionManager, + public AlbumSetSlotRenderer(AbstractGalleryActivity activity, + SelectionManager selectionManager, SlotView slotView, LabelSpec labelSpec, int placeholderColor) { - super ((Context) activity); + super (activity); mActivity = activity; mSelectionManager = selectionManager; mSlotView = slotView; diff --git a/src/com/android/gallery3d/ui/AlbumSlidingWindow.java b/src/com/android/gallery3d/ui/AlbumSlidingWindow.java index d5d90a9ea..e4d636a7a 100644 --- a/src/com/android/gallery3d/ui/AlbumSlidingWindow.java +++ b/src/com/android/gallery3d/ui/AlbumSlidingWindow.java @@ -19,8 +19,8 @@ package com.android.gallery3d.ui; import android.graphics.Bitmap; import android.os.Message; +import com.android.gallery3d.app.AbstractGalleryActivity; import com.android.gallery3d.app.AlbumDataLoader; -import com.android.gallery3d.app.GalleryActivity; import com.android.gallery3d.common.Utils; import com.android.gallery3d.data.BitmapPool; import com.android.gallery3d.data.MediaItem; @@ -73,7 +73,7 @@ public class AlbumSlidingWindow implements AlbumDataLoader.DataListener { private int mActiveRequestCount = 0; private boolean mIsActive = false; - public AlbumSlidingWindow(GalleryActivity activity, + public AlbumSlidingWindow(AbstractGalleryActivity activity, AlbumDataLoader source, int cacheSize) { source.setDataListener(this); mSource = source; diff --git a/src/com/android/gallery3d/ui/AlbumSlotRenderer.java b/src/com/android/gallery3d/ui/AlbumSlotRenderer.java index f6df3b380..d9e3fb7ae 100644 --- a/src/com/android/gallery3d/ui/AlbumSlotRenderer.java +++ b/src/com/android/gallery3d/ui/AlbumSlotRenderer.java @@ -16,10 +16,8 @@ package com.android.gallery3d.ui; -import android.content.Context; - +import com.android.gallery3d.app.AbstractGalleryActivity; import com.android.gallery3d.app.AlbumDataLoader; -import com.android.gallery3d.app.GalleryActivity; import com.android.gallery3d.data.MediaObject; import com.android.gallery3d.data.Path; @@ -35,7 +33,7 @@ public class AlbumSlotRenderer extends AbstractSlotRenderer { private static final int CACHE_SIZE = 96; private AlbumSlidingWindow mDataWindow; - private final GalleryActivity mActivity; + private final AbstractGalleryActivity mActivity; private final ColorTexture mWaitLoadingTexture; private final SlotView mSlotView; private final SelectionManager mSelectionManager; @@ -47,9 +45,9 @@ public class AlbumSlotRenderer extends AbstractSlotRenderer { private SlotFilter mSlotFilter; - public AlbumSlotRenderer(GalleryActivity activity, SlotView slotView, + public AlbumSlotRenderer(AbstractGalleryActivity activity, SlotView slotView, SelectionManager selectionManager, int placeholderColor) { - super((Context) activity); + super(activity); mActivity = activity; mSlotView = slotView; mSelectionManager = selectionManager; diff --git a/src/com/android/gallery3d/ui/CacheStorageUsageInfo.java b/src/com/android/gallery3d/ui/CacheStorageUsageInfo.java index 611648a29..46f7a2433 100644 --- a/src/com/android/gallery3d/ui/CacheStorageUsageInfo.java +++ b/src/com/android/gallery3d/ui/CacheStorageUsageInfo.java @@ -19,7 +19,7 @@ package com.android.gallery3d.ui; import android.content.Context; import android.os.StatFs; -import com.android.gallery3d.app.GalleryActivity; +import com.android.gallery3d.app.AbstractGalleryActivity; import com.android.gallery3d.util.ThreadPool.JobContext; import java.io.File; @@ -40,11 +40,11 @@ public class CacheStorageUsageInfo { // number of bytes used for the cache if all pending downloads (and removals) are completed. private long mTargetCacheBytes; - private GalleryActivity mActivity; + private AbstractGalleryActivity mActivity; private Context mContext; private long mUserChangeDelta; - public CacheStorageUsageInfo(GalleryActivity activity) { + public CacheStorageUsageInfo(AbstractGalleryActivity activity) { mActivity = activity; mContext = activity.getAndroidContext(); } diff --git a/src/com/android/gallery3d/ui/CropView.java b/src/com/android/gallery3d/ui/CropView.java index 8c2c3df2a..1890c7630 100644 --- a/src/com/android/gallery3d/ui/CropView.java +++ b/src/com/android/gallery3d/ui/CropView.java @@ -33,7 +33,7 @@ import android.widget.Toast; import com.android.gallery3d.R; import com.android.gallery3d.anim.Animation; -import com.android.gallery3d.app.GalleryActivity; +import com.android.gallery3d.app.AbstractGalleryActivity; import com.android.gallery3d.common.Utils; import java.util.ArrayList; @@ -92,14 +92,14 @@ public class CropView extends GLView { private int mImageWidth = SIZE_UNKNOWN; private int mImageHeight = SIZE_UNKNOWN; - private GalleryActivity mActivity; + private AbstractGalleryActivity mActivity; private GLPaint mPaint = new GLPaint(); private GLPaint mFacePaint = new GLPaint(); private int mImageRotation; - public CropView(GalleryActivity activity) { + public CropView(AbstractGalleryActivity activity) { mActivity = activity; mImageView = new TileImageView(activity); mFaceDetectionView = new FaceHighlightView(); diff --git a/src/com/android/gallery3d/ui/DetailsAddressResolver.java b/src/com/android/gallery3d/ui/DetailsAddressResolver.java index 3dd20a5e0..8de667745 100644 --- a/src/com/android/gallery3d/ui/DetailsAddressResolver.java +++ b/src/com/android/gallery3d/ui/DetailsAddressResolver.java @@ -21,7 +21,7 @@ import android.location.Address; import android.os.Handler; import android.os.Looper; -import com.android.gallery3d.app.GalleryActivity; +import com.android.gallery3d.app.AbstractGalleryActivity; import com.android.gallery3d.data.MediaDetails; import com.android.gallery3d.util.Future; import com.android.gallery3d.util.FutureListener; @@ -32,7 +32,7 @@ import com.android.gallery3d.util.ThreadPool.JobContext; public class DetailsAddressResolver { private AddressResolvingListener mListener; - private final GalleryActivity mContext; + private final AbstractGalleryActivity mContext; private Future<Address> mAddressLookupJob; private final Handler mHandler; @@ -54,7 +54,7 @@ public class DetailsAddressResolver { public void onAddressAvailable(String address); } - public DetailsAddressResolver(GalleryActivity context) { + public DetailsAddressResolver(AbstractGalleryActivity context) { mContext = context; mHandler = new Handler(Looper.getMainLooper()); } diff --git a/src/com/android/gallery3d/ui/DetailsHelper.java b/src/com/android/gallery3d/ui/DetailsHelper.java index f86ffbe05..301601156 100644 --- a/src/com/android/gallery3d/ui/DetailsHelper.java +++ b/src/com/android/gallery3d/ui/DetailsHelper.java @@ -19,7 +19,7 @@ import android.content.Context; import android.view.View.MeasureSpec; import com.android.gallery3d.R; -import com.android.gallery3d.app.GalleryActivity; +import com.android.gallery3d.app.AbstractGalleryActivity; import com.android.gallery3d.data.MediaDetails; import com.android.gallery3d.ui.DetailsAddressResolver.AddressResolvingListener; @@ -44,7 +44,7 @@ public class DetailsHelper { public void hide(); } - public DetailsHelper(GalleryActivity activity, GLView rootPane, DetailsSource source) { + public DetailsHelper(AbstractGalleryActivity activity, GLView rootPane, DetailsSource source) { mContainer = new DialogDetailsView(activity, source); } @@ -65,7 +65,7 @@ public class DetailsHelper { mContainer.setCloseListener(listener); } - public static String resolveAddress(GalleryActivity activity, double[] latlng, + public static String resolveAddress(AbstractGalleryActivity activity, double[] latlng, AddressResolvingListener listener) { if (sAddressResolver == null) { sAddressResolver = new DetailsAddressResolver(activity); diff --git a/src/com/android/gallery3d/ui/DialogDetailsView.java b/src/com/android/gallery3d/ui/DialogDetailsView.java index a55660035..fb6ccf5ae 100644 --- a/src/com/android/gallery3d/ui/DialogDetailsView.java +++ b/src/com/android/gallery3d/ui/DialogDetailsView.java @@ -16,7 +16,6 @@ package com.android.gallery3d.ui; -import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; @@ -31,7 +30,7 @@ import android.widget.ListView; import android.widget.TextView; import com.android.gallery3d.R; -import com.android.gallery3d.app.GalleryActivity; +import com.android.gallery3d.app.AbstractGalleryActivity; import com.android.gallery3d.common.Utils; import com.android.gallery3d.data.MediaDetails; import com.android.gallery3d.ui.DetailsAddressResolver.AddressResolvingListener; @@ -46,7 +45,7 @@ public class DialogDetailsView implements DetailsViewContainer { @SuppressWarnings("unused") private static final String TAG = "DialogDetailsView"; - private final GalleryActivity mContext; + private final AbstractGalleryActivity mActivity; private DetailsAdapter mAdapter; private MediaDetails mDetails; private final DetailsSource mSource; @@ -54,8 +53,8 @@ public class DialogDetailsView implements DetailsViewContainer { private Dialog mDialog; private CloseListener mListener; - public DialogDetailsView(GalleryActivity activity, DetailsSource source) { - mContext = activity; + public DialogDetailsView(AbstractGalleryActivity activity, DetailsSource source) { + mActivity = activity; mSource = source; } @@ -86,12 +85,12 @@ public class DialogDetailsView implements DetailsViewContainer { private void setDetails(MediaDetails details) { mAdapter = new DetailsAdapter(details); String title = String.format( - mContext.getAndroidContext().getString(R.string.details_title), + mActivity.getAndroidContext().getString(R.string.details_title), mIndex + 1, mSource.size()); - ListView detailsList = (ListView) LayoutInflater.from(mContext.getAndroidContext()).inflate( + ListView detailsList = (ListView) LayoutInflater.from(mActivity.getAndroidContext()).inflate( R.layout.details_list, null, false); detailsList.setAdapter(mAdapter); - mDialog = new AlertDialog.Builder((Activity) mContext) + mDialog = new AlertDialog.Builder(mActivity) .setView(detailsList) .setTitle(title) .setPositiveButton(R.string.close, new DialogInterface.OnClickListener() { @@ -117,7 +116,7 @@ public class DialogDetailsView implements DetailsViewContainer { private int mLocationIndex; public DetailsAdapter(MediaDetails details) { - Context context = mContext.getAndroidContext(); + Context context = mActivity.getAndroidContext(); mItems = new ArrayList<String>(details.size()); mLocationIndex = -1; setDetails(context, details); @@ -130,7 +129,7 @@ public class DialogDetailsView implements DetailsViewContainer { case MediaDetails.INDEX_LOCATION: { double[] latlng = (double[]) detail.getValue(); mLocationIndex = mItems.size(); - value = DetailsHelper.resolveAddress(mContext, latlng, this); + value = DetailsHelper.resolveAddress(mActivity, latlng, this); break; } case MediaDetails.INDEX_SIZE: { @@ -222,7 +221,7 @@ public class DialogDetailsView implements DetailsViewContainer { public View getView(int position, View convertView, ViewGroup parent) { TextView tv; if (convertView == null) { - tv = (TextView) LayoutInflater.from(mContext.getAndroidContext()).inflate( + tv = (TextView) LayoutInflater.from(mActivity.getAndroidContext()).inflate( R.layout.details, parent, false); } else { tv = (TextView) convertView; diff --git a/src/com/android/gallery3d/ui/ImportCompleteListener.java b/src/com/android/gallery3d/ui/ImportCompleteListener.java index 5b6e0a17f..30af47065 100644 --- a/src/com/android/gallery3d/ui/ImportCompleteListener.java +++ b/src/com/android/gallery3d/ui/ImportCompleteListener.java @@ -23,15 +23,15 @@ import android.os.PowerManager; import android.widget.Toast; import com.android.gallery3d.R; +import com.android.gallery3d.app.AbstractGalleryActivity; import com.android.gallery3d.app.AlbumPage; -import com.android.gallery3d.app.GalleryActivity; import com.android.gallery3d.util.MediaSetUtils; public class ImportCompleteListener implements MenuExecutor.ProgressListener { - private GalleryActivity mActivity; + private AbstractGalleryActivity mActivity; private PowerManager.WakeLock mWakeLock; - public ImportCompleteListener(GalleryActivity galleryActivity) { + public ImportCompleteListener(AbstractGalleryActivity galleryActivity) { mActivity = galleryActivity; PowerManager pm = (PowerManager) ((Activity) mActivity).getSystemService(Context.POWER_SERVICE); diff --git a/src/com/android/gallery3d/ui/ManageCacheDrawer.java b/src/com/android/gallery3d/ui/ManageCacheDrawer.java index 91dc7ac44..e989af27d 100644 --- a/src/com/android/gallery3d/ui/ManageCacheDrawer.java +++ b/src/com/android/gallery3d/ui/ManageCacheDrawer.java @@ -19,7 +19,7 @@ package com.android.gallery3d.ui; import android.content.Context; import com.android.gallery3d.R; -import com.android.gallery3d.app.GalleryActivity; +import com.android.gallery3d.app.AbstractGalleryActivity; import com.android.gallery3d.data.DataSourceType; import com.android.gallery3d.data.MediaSet; import com.android.gallery3d.data.Path; @@ -36,11 +36,11 @@ public class ManageCacheDrawer extends AlbumSetSlotRenderer { private final int mCachePinSize; private final int mCachePinMargin; - public ManageCacheDrawer(GalleryActivity activity, SelectionManager selectionManager, + public ManageCacheDrawer(AbstractGalleryActivity activity, SelectionManager selectionManager, SlotView slotView, LabelSpec labelSpec, int cachePinSize, int cachePinMargin) { super(activity, selectionManager, slotView, labelSpec, activity.getResources().getColor(R.color.cache_placeholder)); - Context context = (Context) activity; + Context context = activity; mCheckedItem = new ResourceTexture( context, R.drawable.btn_make_offline_normal_on_holo_dark); mUnCheckedItem = new ResourceTexture( diff --git a/src/com/android/gallery3d/ui/MenuExecutor.java b/src/com/android/gallery3d/ui/MenuExecutor.java index ff6a61f7a..7bccda84c 100644 --- a/src/com/android/gallery3d/ui/MenuExecutor.java +++ b/src/com/android/gallery3d/ui/MenuExecutor.java @@ -26,13 +26,12 @@ import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.os.Handler; import android.os.Message; -import android.view.MenuItem; +import com.actionbarsherlock.view.Menu; +import com.actionbarsherlock.view.MenuItem; import com.android.gallery3d.R; -import com.android.gallery3d.actionbar.MenuHolder; +import com.android.gallery3d.app.AbstractGalleryActivity; import com.android.gallery3d.app.CropImage; -import com.android.gallery3d.app.GalleryActivity; -import com.android.gallery3d.common.ApiHelper; import com.android.gallery3d.common.Utils; import com.android.gallery3d.data.DataManager; import com.android.gallery3d.data.MediaItem; @@ -64,7 +63,7 @@ public class MenuExecutor { private boolean mWaitOnStop; private Intent mShareIntent; - private final GalleryActivity mActivity; + private final AbstractGalleryActivity mActivity; private final SelectionManager mSelectionManager; private final Handler mHandler; @@ -90,7 +89,7 @@ public class MenuExecutor { } public MenuExecutor( - GalleryActivity activity, SelectionManager selectionManager) { + AbstractGalleryActivity activity, SelectionManager selectionManager) { mActivity = Utils.checkNotNull(activity); mSelectionManager = Utils.checkNotNull(selectionManager); mHandler = new SynchronizedHandler(mActivity.getGLRoot()) { @@ -157,7 +156,7 @@ public class MenuExecutor { mHandler.sendMessage(mHandler.obtainMessage(MSG_TASK_COMPLETE, result, 0, listener)); } - public static void updateMenuOperation(MenuHolder menu, int supported) { + public static void updateMenuOperation(Menu menu, int supported) { boolean supportDelete = (supported & MediaObject.SUPPORT_DELETE) != 0; boolean supportRotate = (supported & MediaObject.SUPPORT_ROTATE) != 0; boolean supportCrop = (supported & MediaObject.SUPPORT_CROP) != 0; @@ -169,16 +168,21 @@ public class MenuExecutor { boolean supportInfo = (supported & MediaObject.SUPPORT_INFO) != 0; boolean supportImport = (supported & MediaObject.SUPPORT_IMPORT) != 0; - menu.setMenuItemVisible(R.id.action_delete, supportDelete); - menu.setMenuItemVisible(R.id.action_rotate_ccw, supportRotate); - menu.setMenuItemVisible(R.id.action_rotate_cw, supportRotate); - menu.setMenuItemVisible(R.id.action_crop, supportCrop); - menu.setMenuItemVisible(R.id.action_share, supportShare); - menu.setMenuItemVisible(R.id.action_setas, supportSetAs); - menu.setMenuItemVisible(R.id.action_show_on_map, supportShowOnMap); - menu.setMenuItemVisible(R.id.action_edit, supportEdit); - menu.setMenuItemVisible(R.id.action_details, supportInfo); - menu.setMenuItemVisible(R.id.action_import, supportImport); + setMenuItemVisible(menu, R.id.action_delete, supportDelete); + setMenuItemVisible(menu, R.id.action_rotate_ccw, supportRotate); + setMenuItemVisible(menu, R.id.action_rotate_cw, supportRotate); + setMenuItemVisible(menu, R.id.action_crop, supportCrop); + setMenuItemVisible(menu, R.id.action_share, supportShare); + setMenuItemVisible(menu, R.id.action_setas, supportSetAs); + setMenuItemVisible(menu, R.id.action_show_on_map, supportShowOnMap); + setMenuItemVisible(menu, R.id.action_edit, supportEdit); + setMenuItemVisible(menu, R.id.action_details, supportInfo); + setMenuItemVisible(menu, R.id.action_import, supportImport); + } + + private static void setMenuItemVisible(Menu menu, int itemId, boolean visible) { + MenuItem item = menu.findItem(itemId); + if (item != null) item.setVisible(visible); } private Path getSingleSelectedPath() { @@ -244,14 +248,6 @@ public class MenuExecutor { case R.id.action_import: title = R.string.Import; break; - case R.id.action_share: { - if (!ApiHelper.HAS_SHARE_ACTION_PROVIDER) { - Activity activity = (Activity) mActivity; - activity.startActivity(Intent.createChooser( - mShareIntent, activity.getString(R.string.share))); - } - return; - } default: return; } @@ -326,10 +322,6 @@ public class MenuExecutor { mWaitOnStop = waitOnStop; } - public void setShareIntent(Intent intent) { - mShareIntent = intent; - } - public static String getMimeType(int type) { switch (type) { case MediaObject.MEDIA_TYPE_IMAGE : diff --git a/src/com/android/gallery3d/ui/PhotoView.java b/src/com/android/gallery3d/ui/PhotoView.java index 16d93ca20..25d3154a9 100644 --- a/src/com/android/gallery3d/ui/PhotoView.java +++ b/src/com/android/gallery3d/ui/PhotoView.java @@ -28,7 +28,7 @@ import android.view.View.MeasureSpec; import android.view.animation.AccelerateInterpolator; import com.android.gallery3d.R; -import com.android.gallery3d.app.GalleryActivity; +import com.android.gallery3d.app.AbstractGalleryActivity; import com.android.gallery3d.common.Utils; import com.android.gallery3d.data.MediaItem; import com.android.gallery3d.data.MediaObject; @@ -232,7 +232,7 @@ public class PhotoView extends GLView { // item. The value Integer.MAX_VALUE means there is no such hint. private int mUndoIndexHint = Integer.MAX_VALUE; - public PhotoView(GalleryActivity activity) { + public PhotoView(AbstractGalleryActivity activity) { mTileView = new TileImageView(activity); addComponent(mTileView); Context context = activity.getAndroidContext(); diff --git a/src/com/android/gallery3d/ui/SelectionManager.java b/src/com/android/gallery3d/ui/SelectionManager.java index 86e92da90..a6be0dd9f 100644 --- a/src/com/android/gallery3d/ui/SelectionManager.java +++ b/src/com/android/gallery3d/ui/SelectionManager.java @@ -16,7 +16,7 @@ package com.android.gallery3d.ui; -import com.android.gallery3d.app.GalleryContext; +import com.android.gallery3d.app.AbstractGalleryActivity; import com.android.gallery3d.data.DataManager; import com.android.gallery3d.data.MediaItem; import com.android.gallery3d.data.MediaSet; @@ -49,8 +49,8 @@ public class SelectionManager { public void onSelectionChange(Path path, boolean selected); } - public SelectionManager(GalleryContext galleryContext, boolean isAlbumSet) { - mDataManager = galleryContext.getDataManager(); + public SelectionManager(AbstractGalleryActivity activity, boolean isAlbumSet) { + mDataManager = activity.getDataManager(); mClickedSet = new HashSet<Path>(); mIsAlbumSet = isAlbumSet; mTotal = -1; diff --git a/src/com/android/gallery3d/ui/SlotView.java b/src/com/android/gallery3d/ui/SlotView.java index 1325aecd6..d77080adb 100644 --- a/src/com/android/gallery3d/ui/SlotView.java +++ b/src/com/android/gallery3d/ui/SlotView.java @@ -16,7 +16,6 @@ package com.android.gallery3d.ui; -import android.content.Context; import android.graphics.Rect; import android.os.Handler; import android.view.GestureDetector; @@ -24,7 +23,7 @@ import android.view.MotionEvent; import android.view.animation.DecelerateInterpolator; import com.android.gallery3d.anim.Animation; -import com.android.gallery3d.app.GalleryActivity; +import com.android.gallery3d.app.AbstractGalleryActivity; import com.android.gallery3d.common.Utils; public class SlotView extends GLView { @@ -88,10 +87,9 @@ public class SlotView extends GLView { // to prevent allocating memory private final Rect mTempRect = new Rect(); - public SlotView(GalleryActivity activity, Spec spec) { - mGestureDetector = new GestureDetector( - (Context) activity, new MyGestureListener()); - mScroller = new ScrollerHelper((Context) activity); + public SlotView(AbstractGalleryActivity activity, Spec spec) { + mGestureDetector = new GestureDetector(activity, new MyGestureListener()); + mScroller = new ScrollerHelper(activity); mHandler = new SynchronizedHandler(activity.getGLRoot()); setSlotSpec(spec); } |