Merge branch '1522-contact-alias-length' into 'master'

Check contact alias for maximum length in UI

Closes #1522

See merge request briar/briar!1069
This commit is contained in:
akwizgran
2019-04-03 10:17:54 +00:00
2 changed files with 33 additions and 11 deletions

View File

@@ -4,6 +4,7 @@ import android.arch.lifecycle.ViewModelProvider;
import android.arch.lifecycle.ViewModelProviders; import android.arch.lifecycle.ViewModelProviders;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.design.widget.TextInputLayout;
import android.support.v7.app.AppCompatDialogFragment; import android.support.v7.app.AppCompatDialogFragment;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@@ -18,6 +19,8 @@ import org.briarproject.briar.android.activity.BriarActivity;
import javax.inject.Inject; import javax.inject.Inject;
import static java.util.Objects.requireNonNull; import static java.util.Objects.requireNonNull;
import static org.briarproject.bramble.api.identity.AuthorConstants.MAX_AUTHOR_NAME_LENGTH;
import static org.briarproject.bramble.util.StringUtils.toUtf8;
public class AliasDialogFragment extends AppCompatDialogFragment { public class AliasDialogFragment extends AppCompatDialogFragment {
@@ -27,6 +30,7 @@ public class AliasDialogFragment extends AppCompatDialogFragment {
ViewModelProvider.Factory viewModelFactory; ViewModelProvider.Factory viewModelFactory;
private ConversationViewModel viewModel; private ConversationViewModel viewModel;
private TextInputLayout aliasEditLayout;
private EditText aliasEditText; private EditText aliasEditText;
public static AliasDialogFragment newInstance() { public static AliasDialogFragment newInstance() {
@@ -51,6 +55,7 @@ public class AliasDialogFragment extends AppCompatDialogFragment {
View v = inflater.inflate(R.layout.fragment_alias_dialog, container, View v = inflater.inflate(R.layout.fragment_alias_dialog, container,
false); false);
aliasEditLayout = v.findViewById(R.id.aliasEditLayout);
aliasEditText = v.findViewById(R.id.aliasEditText); aliasEditText = v.findViewById(R.id.aliasEditText);
Contact contact = requireNonNull(viewModel.getContact().getValue()); Contact contact = requireNonNull(viewModel.getContact().getValue());
String alias = contact.getAlias(); String alias = contact.getAlias();
@@ -58,10 +63,7 @@ public class AliasDialogFragment extends AppCompatDialogFragment {
if (alias != null) aliasEditText.setSelection(alias.length()); if (alias != null) aliasEditText.setSelection(alias.length());
Button setButton = v.findViewById(R.id.setButton); Button setButton = v.findViewById(R.id.setButton);
setButton.setOnClickListener(v1 -> { setButton.setOnClickListener(v1 -> onSetButtonClicked());
viewModel.setContactAlias(aliasEditText.getText().toString());
getDialog().dismiss();
});
Button cancelButton = v.findViewById(R.id.cancelButton); Button cancelButton = v.findViewById(R.id.cancelButton);
cancelButton.setOnClickListener(v1 -> getDialog().cancel()); cancelButton.setOnClickListener(v1 -> getDialog().cancel());
@@ -69,4 +71,14 @@ public class AliasDialogFragment extends AppCompatDialogFragment {
return v; return v;
} }
private void onSetButtonClicked() {
String alias = aliasEditText.getText().toString();
if (toUtf8(alias).length > MAX_AUTHOR_NAME_LENGTH) {
aliasEditLayout.setError(getString(R.string.name_too_long));
} else {
viewModel.setContactAlias(alias);
getDialog().dismiss();
}
}
} }

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout <LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical" android:orientation="vertical"
@@ -17,15 +18,24 @@
android:textSize="@dimen/text_size_large" android:textSize="@dimen/text_size_large"
android:textStyle="bold"/> android:textStyle="bold"/>
<EditText <android.support.design.widget.TextInputLayout
android:id="@+id/aliasEditText" android:id="@+id/aliasEditLayout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="16dp" app:errorEnabled="true"
android:hint="@string/set_contact_alias_hint" app:hintEnabled="false">
android:inputType="textPersonName"
android:textColor="?android:attr/textColorPrimary" <android.support.design.widget.TextInputEditText
android:textSize="@dimen/text_size_medium"/> android:id="@+id/aliasEditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:hint="@string/set_contact_alias_hint"
android:inputType="textPersonName"
android:textColor="?android:attr/textColorPrimary"
android:textSize="@dimen/text_size_medium"/>
</android.support.design.widget.TextInputLayout>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"