Display errors in TextInputLayout

pull/467/head
Alex Baker 9 years ago
parent 1889a80b9c
commit fcb7a657b3

@ -9,11 +9,11 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.support.design.widget.TextInputEditText; import android.support.design.widget.TextInputEditText;
import android.support.design.widget.TextInputLayout;
import android.support.v4.content.ContextCompat; import android.support.v4.content.ContextCompat;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
import android.widget.Toast;
import com.todoroo.astrid.api.CustomFilter; import com.todoroo.astrid.api.CustomFilter;
import com.todoroo.astrid.dao.StoreObjectDao; import com.todoroo.astrid.dao.StoreObjectDao;
@ -29,6 +29,7 @@ import javax.inject.Inject;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import butterknife.OnTextChanged;
import static android.text.TextUtils.isEmpty; import static android.text.TextUtils.isEmpty;
@ -46,6 +47,7 @@ public class FilterSettingsActivity extends ThemedInjectingAppCompatActivity imp
@Inject Preferences preferences; @Inject Preferences preferences;
@BindView(R.id.name) TextInputEditText name; @BindView(R.id.name) TextInputEditText name;
@BindView(R.id.name_layout) TextInputLayout nameLayout;
@BindView(R.id.toolbar) Toolbar toolbar; @BindView(R.id.toolbar) Toolbar toolbar;
@Override @Override
@ -75,6 +77,11 @@ public class FilterSettingsActivity extends ThemedInjectingAppCompatActivity imp
name.setText(filter.listingTitle); name.setText(filter.listingTitle);
} }
@OnTextChanged(R.id.name)
void onTextChanged(CharSequence text) {
nameLayout.setError(null);
}
@Override @Override
public void inject(ActivityComponent component) { public void inject(ActivityComponent component) {
component.inject(this); component.inject(this);
@ -85,7 +92,7 @@ public class FilterSettingsActivity extends ThemedInjectingAppCompatActivity imp
String newName = name.getText().toString().trim(); String newName = name.getText().toString().trim();
if (isEmpty(newName)) { if (isEmpty(newName)) {
Toast.makeText(this, R.string.name_cannot_be_empty, Toast.LENGTH_LONG).show(); nameLayout.setError(getString(R.string.name_cannot_be_empty));
return; return;
} }

@ -9,12 +9,12 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.support.design.widget.TextInputEditText; import android.support.design.widget.TextInputEditText;
import android.support.design.widget.TextInputLayout;
import android.support.v4.content.ContextCompat; import android.support.v4.content.ContextCompat;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.text.InputType; import android.text.InputType;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodManager;
import android.widget.Toast;
import com.todoroo.andlib.sql.Criterion; import com.todoroo.andlib.sql.Criterion;
import com.todoroo.astrid.activity.TaskListActivity; import com.todoroo.astrid.activity.TaskListActivity;
@ -44,6 +44,7 @@ import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
import butterknife.OnClick; import butterknife.OnClick;
import butterknife.OnFocusChange; import butterknife.OnFocusChange;
import butterknife.OnTextChanged;
import static android.text.TextUtils.isEmpty; import static android.text.TextUtils.isEmpty;
@ -74,6 +75,7 @@ public class TagSettingsActivity extends ThemedInjectingAppCompatActivity implem
@Inject Tracker tracker; @Inject Tracker tracker;
@BindView(R.id.name) TextInputEditText name; @BindView(R.id.name) TextInputEditText name;
@BindView(R.id.name_layout) TextInputLayout nameLayout;
@BindView(R.id.color) TextInputEditText color; @BindView(R.id.color) TextInputEditText color;
@BindView(R.id.toolbar) Toolbar toolbar; @BindView(R.id.toolbar) Toolbar toolbar;
@ -129,6 +131,11 @@ public class TagSettingsActivity extends ThemedInjectingAppCompatActivity implem
updateTheme(); updateTheme();
} }
@OnTextChanged(R.id.name)
void onTextChanged(CharSequence text) {
nameLayout.setError(null);
}
@Override @Override
protected void onSaveInstanceState(Bundle outState) { protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState); super.onSaveInstanceState(outState);
@ -170,12 +177,12 @@ public class TagSettingsActivity extends ThemedInjectingAppCompatActivity implem
String newName = getNewName(); String newName = getNewName();
if (isEmpty(newName)) { if (isEmpty(newName)) {
Toast.makeText(this, R.string.name_cannot_be_empty, Toast.LENGTH_LONG).show(); nameLayout.setError(getString(R.string.name_cannot_be_empty));
return; return;
} }
if (clashes(newName)) { if (clashes(newName)) {
Toast.makeText(this, R.string.tag_already_exists, Toast.LENGTH_LONG).show(); nameLayout.setError(getString(R.string.tag_already_exists));
return; return;
} }

@ -19,7 +19,9 @@
android:focusableInTouchMode="true" android:focusableInTouchMode="true"
android:orientation="vertical"> android:orientation="vertical">
<android.support.design.widget.TextInputLayout style="@style/TagSettingsRow"> <android.support.design.widget.TextInputLayout
android:id="@+id/name_layout"
style="@style/TagSettingsRow">
<android.support.design.widget.TextInputEditText <android.support.design.widget.TextInputEditText
android:id="@+id/name" android:id="@+id/name"

@ -18,7 +18,9 @@
android:focusableInTouchMode="true" android:focusableInTouchMode="true"
android:orientation="vertical"> android:orientation="vertical">
<android.support.design.widget.TextInputLayout style="@style/TagSettingsRow"> <android.support.design.widget.TextInputLayout
android:id="@+id/name_layout"
style="@style/TagSettingsRow">
<android.support.design.widget.TextInputEditText <android.support.design.widget.TextInputEditText
android:id="@+id/name" android:id="@+id/name"

Loading…
Cancel
Save