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) {
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();
@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();
@Override
protected void onResume() {
- mActivity.getGLRoot().freeze();
super.onResume();
+ mActivity.getGLRoot().freeze();
mIsActive = true;
setContentPane(mRootPane);
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;
}
public interface ProgressListener {
+ public void onConfirmDialogShown();
+ public void onConfirmDialogDismissed(boolean confirmed);
public void onProgressUpdate(int index);
public void onProgressComplete(int result);
}
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);
}