Don't finish dialogs on dismiss if positive

pull/253/head
Alex Baker 11 years ago
parent 44ce96190c
commit 8f27d8a270

@ -124,6 +124,7 @@ public class DialogUtilities {
} }
tryOnUiThread(activity, new Runnable() { tryOnUiThread(activity, new Runnable() {
final boolean[] selectedOk = new boolean[1];
@Override @Override
public void run() { public void run() {
AlertDialog dialog = new AlertDialog.Builder(activity) AlertDialog dialog = new AlertDialog.Builder(activity)
@ -131,13 +132,21 @@ public class DialogUtilities {
.setMessage(text) .setMessage(text)
.setTitle(title) .setTitle(title)
.setIcon(icon) .setIcon(icon)
.setPositiveButton(okTitleId, okListener) .setPositiveButton(okTitleId, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
selectedOk[0] = true;
okListener.onClick(dialog, which);
}
})
.setNegativeButton(cancelTitleId, cancelListener) .setNegativeButton(cancelTitleId, cancelListener)
.show(); .show();
dialog.setOnDismissListener(new DialogInterface.OnDismissListener() { dialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override @Override
public void onDismiss(DialogInterface dialog) { public void onDismiss(DialogInterface dialog) {
cancelListener.onClick(dialog, Dialog.BUTTON_NEGATIVE); if (!selectedOk[0]) {
cancelListener.onClick(dialog, Dialog.BUTTON_NEGATIVE);
}
} }
}); });
dialog.setOwnerActivity(activity); dialog.setOwnerActivity(activity);

Loading…
Cancel
Save