diff options
author | Owen Lin <owenlin@google.com> | 2012-05-16 15:32:02 -0700 |
---|---|---|
committer | Owen Lin <owenlin@google.com> | 2012-05-17 13:50:06 -0700 |
commit | 3b35f3a3e4146e632bd5387a0f5f6683c783f98a (patch) | |
tree | 9da3cc92e0a74c5e4e65fa8b8b097df2cfb833d4 /src/com/android | |
parent | 931a10095f72a0334ac5ab5da174e646cb5bacf9 (diff) | |
download | android_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/android')
-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); } |