From 920f3581fa94d9a53b115c6d3bbcb499231cc484 Mon Sep 17 00:00:00 2001 From: Torsten Grote <t@grobox.de> Date: Mon, 17 Apr 2017 16:07:37 -0300 Subject: [PATCH] Show text input permanently in threaded conversations --- .../briar/android/forum/ForumActivity.java | 3 -- .../conversation/GroupActivity.java | 13 ++--- .../android/threaded/ThreadListActivity.java | 47 +++++-------------- .../main/res/drawable/chevron48dp_down.xml | 9 ---- .../src/main/res/drawable/chevron48dp_up.xml | 9 ---- .../main/res/drawable/selector_chevron.xml | 5 -- .../src/main/res/menu/forum_actions.xml | 6 --- .../src/main/res/menu/group_actions.xml | 6 --- briar-android/src/main/res/values/color.xml | 1 - briar-android/src/main/res/values/strings.xml | 6 --- 10 files changed, 18 insertions(+), 87 deletions(-) delete mode 100644 briar-android/src/main/res/drawable/chevron48dp_down.xml delete mode 100644 briar-android/src/main/res/drawable/chevron48dp_up.xml delete mode 100644 briar-android/src/main/res/drawable/selector_chevron.xml diff --git a/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumActivity.java index 19173ac7fe..2af57aa1a0 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/forum/ForumActivity.java @@ -116,9 +116,6 @@ public class ForumActivity extends public boolean onOptionsItemSelected(final MenuItem item) { // Handle presses on the action bar items switch (item.getItemId()) { - case R.id.action_forum_compose_post: - showTextInput(null); - return true; case R.id.action_forum_share: Intent i2 = new Intent(this, ShareForumActivity.class); i2.setFlags(FLAG_ACTIVITY_CLEAR_TOP); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java index feaddbec9c..c19aa38a26 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/privategroup/conversation/GroupActivity.java @@ -37,6 +37,7 @@ import javax.annotation.Nullable; import javax.inject.Inject; import static android.view.View.GONE; +import static android.view.View.VISIBLE; import static org.briarproject.briar.android.activity.RequestCodes.REQUEST_GROUP_INVITE; import static org.briarproject.briar.api.privategroup.PrivateGroupConstants.MAX_GROUP_POST_BODY_LENGTH; @@ -50,8 +51,8 @@ public class GroupActivity extends GroupController controller; private boolean isCreator, isDissolved = false; - private MenuItem writeMenuItem, revealMenuItem, inviteMenuItem, - leaveMenuItem, dissolveMenuItem; + private MenuItem revealMenuItem, inviteMenuItem, leaveMenuItem, + dissolveMenuItem; @Override public void injectActivity(ActivityComponent component) { @@ -139,7 +140,6 @@ public class GroupActivity extends MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.group_actions, menu); - writeMenuItem = menu.findItem(R.id.action_group_compose_message); revealMenuItem = menu.findItem(R.id.action_group_reveal); inviteMenuItem = menu.findItem(R.id.action_group_invite); leaveMenuItem = menu.findItem(R.id.action_group_leave); @@ -152,9 +152,6 @@ public class GroupActivity extends @Override public boolean onOptionsItemSelected(final MenuItem item) { switch (item.getItemId()) { - case R.id.action_group_compose_message: - showTextInput(null); - return true; case R.id.action_group_member_list: Intent i1 = new Intent(this, GroupMemberListActivity.class); i1.putExtra(GROUP_ID, groupId.getBytes()); @@ -205,7 +202,6 @@ public class GroupActivity extends private void setGroupEnabled(boolean enabled) { isDissolved = !enabled; - if (writeMenuItem != null) writeMenuItem.setVisible(enabled); textInput.setSendButtonEnabled(enabled); list.getRecyclerView().setAlpha(enabled ? 1f : 0.5f); @@ -213,6 +209,8 @@ public class GroupActivity extends textInput.setVisibility(GONE); if (textInput.isKeyboardOpen()) textInput.hideSoftKeyboard(); if (textInput.isEmojiDrawerOpen()) textInput.hideEmojiDrawer(); + } else { + textInput.setVisibility(VISIBLE); } } @@ -229,7 +227,6 @@ public class GroupActivity extends leaveMenuItem.setVisible(true); dissolveMenuItem.setVisible(false); } - writeMenuItem.setVisible(!isDissolved); } private void showLeaveGroupDialog() { diff --git a/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadListActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadListActivity.java index 77ef469716..8106be7edb 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadListActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadListActivity.java @@ -43,8 +43,6 @@ import javax.inject.Inject; import static android.support.design.widget.Snackbar.make; import static android.support.v7.widget.RecyclerView.NO_POSITION; import static android.support.v7.widget.RecyclerView.SCROLL_STATE_IDLE; -import static android.view.View.GONE; -import static android.view.View.VISIBLE; import static java.util.logging.Level.INFO; import static org.briarproject.briar.android.threaded.ThreadItemAdapter.UnreadCount; @@ -55,7 +53,6 @@ public abstract class ThreadListActivity<G extends NamedGroup, A extends ThreadI implements ThreadListListener<H>, TextInputListener, SharingListener, ThreadItemListener<I> { - protected static final String KEY_INPUT_VISIBILITY = "inputVisibility"; protected static final String KEY_REPLY_ID = "replyId"; private static final Logger LOG = @@ -89,7 +86,6 @@ public abstract class ThreadListActivity<G extends NamedGroup, A extends ThreadI getController().setGroupId(groupId); textInput = (TextInputView) findViewById(R.id.text_input_container); - textInput.setVisibility(GONE); textInput.setListener(this); list = (BriarRecyclerView) findViewById(R.id.list); layoutManager = new LinearLayoutManager(this); @@ -181,8 +177,7 @@ public abstract class ThreadListActivity<G extends NamedGroup, A extends ThreadI } else { adapter.setItems(items); list.showData(); - if (replyId != null) - adapter.setHighlightedItem(replyId); + updateTextInput(replyId); } } else { LOG.info("Concurrent update, reloading"); @@ -231,18 +226,9 @@ public abstract class ThreadListActivity<G extends NamedGroup, A extends ThreadI list.stopPeriodicUpdate(); } - @Override - protected void onRestoreInstanceState(Bundle savedInstanceState) { - super.onRestoreInstanceState(savedInstanceState); - boolean visible = savedInstanceState.getBoolean(KEY_INPUT_VISIBILITY); - textInput.setVisibility(visible ? VISIBLE : GONE); - } - @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); - boolean visible = textInput.getVisibility() == VISIBLE; - outState.putBoolean(KEY_INPUT_VISIBILITY, visible); ThreadItem replyItem = adapter.getHighlightedItem(); if (replyItem != null) { outState.putByteArray(KEY_REPLY_ID, replyItem.getId().getBytes()); @@ -262,9 +248,8 @@ public abstract class ThreadListActivity<G extends NamedGroup, A extends ThreadI @Override public void onBackPressed() { - if (textInput.getVisibility() == VISIBLE) { - textInput.setVisibility(GONE); - adapter.setHighlightedItem(null); + if (adapter.getHighlightedItem() != null) { + updateTextInput(null); } else { super.onBackPressed(); } @@ -280,7 +265,7 @@ public abstract class ThreadListActivity<G extends NamedGroup, A extends ThreadI @Override public void onReplyClick(final I item) { - showTextInput(item); + updateTextInput(item.getId()); if (textInput.isKeyboardOpen()) { scrollToItemAtTop(item); } else { @@ -330,20 +315,15 @@ public abstract class ThreadListActivity<G extends NamedGroup, A extends ThreadI snackbar.show(); } - protected void showTextInput(@Nullable I replyItem) { - // An animation here would be an overkill because of the keyboard - // popping up. - // only clear the text when the input container was not visible - if (textInput.getVisibility() != VISIBLE) { - textInput.setVisibility(VISIBLE); - textInput.setText(""); + private void updateTextInput(@Nullable MessageId replyItemId) { + if (replyItemId != null) { + textInput.setHint(R.string.forum_message_reply_hint); + textInput.requestFocus(); + textInput.showSoftKeyboard(); + } else { + textInput.setHint(R.string.forum_new_message_hint); } - textInput.requestFocus(); - textInput.showSoftKeyboard(); - textInput.setHint(replyItem == null ? R.string.forum_new_message_hint : - R.string.forum_message_reply_hint); - adapter.setHighlightedItem( - replyItem == null ? null : replyItem.getId()); + adapter.setHighlightedItem(replyItemId); } @Override @@ -369,9 +349,8 @@ public abstract class ThreadListActivity<G extends NamedGroup, A extends ThreadI }; getController().createAndStoreMessage(text, replyItem, handler); textInput.hideSoftKeyboard(); - textInput.setVisibility(GONE); textInput.setText(""); - adapter.setHighlightedItem(null); + updateTextInput(null); } protected abstract int getMaxBodyLength(); diff --git a/briar-android/src/main/res/drawable/chevron48dp_down.xml b/briar-android/src/main/res/drawable/chevron48dp_down.xml deleted file mode 100644 index 6f1f305dfa..0000000000 --- a/briar-android/src/main/res/drawable/chevron48dp_down.xml +++ /dev/null @@ -1,9 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportHeight="48.0" - android:viewportWidth="48.0"> - <path - android:fillColor="#06b9ff" - android:pathData="M9.1,19.3l14.9,11.8l14.9,-11.8l-1.9,-2.4l-13,10.4l-13,-10.4z"/> -</vector> diff --git a/briar-android/src/main/res/drawable/chevron48dp_up.xml b/briar-android/src/main/res/drawable/chevron48dp_up.xml deleted file mode 100644 index 50894206ec..0000000000 --- a/briar-android/src/main/res/drawable/chevron48dp_up.xml +++ /dev/null @@ -1,9 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportHeight="48.0" - android:viewportWidth="48.0"> - <path - android:fillColor="#06b9ff" - android:pathData="M38.9,28.7l-14.9,-11.8l-14.9,11.8l1.9,2.4l13,-10.4l13,10.4z"/> -</vector> diff --git a/briar-android/src/main/res/drawable/selector_chevron.xml b/briar-android/src/main/res/drawable/selector_chevron.xml deleted file mode 100644 index f3a72a87dd..0000000000 --- a/briar-android/src/main/res/drawable/selector_chevron.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<selector xmlns:android="http://schemas.android.com/apk/res/android"> - <item android:drawable="@drawable/chevron48dp_down" android:state_selected="true"/> - <item android:drawable="@drawable/chevron48dp_up"/> -</selector> \ No newline at end of file diff --git a/briar-android/src/main/res/menu/forum_actions.xml b/briar-android/src/main/res/menu/forum_actions.xml index cd4e4573c5..349f705829 100644 --- a/briar-android/src/main/res/menu/forum_actions.xml +++ b/briar-android/src/main/res/menu/forum_actions.xml @@ -3,12 +3,6 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> - <item - android:id="@+id/action_forum_compose_post" - android:icon="@drawable/forum_item_create_white" - android:title="@string/forum_compose_post" - app:showAsAction="always"/> - <item android:id="@+id/action_forum_share" android:icon="@drawable/social_share_white" diff --git a/briar-android/src/main/res/menu/group_actions.xml b/briar-android/src/main/res/menu/group_actions.xml index a67e732998..2f4315a752 100644 --- a/briar-android/src/main/res/menu/group_actions.xml +++ b/briar-android/src/main/res/menu/group_actions.xml @@ -3,12 +3,6 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> - <item - android:id="@+id/action_group_compose_message" - android:icon="@drawable/forum_item_create_white" - android:title="@string/groups_compose_message" - app:showAsAction="always"/> - <item android:id="@+id/action_group_member_list" android:icon="@drawable/ic_group_white" diff --git a/briar-android/src/main/res/values/color.xml b/briar-android/src/main/res/values/color.xml index daf3f8b3b2..73ad5b8752 100644 --- a/briar-android/src/main/res/values/color.xml +++ b/briar-android/src/main/res/values/color.xml @@ -34,7 +34,6 @@ <!-- this is needed as preference_category_material layout uses this color as the text color --> <color name="preference_fallback_accent_color">@color/briar_accent</color> <color name="divider">#c1c1c1</color> - <color name="default_separator_inverted">#ffffff</color> <color name="menu_background">#FFFFFF</color> <color name="spinner_border">#61000000</color> <!-- 38% Black --> diff --git a/briar-android/src/main/res/values/strings.xml b/briar-android/src/main/res/values/strings.xml index 3c8a448830..42d6ba9f20 100644 --- a/briar-android/src/main/res/values/strings.xml +++ b/briar-android/src/main/res/values/strings.xml @@ -162,7 +162,6 @@ <string name="groups_create_group_invitation_button">Send Invitation</string> <string name="groups_create_group_hint">Add a name for your private group</string> <string name="groups_invitation_sent">Group invitation has been sent</string> - <string name="groups_compose_message">Compose Message</string> <string name="groups_message_sent">Message sent</string> <string name="groups_member_list">Member List</string> <string name="groups_invite_members">Invite Members</string> @@ -216,15 +215,10 @@ <item quantity="one">%d post</item> <item quantity="other">%d posts</item> </plurals> - <string name="forum_compose_post">New Forum Post</string> <string name="forum_new_entry_posted">Forum entry posted</string> <string name="forum_new_message_hint">New Entry</string> <string name="forum_message_reply_hint">New Reply</string> <string name="btn_reply">Reply</string> - <plurals name="message_replies"> - <item quantity="one">%1$d reply</item> - <item quantity="other">%1$d replies</item> - </plurals> <string name="forum_leave">Leave Forum</string> <string name="dialog_title_leave_forum">Confirm Leaving Forum</string> <string name="dialog_message_leave_forum">Are you sure that you want to leave this forum? Contacts you have shared this forum with might get cut off from receiving updates for this forum.</string> -- GitLab