diff --git a/res/layout/fragment_wizard_page_single_text_field.xml b/res/layout/fragment_wizard_page_single_text_field.xml index 6f6e8fcbe918d08045b4126bc81a72207717ef8f..9a76c502bc7e0deb99cbbc0e6e7a0550ad5ef402 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 c86bba6dac964bd5b794ddaa03bbd9bb367ea1ee..30e75958a5c63e94a32c699298c7eaf722c2697d 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 12007a33f9ae41ca40772e21b5a1d43b7fce0962..6566f17851f1cc679c494da90a96e0ffb25e0074 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()); + } } }); }