diff options
Diffstat (limited to 'src')
3 files changed, 80 insertions, 31 deletions
diff --git a/src/com/android/gallery3d/ui/ActionModeHandler.java b/src/com/android/gallery3d/ui/ActionModeHandler.java index bb195c91e..7191599ad 100644 --- a/src/com/android/gallery3d/ui/ActionModeHandler.java +++ b/src/com/android/gallery3d/ui/ActionModeHandler.java @@ -151,6 +151,8 @@ public class ActionModeHandler implements Callback, PopupList.OnPopupItemClickLi mListener = listener; } + private WakeLockHoldingProgressListener mDeleteProgressListener; + @Override public boolean onActionItemClicked(ActionMode mode, MenuItem item) { GLRoot root = mActivity.getGLRoot(); @@ -173,9 +175,14 @@ public class ActionModeHandler implements Callback, PopupList.OnPopupItemClickLi int action = item.getItemId(); if (action == R.id.action_import) { listener = new ImportCompleteListener(mActivity); - } else if (item.getItemId() == R.id.action_delete) { + } else if (action == R.id.action_delete) { confirmMsg = mActivity.getResources().getQuantityString( R.plurals.delete_selection, mSelectionManager.getSelectedCount()); + if (mDeleteProgressListener == null) { + mDeleteProgressListener = new WakeLockHoldingProgressListener(mActivity, + "Gallery Delete Progress Listener"); + } + listener = mDeleteProgressListener; } mMenuExecutor.onMenuClicked(item, confirmMsg, listener); } finally { diff --git a/src/com/android/gallery3d/ui/ImportCompleteListener.java b/src/com/android/gallery3d/ui/ImportCompleteListener.java index 30af47065..8d6e981ce 100644 --- a/src/com/android/gallery3d/ui/ImportCompleteListener.java +++ b/src/com/android/gallery3d/ui/ImportCompleteListener.java @@ -16,10 +16,7 @@ package com.android.gallery3d.ui; -import android.app.Activity; -import android.content.Context; import android.os.Bundle; -import android.os.PowerManager; import android.widget.Toast; import com.android.gallery3d.R; @@ -27,19 +24,16 @@ import com.android.gallery3d.app.AbstractGalleryActivity; import com.android.gallery3d.app.AlbumPage; import com.android.gallery3d.util.MediaSetUtils; -public class ImportCompleteListener implements MenuExecutor.ProgressListener { - private AbstractGalleryActivity mActivity; - private PowerManager.WakeLock mWakeLock; +public class ImportCompleteListener extends WakeLockHoldingProgressListener { + private static final String WAKE_LOCK_LABEL = "Gallery Album Import"; public ImportCompleteListener(AbstractGalleryActivity galleryActivity) { - mActivity = galleryActivity; - PowerManager pm = - (PowerManager) ((Activity) mActivity).getSystemService(Context.POWER_SERVICE); - mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "Gallery Album Import"); + super(galleryActivity, WAKE_LOCK_LABEL); } @Override public void onProgressComplete(int result) { + super.onProgressComplete(result); int message; if (result == MenuExecutor.EXECUTION_RESULT_SUCCESS) { message = R.string.import_complete; @@ -47,31 +41,13 @@ public class ImportCompleteListener implements MenuExecutor.ProgressListener { } else { message = R.string.import_fail; } - Toast.makeText(mActivity.getAndroidContext(), message, Toast.LENGTH_LONG).show(); - mWakeLock.release(); - } - - @Override - public void onProgressUpdate(int index) { - } - - @Override - public void onProgressStart() { - mWakeLock.acquire(); + Toast.makeText(getActivity().getAndroidContext(), message, Toast.LENGTH_LONG).show(); } private void goToImportedAlbum() { String pathOfImportedAlbum = "/local/all/" + MediaSetUtils.IMPORTED_BUCKET_ID; Bundle data = new Bundle(); data.putString(AlbumPage.KEY_MEDIA_PATH, pathOfImportedAlbum); - mActivity.getStateManager().startState(AlbumPage.class, data); - } - - @Override - public void onConfirmDialogDismissed(boolean confirmed) { - } - - @Override - public void onConfirmDialogShown() { + getActivity().getStateManager().startState(AlbumPage.class, data); } } diff --git a/src/com/android/gallery3d/ui/WakeLockHoldingProgressListener.java b/src/com/android/gallery3d/ui/WakeLockHoldingProgressListener.java new file mode 100644 index 000000000..ee61d8edb --- /dev/null +++ b/src/com/android/gallery3d/ui/WakeLockHoldingProgressListener.java @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2012 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.gallery3d.ui; + +import android.app.Activity; +import android.content.Context; +import android.os.PowerManager; + +import com.android.gallery3d.app.AbstractGalleryActivity; + +public class WakeLockHoldingProgressListener implements MenuExecutor.ProgressListener { + static private final String DEFAULT_WAKE_LOCK_LABEL = "Gallery Progress Listener"; + private AbstractGalleryActivity mActivity; + private PowerManager.WakeLock mWakeLock; + + public WakeLockHoldingProgressListener(AbstractGalleryActivity galleryActivity) { + this(galleryActivity, DEFAULT_WAKE_LOCK_LABEL); + } + + public WakeLockHoldingProgressListener(AbstractGalleryActivity galleryActivity, String label) { + mActivity = galleryActivity; + PowerManager pm = + (PowerManager) ((Activity) mActivity).getSystemService(Context.POWER_SERVICE); + mWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, label); + } + + @Override + public void onProgressComplete(int result) { + mWakeLock.release(); + } + + @Override + public void onProgressStart() { + mWakeLock.acquire(); + } + + protected AbstractGalleryActivity getActivity() { + return mActivity; + } + + @Override + public void onProgressUpdate(int index) { + } + + @Override + public void onConfirmDialogDismissed(boolean confirmed) { + } + + @Override + public void onConfirmDialogShown() { + } +} |