diff options
| author | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:45 -0800 |
|---|---|---|
| committer | The Android Open Source Project <initial-contribution@android.com> | 2009-03-03 18:28:45 -0800 |
| commit | d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 (patch) | |
| tree | 4b825dc642cb6eb9a060e54bf8d69288fbee4904 /core/java/android/preference/EditTextPreference.java | |
| parent | 076357b8567458d4b6dfdcf839ef751634cd2bfb (diff) | |
auto import from //depot/cupcake/@135843
Diffstat (limited to 'core/java/android/preference/EditTextPreference.java')
| -rw-r--r-- | core/java/android/preference/EditTextPreference.java | 228 |
1 files changed, 0 insertions, 228 deletions
diff --git a/core/java/android/preference/EditTextPreference.java b/core/java/android/preference/EditTextPreference.java deleted file mode 100644 index a12704f4820a..000000000000 --- a/core/java/android/preference/EditTextPreference.java +++ /dev/null @@ -1,228 +0,0 @@ -/* - * Copyright (C) 2007 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package android.preference; - - -import android.content.Context; -import android.content.SharedPreferences; -import android.content.res.TypedArray; -import android.os.Parcel; -import android.os.Parcelable; -import android.text.TextUtils; -import android.util.AttributeSet; -import android.view.View; -import android.view.ViewGroup; -import android.view.ViewParent; -import android.widget.EditText; -import android.widget.LinearLayout; - -/** - * A {@link Preference} that allows for string - * input. - * <p> - * It is a subclass of {@link DialogPreference} and shows the {@link EditText} - * in a dialog. This {@link EditText} can be modified either programmatically - * via {@link #getEditText()}, or through XML by setting any EditText - * attributes on the EditTextPreference. - * <p> - * This preference will store a string into the SharedPreferences. - * <p> - * See {@link android.R.styleable#EditText EditText Attributes}. - */ -public class EditTextPreference extends DialogPreference { - /** - * The edit text shown in the dialog. - */ - private EditText mEditText; - - private String mText; - - public EditTextPreference(Context context, AttributeSet attrs, int defStyle) { - super(context, attrs, defStyle); - - mEditText = new EditText(context, attrs); - - // Give it an ID so it can be saved/restored - mEditText.setId(com.android.internal.R.id.edit); - - /* - * The preference framework and view framework both have an 'enabled' - * attribute. Most likely, the 'enabled' specified in this XML is for - * the preference framework, but it was also given to the view framework. - * We reset the enabled state. - */ - mEditText.setEnabled(true); - } - - public EditTextPreference(Context context, AttributeSet attrs) { - this(context, attrs, com.android.internal.R.attr.editTextPreferenceStyle); - } - - public EditTextPreference(Context context) { - this(context, null); - } - - /** - * Saves the text to the {@link SharedPreferences}. - * - * @param text The text to save - */ - public void setText(String text) { - final boolean wasBlocking = shouldDisableDependents(); - - mText = text; - - persistString(text); - - final boolean isBlocking = shouldDisableDependents(); - if (isBlocking != wasBlocking) { - notifyDependencyChange(isBlocking); - } - } - - /** - * Gets the text from the {@link SharedPreferences}. - * - * @return The current preference value. - */ - public String getText() { - return mText; - } - - @Override - protected void onBindDialogView(View view) { - super.onBindDialogView(view); - - EditText editText = mEditText; - editText.setText(getText()); - - ViewParent oldParent = editText.getParent(); - if (oldParent != view) { - if (oldParent != null) { - ((ViewGroup) oldParent).removeView(editText); - } - onAddEditTextToDialogView(view, editText); - } - } - - /** - * 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(com.android.internal.R.id.edittext_container); - if (container != null) { - container.addView(editText, ViewGroup.LayoutParams.FILL_PARENT, - ViewGroup.LayoutParams.WRAP_CONTENT); - } - } - - @Override - protected void onDialogClosed(boolean positiveResult) { - super.onDialogClosed(positiveResult); - - if (positiveResult) { - String value = mEditText.getText().toString(); - if (callChangeListener(value)) { - setText(value); - } - } - } - - @Override - protected Object onGetDefaultValue(TypedArray a, int index) { - return a.getString(index); - } - - @Override - protected void onSetInitialValue(boolean restoreValue, Object defaultValue) { - setText(restoreValue ? getPersistedString(mText) : (String) defaultValue); - } - - @Override - public boolean shouldDisableDependents() { - return TextUtils.isEmpty(mText) || super.shouldDisableDependents(); - } - - /** - * Returns the {@link EditText} widget that will be shown in the dialog. - * - * @return The {@link EditText} widget that will be shown in the dialog. - */ - public EditText getEditText() { - return mEditText; - } - - @Override - protected Parcelable onSaveInstanceState() { - final Parcelable superState = super.onSaveInstanceState(); - if (isPersistent()) { - // No need to save instance state since it's persistent - return superState; - } - - final SavedState myState = new SavedState(superState); - myState.text = getText(); - return myState; - } - - @Override - protected void onRestoreInstanceState(Parcelable state) { - if (state == null || !state.getClass().equals(SavedState.class)) { - // Didn't save state for us in onSaveInstanceState - super.onRestoreInstanceState(state); - return; - } - - SavedState myState = (SavedState) state; - super.onRestoreInstanceState(myState.getSuperState()); - setText(myState.text); - } - - private static class SavedState extends BaseSavedState { - String text; - - public SavedState(Parcel source) { - super(source); - text = source.readString(); - } - - @Override - public void writeToParcel(Parcel dest, int flags) { - super.writeToParcel(dest, flags); - dest.writeString(text); - } - - public SavedState(Parcelable superState) { - super(superState); - } - - public static final Parcelable.Creator<SavedState> CREATOR = - new Parcelable.Creator<SavedState>() { - public SavedState createFromParcel(Parcel in) { - return new SavedState(in); - } - - public SavedState[] newArray(int size) { - return new SavedState[size]; - } - }; - } - -} |
