From 02c370a04af473bb2d966deccc096bd31d349bbe Mon Sep 17 00:00:00 2001 From: str4d <str4d@mail.i2p> Date: Wed, 28 Aug 2013 02:48:05 +0000 Subject: [PATCH] Added input validation support to SingleTextFieldPage --- .../fragment_wizard_page_single_text_field.xml | 4 ++++ .../wizard/model/SingleTextFieldPage.java | 16 +++++++++++++++- .../wizard/ui/SingleTextFieldFragment.java | 7 +++++++ 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/res/layout/fragment_wizard_page_single_text_field.xml b/res/layout/fragment_wizard_page_single_text_field.xml index 6f6e8fcbe..9a76c502b 100644 --- a/res/layout/fragment_wizard_page_single_text_field.xml +++ b/res/layout/fragment_wizard_page_single_text_field.xml @@ -37,6 +37,10 @@ android:inputType="text" android:layout_marginBottom="16dp" /> + <TextView android:id="@+id/wizard_text_field_feedback" + android:layout_width="match_parent" + android:layout_height="wrap_content" /> + <TextView style="@style/WizardFormLabel" android:id="@+id/wizard_text_field_desc" /> diff --git a/src/net/i2p/android/wizard/model/SingleTextFieldPage.java b/src/net/i2p/android/wizard/model/SingleTextFieldPage.java index c86bba6da..30e75958a 100644 --- a/src/net/i2p/android/wizard/model/SingleTextFieldPage.java +++ b/src/net/i2p/android/wizard/model/SingleTextFieldPage.java @@ -47,7 +47,7 @@ public class SingleTextFieldPage extends Page { @Override public boolean isCompleted() { - return !TextUtils.isEmpty(mData.getString(SIMPLE_DATA_KEY)); + return (!TextUtils.isEmpty(mData.getString(SIMPLE_DATA_KEY))) && isValid(); } public SingleTextFieldPage setDefault(String def) { @@ -67,4 +67,18 @@ public class SingleTextFieldPage extends Page { public String getDesc() { return mDesc; } + + // Override these in subclasses to add content verification. + + public boolean isValid() { + return true; + } + + public boolean showFeedback() { + return false; + } + + public String getFeedback() { + return ""; + } } diff --git a/src/net/i2p/android/wizard/ui/SingleTextFieldFragment.java b/src/net/i2p/android/wizard/ui/SingleTextFieldFragment.java index 12007a33f..6566f1785 100644 --- a/src/net/i2p/android/wizard/ui/SingleTextFieldFragment.java +++ b/src/net/i2p/android/wizard/ui/SingleTextFieldFragment.java @@ -39,6 +39,7 @@ public class SingleTextFieldFragment extends Fragment { private String mKey; private SingleTextFieldPage mPage; private TextView mFieldView; + private TextView mFeedbackView; public static SingleTextFieldFragment create(String key) { Bundle args = new Bundle(); @@ -76,6 +77,9 @@ public class SingleTextFieldFragment extends Fragment { mFieldView.setText(mPage.getDefault()); mPage.getData().putString(Page.SIMPLE_DATA_KEY, mPage.getDefault()); } + + mFeedbackView = (TextView) rootView.findViewById(R.id.wizard_text_field_feedback); + return rootView; } @@ -112,6 +116,9 @@ public class SingleTextFieldFragment extends Fragment { mPage.getData().putString(Page.SIMPLE_DATA_KEY, (editable != null) ? editable.toString() : null); mPage.notifyDataChanged(); + if (mPage.showFeedback()) { + mFeedbackView.setText(mPage.getFeedback()); + } } }); } -- GitLab