summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorOwen Lin <owenlin@google.com>2012-05-16 15:32:02 -0700
committerOwen Lin <owenlin@google.com>2012-05-17 13:50:06 -0700
commit3b35f3a3e4146e632bd5387a0f5f6683c783f98a (patch)
tree9da3cc92e0a74c5e4e65fa8b8b097df2cfb833d4 /src/com
parent931a10095f72a0334ac5ab5da174e646cb5bacf9 (diff)
downloadandroid_packages_apps_Snap-3b35f3a3e4146e632bd5387a0f5f6683c783f98a.tar.gz
android_packages_apps_Snap-3b35f3a3e4146e632bd5387a0f5f6683c783f98a.tar.bz2
android_packages_apps_Snap-3b35f3a3e4146e632bd5387a0f5f6683c783f98a.zip
Refresh the action bar timeout when button is clicked.
Also handle with the confirm dialog, we show the action bar as long as the confirm dialog is shown. And we start to timeout the action bar when the confirm dialog get dismissed. bug: 6478646 Change-Id: I3f0e7e61b43b0dd2bb2b1e2b4444c8dcb5706e1a
Diffstat (limited to 'src/com')
-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);
}