Remove APIs for controlling EditText dialogs
Developers should simply specify a dialog layout instead,
and/or exercise extra control in onCreateDialogView or
onBindDialogView.
b/23939574
Change-Id: I4787998f07117f3b955860713da65e1cb8076ed4
diff --git a/v14/preference/api/current.txt b/v14/preference/api/current.txt
index cbf8fe5..fed4623 100644
--- a/v14/preference/api/current.txt
+++ b/v14/preference/api/current.txt
@@ -3,7 +3,6 @@
public class EditTextPreferenceDialogFragment extends android.support.v14.preference.PreferenceDialogFragment {
ctor public EditTextPreferenceDialogFragment();
method public static android.support.v14.preference.EditTextPreferenceDialogFragment newInstance(java.lang.String);
- method protected void onAddEditTextToDialogView(android.view.View, android.widget.EditText);
method public void onDialogClosed(boolean);
}
diff --git a/v14/preference/src/android/support/v14/preference/EditTextPreferenceDialogFragment.java b/v14/preference/src/android/support/v14/preference/EditTextPreferenceDialogFragment.java
index caf08a8..498b874 100644
--- a/v14/preference/src/android/support/v14/preference/EditTextPreferenceDialogFragment.java
+++ b/v14/preference/src/android/support/v14/preference/EditTextPreferenceDialogFragment.java
@@ -19,8 +19,6 @@
import android.os.Bundle;
import android.support.v7.preference.EditTextPreference;
import android.view.View;
-import android.view.ViewGroup;
-import android.view.ViewParent;
import android.widget.EditText;
public class EditTextPreferenceDialogFragment extends PreferenceDialogFragment {
@@ -40,19 +38,14 @@
protected void onBindDialogView(View view) {
super.onBindDialogView(view);
- mEditText = new EditText(view.getContext());
- // Give it an ID so it can be saved/restored
- mEditText.setId(android.R.id.edit);
+ mEditText = (EditText) view.findViewById(android.R.id.edit);
+
+ if (mEditText == null) {
+ throw new IllegalStateException("Dialog view must contain an EditText with id" +
+ " @android:id/edit");
+ }
mEditText.setText(getEditTextPreference().getText());
-
- ViewParent oldParent = mEditText.getParent();
- if (oldParent != view) {
- if (oldParent != null) {
- ((ViewGroup) oldParent).removeView(mEditText);
- }
- onAddEditTextToDialogView(view, mEditText);
- }
}
private EditTextPreference getEditTextPreference() {
@@ -66,20 +59,6 @@
return true;
}
- /**
- * Adds the EditText widget of this preference to the dialog's view.
- *
- * @param dialogView The dialog view.
- */
- protected void onAddEditTextToDialogView(View dialogView, EditText editText) {
- ViewGroup container = (ViewGroup) dialogView
- .findViewById(R.id.edittext_container);
- if (container != null) {
- container.addView(editText, ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.WRAP_CONTENT);
- }
- }
-
@Override
public void onDialogClosed(boolean positiveResult) {
diff --git a/v7/preference/api/current.txt b/v7/preference/api/current.txt
index 6ab53c5..7d7aeb1 100644
--- a/v7/preference/api/current.txt
+++ b/v7/preference/api/current.txt
@@ -47,7 +47,6 @@
public class EditTextPreferenceDialogFragmentCompat extends android.support.v7.preference.PreferenceDialogFragmentCompat {
ctor public EditTextPreferenceDialogFragmentCompat();
method public static android.support.v7.preference.EditTextPreferenceDialogFragmentCompat newInstance(java.lang.String);
- method protected void onAddEditTextToDialogView(android.view.View, android.widget.EditText);
method public void onDialogClosed(boolean);
}
diff --git a/v7/preference/res/layout/preference_dialog_edittext.xml b/v7/preference/res/layout/preference_dialog_edittext.xml
index 527a7de..9fbf2b7 100644
--- a/v7/preference/res/layout/preference_dialog_edittext.xml
+++ b/v7/preference/res/layout/preference_dialog_edittext.xml
@@ -23,7 +23,6 @@
android:overScrollMode="ifContentScrolls">
<LinearLayout
- android:id="@+id/edittext_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dip"
@@ -36,6 +35,11 @@
android:layout_height="wrap_content"
android:textColor="?android:attr/textColorSecondary" />
+ <EditText
+ android:id="@android:id/edit"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content" />
+
</LinearLayout>
</ScrollView>
diff --git a/v7/preference/src/android/support/v7/preference/EditTextPreferenceDialogFragmentCompat.java b/v7/preference/src/android/support/v7/preference/EditTextPreferenceDialogFragmentCompat.java
index 182cf28..6e7663c 100644
--- a/v7/preference/src/android/support/v7/preference/EditTextPreferenceDialogFragmentCompat.java
+++ b/v7/preference/src/android/support/v7/preference/EditTextPreferenceDialogFragmentCompat.java
@@ -18,8 +18,6 @@
import android.os.Bundle;
import android.view.View;
-import android.view.ViewGroup;
-import android.view.ViewParent;
import android.widget.EditText;
public class EditTextPreferenceDialogFragmentCompat extends PreferenceDialogFragmentCompat {
@@ -39,19 +37,14 @@
protected void onBindDialogView(View view) {
super.onBindDialogView(view);
- mEditText = new EditText(view.getContext());
- // Give it an ID so it can be saved/restored
- mEditText.setId(android.R.id.edit);
+ mEditText = (EditText) view.findViewById(android.R.id.edit);
+
+ if (mEditText == null) {
+ throw new IllegalStateException("Dialog view must contain an EditText with id" +
+ " @android:id/edit");
+ }
mEditText.setText(getEditTextPreference().getText());
-
- ViewParent oldParent = mEditText.getParent();
- if (oldParent != view) {
- if (oldParent != null) {
- ((ViewGroup) oldParent).removeView(mEditText);
- }
- onAddEditTextToDialogView(view, mEditText);
- }
}
private EditTextPreference getEditTextPreference() {
@@ -65,20 +58,6 @@
return true;
}
- /**
- * Adds the EditText widget of this preference to the dialog's view.
- *
- * @param dialogView The dialog view.
- */
- protected void onAddEditTextToDialogView(View dialogView, EditText editText) {
- ViewGroup container = (ViewGroup) dialogView
- .findViewById(R.id.edittext_container);
- if (container != null) {
- container.addView(editText, ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.WRAP_CONTENT);
- }
- }
-
@Override
public void onDialogClosed(boolean positiveResult) {