diff options
-rw-r--r-- | src/com/android/gallery3d/app/ManageCachePage.java | 8 | ||||
-rw-r--r-- | src/com/android/gallery3d/app/PhotoPage.java | 29 | ||||
-rw-r--r-- | src/com/android/gallery3d/ui/ImportCompleteListener.java | 9 | ||||
-rw-r--r-- | src/com/android/gallery3d/ui/MenuExecutor.java | 46 |
4 files changed, 82 insertions, 10 deletions
diff --git a/src/com/android/gallery3d/app/ManageCachePage.java b/src/com/android/gallery3d/app/ManageCachePage.java index 2e52b8cbb..cdbbfdc50 100644 --- a/src/com/android/gallery3d/app/ManageCachePage.java +++ b/src/com/android/gallery3d/app/ManageCachePage.java @@ -398,4 +398,12 @@ public class ManageCachePage extends ActivityState implements @Override public void onSelectionChange(Path path, boolean selected) { } + + @Override + public void onConfirmDialogDismissed(boolean confirmed) { + } + + @Override + public void onConfirmDialogShown() { + } } diff --git a/src/com/android/gallery3d/app/PhotoPage.java b/src/com/android/gallery3d/app/PhotoPage.java index 1778f261b..68406ccd2 100644 --- a/src/com/android/gallery3d/app/PhotoPage.java +++ b/src/com/android/gallery3d/app/PhotoPage.java @@ -521,8 +521,28 @@ public class PhotoPage extends ActivityState implements return true; } + private MenuExecutor.ProgressListener mConfirmDialogListener = + new MenuExecutor.ProgressListener() { + @Override + public void onProgressUpdate(int index) {} + + @Override + public void onProgressComplete(int result) {} + + @Override + public void onConfirmDialogShown() { + mHandler.removeMessages(MSG_HIDE_BARS); + } + + @Override + public void onConfirmDialogDismissed(boolean confirmed) { + refreshHidingMessage(); + } + }; + @Override protected boolean onItemSelected(MenuItem item) { + refreshHidingMessage(); MediaItem current = mModel.getMediaItem(0); if (current == null) { @@ -586,7 +606,7 @@ public class PhotoPage extends ActivityState implements case R.id.action_show_on_map: mSelectionManager.deSelectAll(); mSelectionManager.toggle(path); - mMenuExecutor.onMenuClicked(item, confirmMsg, null); + mMenuExecutor.onMenuClicked(item, confirmMsg, mConfirmDialogListener); return true; case R.id.action_import: mSelectionManager.deSelectAll(); @@ -767,11 +787,12 @@ public class PhotoPage extends ActivityState implements @Override public void onPause() { + super.onPause(); + mIsActive = false; + mActivity.getGLRoot().unfreeze(); mHandler.removeMessages(MSG_UNFREEZE_GLROOT); - super.onPause(); if (isFinishing()) preparePhotoFallbackView(); - mIsActive = false; DetailsHelper.pause(); mPhotoView.pause(); @@ -789,8 +810,8 @@ public class PhotoPage extends ActivityState implements @Override protected void onResume() { - mActivity.getGLRoot().freeze(); super.onResume(); + mActivity.getGLRoot().freeze(); mIsActive = true; setContentPane(mRootPane); diff --git a/src/com/android/gallery3d/ui/ImportCompleteListener.java b/src/com/android/gallery3d/ui/ImportCompleteListener.java index 245088179..63d616751 100644 --- a/src/com/android/gallery3d/ui/ImportCompleteListener.java +++ b/src/com/android/gallery3d/ui/ImportCompleteListener.java @@ -31,6 +31,7 @@ public class ImportCompleteListener implements MenuExecutor.ProgressListener { mActivity = galleryActivity; } + @Override public void onProgressComplete(int result) { int message; if (result == MenuExecutor.EXECUTION_RESULT_SUCCESS) { @@ -42,6 +43,7 @@ public class ImportCompleteListener implements MenuExecutor.ProgressListener { Toast.makeText(mActivity.getAndroidContext(), message, Toast.LENGTH_LONG).show(); } + @Override public void onProgressUpdate(int index) { } @@ -52,4 +54,11 @@ public class ImportCompleteListener implements MenuExecutor.ProgressListener { mActivity.getStateManager().startState(AlbumPage.class, data); } + @Override + public void onConfirmDialogDismissed(boolean confirmed) { + } + + @Override + public void onConfirmDialogShown() { + } } diff --git a/src/com/android/gallery3d/ui/MenuExecutor.java b/src/com/android/gallery3d/ui/MenuExecutor.java index 14bdc4d53..7de07e821 100644 --- a/src/com/android/gallery3d/ui/MenuExecutor.java +++ b/src/com/android/gallery3d/ui/MenuExecutor.java @@ -21,6 +21,7 @@ import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; +import android.content.DialogInterface.OnCancelListener; import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.os.Handler; @@ -77,6 +78,8 @@ public class MenuExecutor { } public interface ProgressListener { + public void onConfirmDialogShown(); + public void onConfirmDialogDismissed(boolean confirmed); public void onProgressUpdate(int index); public void onProgressComplete(int result); } @@ -232,19 +235,50 @@ public class MenuExecutor { startAction(action, title, listener); } + private class ConfirmDialogListener implements OnClickListener, OnCancelListener { + private final int mActionId; + private final ProgressListener mListener; + + public ConfirmDialogListener(int actionId, ProgressListener listener) { + mActionId = actionId; + mListener = listener; + } + + @Override + public void onClick(DialogInterface dialog, int which) { + if (which == DialogInterface.BUTTON_POSITIVE) { + if (mListener != null) { + mListener.onConfirmDialogDismissed(true); + } + onMenuClicked(mActionId, mListener); + } else { + if (mListener != null) { + mListener.onConfirmDialogDismissed(false); + } + } + } + + @Override + public void onCancel(DialogInterface dialog) { + if (mListener != null) { + mListener.onConfirmDialogDismissed(false); + } + } + } + public void onMenuClicked(MenuItem menuItem, String confirmMsg, final ProgressListener listener) { final int action = menuItem.getItemId(); if (confirmMsg != null) { + if (listener != null) listener.onConfirmDialogShown(); + ConfirmDialogListener cdl = new ConfirmDialogListener(action, listener); new AlertDialog.Builder(mActivity.getAndroidContext()) .setMessage(confirmMsg) - .setPositiveButton(R.string.ok, new OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - onMenuClicked(action, listener); - } - }) - .setNegativeButton(R.string.cancel, null).create().show(); + .setOnCancelListener(cdl) + .setPositiveButton(R.string.ok, cdl) + .setNegativeButton(R.string.cancel, cdl) + .create().show(); } else { onMenuClicked(action, listener); } |