diff --git a/res/menu/text_secure_normal.xml b/res/menu/text_secure_normal.xml index cb90a43076..875626f0f1 100644 --- a/res/menu/text_secure_normal.xml +++ b/res/menu/text_secure_normal.xml @@ -1,7 +1,13 @@ - + - + + diff --git a/res/values/strings.xml b/res/values/strings.xml index 3a1a2303d6..51065f8cc1 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1639,5 +1639,7 @@ Loki Messenger needs camera access to scan QR codes. Copy public key + + Add Public Chat diff --git a/src/org/thoughtcrime/securesms/ConversationListActivity.java b/src/org/thoughtcrime/securesms/ConversationListActivity.java index d28e2bfcbd..d51d1b3ce9 100644 --- a/src/org/thoughtcrime/securesms/ConversationListActivity.java +++ b/src/org/thoughtcrime/securesms/ConversationListActivity.java @@ -29,6 +29,7 @@ import android.support.annotation.NonNull; import android.support.v7.widget.Toolbar; import android.support.v7.widget.TooltipCompat; import android.view.Menu; +import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; @@ -44,6 +45,7 @@ import org.thoughtcrime.securesms.database.Address; import org.thoughtcrime.securesms.database.DatabaseFactory; import org.thoughtcrime.securesms.database.MessagingDatabase.MarkedMessageInfo; import org.thoughtcrime.securesms.lock.RegistrationLockDialog; +import org.thoughtcrime.securesms.loki.AddPublicChatActivity; import org.thoughtcrime.securesms.loki.JazzIdenticonDrawable; import org.thoughtcrime.securesms.notifications.MarkReadReceiver; import org.thoughtcrime.securesms.notifications.MessageNotifier; @@ -127,18 +129,15 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit @Override public boolean onPrepareOptionsMenu(Menu menu) { - return false; - /* MenuInflater inflater = this.getMenuInflater(); menu.clear(); inflater.inflate(R.menu.text_secure_normal, menu); - menu.findItem(R.id.menu_clear_passphrase).setVisible(!TextSecurePreferences.isPasswordDisabled(this)); +// menu.findItem(R.id.menu_clear_passphrase).setVisible(!TextSecurePreferences.isPasswordDisabled(this)); super.onPrepareOptionsMenu(menu); return true; - */ } private void initializeSearchListener() { @@ -235,12 +234,13 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit super.onOptionsItemSelected(item); switch (item.getItemId()) { - case R.id.menu_new_group: createGroup(); return true; - case R.id.menu_settings: handleDisplaySettings(); return true; - case R.id.menu_clear_passphrase: handleClearPassphrase(); return true; - case R.id.menu_mark_all_read: handleMarkAllRead(); return true; - case R.id.menu_invite: handleInvite(); return true; - case R.id.menu_help: handleHelp(); return true; +// case R.id.menu_new_group: createGroup(); return true; +// case R.id.menu_settings: handleDisplaySettings(); return true; +// case R.id.menu_clear_passphrase: handleClearPassphrase(); return true; +// case R.id.menu_mark_all_read: handleMarkAllRead(); return true; +// case R.id.menu_invite: handleInvite(); return true; +// case R.id.menu_help: handleHelp(); return true; + case R.id.menu_conversation_list_add_public_chat_option: addNewPublicChat(); return true; } return false; @@ -321,4 +321,8 @@ public class ConversationListActivity extends PassphraseRequiredActionBarActivit Toast.makeText(this, R.string.ConversationListActivity_there_is_no_browser_installed_on_your_device, Toast.LENGTH_LONG).show(); } } + + private void addNewPublicChat() { + startActivity(new Intent(this, AddPublicChatActivity.class)); + } } diff --git a/src/org/thoughtcrime/securesms/conversation/ConversationActivity.java b/src/org/thoughtcrime/securesms/conversation/ConversationActivity.java index b5e55c6020..39412b48ee 100644 --- a/src/org/thoughtcrime/securesms/conversation/ConversationActivity.java +++ b/src/org/thoughtcrime/securesms/conversation/ConversationActivity.java @@ -2766,15 +2766,13 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity if (isBackspace) { currentMentionStartIndex = -1; mentionCandidateSelectionView.hide(); - try { - for (Mention mention : mentions) { - if (!text.contains(mention.getDisplayName())) { - mentions.remove(mention); - } + ArrayList mentionsToRemove = new ArrayList<>(); + for (Mention mention : mentions) { + if (!text.contains(mention.getDisplayName())) { + mentionsToRemove.add(mention); } - } catch (Exception exception) { - mentions.clear(); // TODO: Dirty workaround for ConcurrentModificationException } + mentions.removeAll(mentionsToRemove); } if (text.length() > 0) { if (currentMentionStartIndex > text.length()) {