summaryrefslogtreecommitdiff
path: root/core/java/android/app/DialogFragment.java
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2011-01-25 14:54:29 -0800
committerDianne Hackborn <hackbod@google.com>2011-01-25 14:54:29 -0800
commitf812fee071b9992872009b2dcd7969c7ce882a90 (patch)
tree896079d9c1d5df64844186d218b547a607123e16 /core/java/android/app/DialogFragment.java
parent7187ccb93ee8adbb745fcbb901cfacfeed397a23 (diff)
Argh forget to include my final part of the change.
Change-Id: I1e2711e1ecde0350047f1edef9a59947ff5749eb
Diffstat (limited to 'core/java/android/app/DialogFragment.java')
-rw-r--r--core/java/android/app/DialogFragment.java12
1 files changed, 10 insertions, 2 deletions
diff --git a/core/java/android/app/DialogFragment.java b/core/java/android/app/DialogFragment.java
index 8bdd086eb466..50953d72e24f 100644
--- a/core/java/android/app/DialogFragment.java
+++ b/core/java/android/app/DialogFragment.java
@@ -378,6 +378,12 @@ public class DialogFragment extends Fragment
* default implementation simply instantiates and returns a {@link Dialog}
* class.
*
+ * <p><em>Note: DialogFragment own the {@link Dialog#setOnCancelListener
+ * Dialog.setOnCancelListener} and {@link Dialog#setOnDismissListener
+ * Dialog.setOnDismissListener} callbacks. You must not set them yourself.</em>
+ * To find out about these events, override {@link #onCancel(DialogInterface)}
+ * and {@link #onDismiss(DialogInterface)}.</p>
+ *
* @param savedInstanceState The last saved instance state of the Fragment,
* or null if this is a freshly created Fragment.
*
@@ -417,8 +423,10 @@ public class DialogFragment extends Fragment
}
mDialog.setOwnerActivity(getActivity());
mDialog.setCancelable(mCancelable);
- mDialog.setOnCancelListener(this);
- mDialog.setOnDismissListener(this);
+ if (!mDialog.takeCancelAndDismissListeners("DialogFragment", this, this)) {
+ throw new IllegalStateException(
+ "You can not set Dialog's OnCancelListener or OnDismissListener");
+ }
if (savedInstanceState != null) {
Bundle dialogState = savedInstanceState.getBundle(SAVED_DIALOG_STATE_TAG);
if (dialogState != null) {