summaryrefslogtreecommitdiffstats
path: root/core/java/android
diff options
context:
space:
mode:
authorAdam Powell <adamp@google.com>2012-08-27 14:04:29 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-08-27 14:04:29 -0700
commitac137b3211818f9e72f9ffbaf541ad8a1ef27eb1 (patch)
tree95bc7a0b0c61b5edff032a43d5531cbd00b62099 /core/java/android
parent116ee10b95ffff658618be42544ce80971ce28e8 (diff)
parent7f02dc5c9c48a01bec459b71ac73a6ad37b9e12c (diff)
downloadframeworks_base-ac137b3211818f9e72f9ffbaf541ad8a1ef27eb1.zip
frameworks_base-ac137b3211818f9e72f9ffbaf541ad8a1ef27eb1.tar.gz
frameworks_base-ac137b3211818f9e72f9ffbaf541ad8a1ef27eb1.tar.bz2
Merge "Add setOnDismissListener to AlertDialog.Builder" into jb-mr1-dev
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/app/AlertDialog.java18
-rw-r--r--core/java/android/app/Dialog.java10
2 files changed, 24 insertions, 4 deletions
diff --git a/core/java/android/app/AlertDialog.java b/core/java/android/app/AlertDialog.java
index e37b3fa..7809e73 100644
--- a/core/java/android/app/AlertDialog.java
+++ b/core/java/android/app/AlertDialog.java
@@ -566,7 +566,14 @@ public class AlertDialog extends Dialog implements DialogInterface {
/**
* Sets the callback that will be called if the dialog is canceled.
+ *
+ * <p>Even in a cancelable dialog, the dialog may be dismissed for reasons other than
+ * being canceled or one of the supplied choices being selected.
+ * If you are interested in listening for all cases where the dialog is dismissed
+ * and not just when it is canceled, see
+ * {@link #setOnDismissListener(android.content.DialogInterface.OnDismissListener) setOnDismissListener}.</p>
* @see #setCancelable(boolean)
+ * @see #setOnDismissListener(android.content.DialogInterface.OnDismissListener)
*
* @return This Builder object to allow for chaining of calls to set methods
*/
@@ -576,6 +583,16 @@ public class AlertDialog extends Dialog implements DialogInterface {
}
/**
+ * Sets the callback that will be called when the dialog is dismissed for any reason.
+ *
+ * @return This Builder object to allow for chaining of calls to set methods
+ */
+ public Builder setOnDismissListener(OnDismissListener onDismissListener) {
+ P.mOnDismissListener = onDismissListener;
+ return this;
+ }
+
+ /**
* Sets the callback that will be called if a key is dispatched to the dialog.
*
* @return This Builder object to allow for chaining of calls to set methods
@@ -917,6 +934,7 @@ public class AlertDialog extends Dialog implements DialogInterface {
dialog.setCanceledOnTouchOutside(true);
}
dialog.setOnCancelListener(P.mOnCancelListener);
+ dialog.setOnDismissListener(P.mOnDismissListener);
if (P.mOnKeyListener != null) {
dialog.setOnKeyListener(P.mOnKeyListener);
}
diff --git a/core/java/android/app/Dialog.java b/core/java/android/app/Dialog.java
index 2cc3b02..16112cb 100644
--- a/core/java/android/app/Dialog.java
+++ b/core/java/android/app/Dialog.java
@@ -1106,10 +1106,12 @@ public class Dialog implements DialogInterface, Window.Callback,
/**
* Set a listener to be invoked when the dialog is canceled.
- * <p>
- * This will only be invoked when the dialog is canceled, if the creator
- * needs to know when it is dismissed in general, use
- * {@link #setOnDismissListener}.
+ *
+ * <p>This will only be invoked when the dialog is canceled.
+ * Cancel events alone will not capture all ways that
+ * the dialog might be dismissed. If the creator needs
+ * to know when a dialog is dismissed in general, use
+ * {@link #setOnDismissListener}.</p>
*
* @param listener The {@link DialogInterface.OnCancelListener} to use.
*/