summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/gallery3d/app/ManageCachePage.java8
-rw-r--r--src/com/android/gallery3d/app/PhotoPage.java29
-rw-r--r--src/com/android/gallery3d/ui/ImportCompleteListener.java9
-rw-r--r--src/com/android/gallery3d/ui/MenuExecutor.java46
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);
}