Fix UI bug in CreateForumActivity and adapt group creation

This commit is contained in:
Torsten Grote
2017-07-25 09:58:29 -03:00
parent 9a70f054c7
commit a48d642648
4 changed files with 65 additions and 38 deletions

View File

@@ -2,6 +2,7 @@ package org.briarproject.briar.android.forum;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.support.design.widget.TextInputLayout;
import android.text.Editable; import android.text.Editable;
import android.text.TextWatcher; import android.text.TextWatcher;
import android.view.KeyEvent; import android.view.KeyEvent;
@@ -43,10 +44,10 @@ public class CreateForumActivity extends BriarActivity {
private static final Logger LOG = private static final Logger LOG =
Logger.getLogger(CreateForumActivity.class.getName()); Logger.getLogger(CreateForumActivity.class.getName());
private TextInputLayout nameEntryLayout;
private EditText nameEntry; private EditText nameEntry;
private Button createForumButton; private Button createForumButton;
private ProgressBar progress; private ProgressBar progress;
private TextView feedback;
// Fields that are accessed from background threads must be volatile // Fields that are accessed from background threads must be volatile
@Inject @Inject
@@ -58,6 +59,8 @@ public class CreateForumActivity extends BriarActivity {
setContentView(R.layout.activity_create_forum); setContentView(R.layout.activity_create_forum);
nameEntryLayout =
(TextInputLayout) findViewById(R.id.createForumNameLayout);
nameEntry = (EditText) findViewById(R.id.createForumNameEntry); nameEntry = (EditText) findViewById(R.id.createForumNameEntry);
nameEntry.addTextChangedListener(new TextWatcher() { nameEntry.addTextChangedListener(new TextWatcher() {
@@ -85,8 +88,6 @@ public class CreateForumActivity extends BriarActivity {
} }
}); });
feedback = (TextView) findViewById(R.id.createForumFeedback);
createForumButton = (Button) findViewById(R.id.createForumButton); createForumButton = (Button) findViewById(R.id.createForumButton);
createForumButton.setOnClickListener(new OnClickListener() { createForumButton.setOnClickListener(new OnClickListener() {
@Override @Override
@@ -118,10 +119,10 @@ public class CreateForumActivity extends BriarActivity {
String name = nameEntry.getText().toString(); String name = nameEntry.getText().toString();
int length = StringUtils.toUtf8(name).length; int length = StringUtils.toUtf8(name).length;
if (length > MAX_FORUM_NAME_LENGTH) { if (length > MAX_FORUM_NAME_LENGTH) {
feedback.setText(R.string.name_too_long); nameEntryLayout.setError(getString(R.string.name_too_long));
return false; return false;
} }
feedback.setText(""); nameEntryLayout.setError(null);
return length > 0; return length > 0;
} }

View File

@@ -2,6 +2,7 @@ package org.briarproject.briar.android.privategroup.creation;
import android.content.Context; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.support.design.widget.TextInputLayout;
import android.text.Editable; import android.text.Editable;
import android.text.TextWatcher; import android.text.TextWatcher;
import android.view.KeyEvent; import android.view.KeyEvent;
@@ -11,6 +12,7 @@ import android.view.View.OnClickListener;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.Button; import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView; import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener; import android.widget.TextView.OnEditorActionListener;
@@ -19,6 +21,8 @@ import org.briarproject.briar.R;
import org.briarproject.briar.android.activity.ActivityComponent; import org.briarproject.briar.android.activity.ActivityComponent;
import org.briarproject.briar.android.fragment.BaseFragment; import org.briarproject.briar.android.fragment.BaseFragment;
import static android.view.View.GONE;
import static android.view.View.VISIBLE;
import static org.briarproject.briar.api.privategroup.PrivateGroupConstants.MAX_GROUP_NAME_LENGTH; import static org.briarproject.briar.api.privategroup.PrivateGroupConstants.MAX_GROUP_NAME_LENGTH;
public class CreateGroupFragment extends BaseFragment { public class CreateGroupFragment extends BaseFragment {
@@ -28,7 +32,8 @@ public class CreateGroupFragment extends BaseFragment {
private CreateGroupListener listener; private CreateGroupListener listener;
private EditText nameEntry; private EditText nameEntry;
private Button createGroupButton; private Button createGroupButton;
private TextView feedback; private TextInputLayout nameLayout;
private ProgressBar progress;
@Override @Override
public void onAttach(Context context) { public void onAttach(Context context) {
@@ -69,7 +74,7 @@ public class CreateGroupFragment extends BaseFragment {
} }
}); });
feedback = (TextView) v.findViewById(R.id.feedback); nameLayout = (TextInputLayout) v.findViewById(R.id.nameLayout);
createGroupButton = (Button) v.findViewById(R.id.button); createGroupButton = (Button) v.findViewById(R.id.button);
createGroupButton.setOnClickListener(new OnClickListener() { createGroupButton.setOnClickListener(new OnClickListener() {
@@ -79,6 +84,8 @@ public class CreateGroupFragment extends BaseFragment {
} }
}); });
progress = (ProgressBar) v.findViewById(R.id.progressBar);
return v; return v;
} }
@@ -107,16 +114,18 @@ public class CreateGroupFragment extends BaseFragment {
String name = nameEntry.getText().toString(); String name = nameEntry.getText().toString();
int length = StringUtils.toUtf8(name).length; int length = StringUtils.toUtf8(name).length;
if (length > MAX_GROUP_NAME_LENGTH) { if (length > MAX_GROUP_NAME_LENGTH) {
feedback.setText(R.string.name_too_long); nameLayout.setError(getString(R.string.name_too_long));
return false; return false;
} }
feedback.setText(""); nameLayout.setError(null);
return length > 0; return length > 0;
} }
private void createGroup() { private void createGroup() {
if (!validateName()) return; if (!validateName()) return;
listener.hideSoftKeyboard(nameEntry); listener.hideSoftKeyboard(nameEntry);
createGroupButton.setVisibility(GONE);
progress.setVisibility(VISIBLE);
listener.onGroupNameChosen(nameEntry.getText().toString()); listener.onGroupNameChosen(nameEntry.getText().toString());
} }
} }

View File

@@ -1,37 +1,42 @@
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical" android:orientation="vertical"
android:layout_margin="@dimen/margin_large"> android:padding="@dimen/margin_large">
<EditText <android.support.design.widget.TextInputLayout
android:id="@+id/createForumNameLayout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:id="@+id/createForumNameEntry" app:errorEnabled="true">
android:maxLines="1"
android:inputType="text|textCapSentences"
android:hint="@string/choose_forum_hint" />
<TextView <EditText
android:layout_width="wrap_content" android:id="@+id/createForumNameEntry"
android:layout_height="wrap_content" android:layout_width="match_parent"
android:id="@+id/createForumFeedback" android:layout_height="wrap_content"
android:gravity="center" /> android:hint="@string/choose_forum_hint"
android:inputType="text|textCapSentences"
android:maxLines="1"/>
</android.support.design.widget.TextInputLayout>
<Button <Button
style="@style/BriarButton"
android:id="@+id/createForumButton" android:id="@+id/createForumButton"
style="@style/BriarButton"
android:enabled="false" android:enabled="false"
android:text="@string/create_forum_button" /> android:text="@string/create_forum_button"/>
<ProgressBar <ProgressBar
android:id="@+id/createForumProgressBar" android:id="@+id/createForumProgressBar"
android:layout_height="wrap_content"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:indeterminate="true" android:indeterminate="true"
android:visibility="gone" /> android:visibility="gone"
tools:visibility="visible"/>
</LinearLayout> </LinearLayout>

View File

@@ -1,30 +1,42 @@
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:gravity="center_horizontal"
android:orientation="vertical" android:orientation="vertical"
android:layout_margin="@dimen/margin_large"> android:padding="@dimen/margin_large">
<EditText <android.support.design.widget.TextInputLayout
android:id="@+id/name" android:id="@+id/nameLayout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:maxLines="1" app:errorEnabled="true">
android:inputType="text|textCapSentences"
android:hint="@string/groups_create_group_hint"/>
<TextView <EditText
android:layout_width="wrap_content" android:id="@+id/name"
android:layout_height="wrap_content" android:layout_width="match_parent"
android:id="@+id/feedback" android:layout_height="wrap_content"
android:gravity="center" /> android:hint="@string/groups_create_group_hint"
android:inputType="text|textCapSentences"
android:maxLines="1"/>
</android.support.design.widget.TextInputLayout>
<Button <Button
style="@style/BriarButton"
android:id="@+id/button" android:id="@+id/button"
style="@style/BriarButton"
android:enabled="false" android:enabled="false"
android:text="@string/groups_create_group_button"/> android:text="@string/groups_create_group_button"/>
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:indeterminate="true"
android:visibility="gone"
tools:visibility="visible"/>
</LinearLayout> </LinearLayout>