diff --git a/res/layout/conversation_activity.xml b/res/layout/conversation_activity.xml
index eb5d012f0f..42c80f875f 100644
--- a/res/layout/conversation_activity.xml
+++ b/res/layout/conversation_activity.xml
@@ -52,12 +52,6 @@
android:layout_height="match_parent"
android:layout_weight="1" />
-
-
diff --git a/res/layout/conversation_search_nav.xml b/res/layout/conversation_search_nav.xml
index 529a3be282..0a5cab6192 100644
--- a/res/layout/conversation_search_nav.xml
+++ b/res/layout/conversation_search_nav.xml
@@ -6,7 +6,7 @@
android:id="@+id/conversation_search_nav"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="?conversation_background"
+ android:background="@color/compose_view_background"
android:visibility="gone"
tools:visibility="visible"
tools:parentTag="android.support.constraint.ConstraintLayout">
diff --git a/res/menu/conversation.xml b/res/menu/conversation.xml
index cd33628267..4a7bb30912 100644
--- a/res/menu/conversation.xml
+++ b/res/menu/conversation.xml
@@ -8,7 +8,6 @@
-
- @color/accent
@color/accent
- #5578be20
+ #5500F782
#882090ea
@color/signal_primary
diff --git a/src/org/thoughtcrime/securesms/components/SendButton.java b/src/org/thoughtcrime/securesms/components/SendButton.java
index 476b99fa59..d6fa01746c 100644
--- a/src/org/thoughtcrime/securesms/components/SendButton.java
+++ b/src/org/thoughtcrime/securesms/components/SendButton.java
@@ -108,10 +108,10 @@ public class SendButton extends AppCompatImageButton
@Override
public boolean onLongClick(View v) {
- if (isEnabled() && transportOptions.getEnabledTransports().size() > 1) {
- getTransportOptionsPopup().display(transportOptions.getEnabledTransports());
- return true;
- }
+// if (isEnabled() && transportOptions.getEnabledTransports().size() > 1) {
+// getTransportOptionsPopup().display(transportOptions.getEnabledTransports());
+// return true;
+// }
return false;
}
diff --git a/src/org/thoughtcrime/securesms/conversation/ConversationActivity.java b/src/org/thoughtcrime/securesms/conversation/ConversationActivity.java
index 83daccb943..70d2f8d189 100644
--- a/src/org/thoughtcrime/securesms/conversation/ConversationActivity.java
+++ b/src/org/thoughtcrime/securesms/conversation/ConversationActivity.java
@@ -31,6 +31,7 @@ import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
+import android.graphics.PorterDuff;
import android.graphics.drawable.ColorDrawable;
import android.hardware.Camera;
import android.net.Uri;
@@ -45,14 +46,18 @@ import android.support.annotation.Nullable;
import android.support.v4.content.pm.ShortcutInfoCompat;
import android.support.v4.content.pm.ShortcutManagerCompat;
import android.support.v4.graphics.drawable.IconCompat;
+import android.support.v4.view.MenuItemCompat;
import android.support.v7.app.ActionBar;
import android.support.v7.app.AlertDialog;
+import android.support.v7.widget.SearchView;
import android.support.v7.widget.Toolbar;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.util.Pair;
import android.view.KeyEvent;
+import android.view.Menu;
+import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
@@ -204,6 +209,7 @@ import org.thoughtcrime.securesms.util.Dialogs;
import org.thoughtcrime.securesms.util.DirectoryHelper;
import org.thoughtcrime.securesms.util.DynamicLanguage;
import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme;
+import org.thoughtcrime.securesms.util.ExpirationUtil;
import org.thoughtcrime.securesms.util.GroupUtil;
import org.thoughtcrime.securesms.util.IdentityUtil;
import org.thoughtcrime.securesms.util.MediaUtil;
@@ -660,130 +666,130 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
}
}
-// @Override
-// public boolean onPrepareOptionsMenu(Menu menu) {
-// MenuInflater inflater = this.getMenuInflater();
-// menu.clear();
-//
-// boolean isLokiPublicChat = isGroupConversation(); // TODO: Figure out a better way of determining this
-//
-// if (isSecureText && !isLokiPublicChat) { // TODO:
-// if (recipient.getExpireMessages() > 0) {
-// inflater.inflate(R.menu.conversation_expiring_on, menu);
-//
-// final MenuItem item = menu.findItem(R.id.menu_expiring_messages);
-// final View actionView = MenuItemCompat.getActionView(item);
-// final TextView badgeView = actionView.findViewById(R.id.expiration_badge);
-//
-// badgeView.setText(ExpirationUtil.getExpirationAbbreviatedDisplayValue(this, recipient.getExpireMessages()));
-// actionView.setOnClickListener(v -> onOptionsItemSelected(item));
-// } else {
-// inflater.inflate(R.menu.conversation_expiring_off, menu);
-// }
-// }
-//
-// if (isSingleConversation()) {
-// /*
-// if (isSecureText) inflater.inflate(R.menu.conversation_callable_secure, menu);
-// else inflater.inflate(R.menu.conversation_callable_insecure, menu);
-// */
-// } else if (isGroupConversation() && !isLokiPublicChat) {
-// inflater.inflate(R.menu.conversation_group_options, menu);
-//
-// if (!isPushGroupConversation()) {
-// inflater.inflate(R.menu.conversation_mms_group_options, menu);
-// if (distributionType == ThreadDatabase.DistributionTypes.BROADCAST) {
-// menu.findItem(R.id.menu_distribution_broadcast).setChecked(true);
-// } else {
-// menu.findItem(R.id.menu_distribution_conversation).setChecked(true);
-// }
-// } else if (isActiveGroup()) {
-// inflater.inflate(R.menu.conversation_push_group_options, menu);
-// }
-// }
-//
-// inflater.inflate(R.menu.conversation, menu);
-//
-// if (isSingleConversation() && isSecureText) {
-// inflater.inflate(R.menu.conversation_secure, menu);
-// } else if (isSingleConversation()) {
-// inflater.inflate(R.menu.conversation_insecure, menu);
-// }
-//
-// if (recipient != null && recipient.isMuted()) inflater.inflate(R.menu.conversation_muted, menu);
-// else inflater.inflate(R.menu.conversation_unmuted, menu);
-//
-// /*
-// if (isSingleConversation() && getRecipient().getContactUri() == null) {
-// inflater.inflate(R.menu.conversation_add_to_contacts, menu);
-// }
-//
-//
-// if (recipient != null && recipient.isLocalNumber()) {
-// if (isSecureText) menu.findItem(R.id.menu_call_secure).setVisible(false);
-// else menu.findItem(R.id.menu_call_insecure).setVisible(false);
-//
-// MenuItem muteItem = menu.findItem(R.id.menu_mute_notifications);
-//
-// if (muteItem != null) {
-// muteItem.setVisible(false);
-// }
-// }
-// */
-//
-// searchViewItem = menu.findItem(R.id.menu_search);
-//
-// SearchView searchView = (SearchView) searchViewItem.getActionView();
-// SearchView.OnQueryTextListener queryListener = new SearchView.OnQueryTextListener() {
-// @Override
-// public boolean onQueryTextSubmit(String query) {
-// searchViewModel.onQueryUpdated(query, threadId);
-// searchNav.showLoading();
-// fragment.onSearchQueryUpdated(query);
-// return true;
-// }
-//
-// @Override
-// public boolean onQueryTextChange(String query) {
-// searchViewModel.onQueryUpdated(query, threadId);
-// searchNav.showLoading();
-// fragment.onSearchQueryUpdated(query);
-// return true;
-// }
-// };
-//
-// searchViewItem.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
-// @Override
-// public boolean onMenuItemActionExpand(MenuItem item) {
-// searchView.setOnQueryTextListener(queryListener);
-// searchViewModel.onSearchOpened();
-// searchNav.setVisibility(View.VISIBLE);
-// searchNav.setData(0, 0);
-// inputPanel.setVisibility(View.GONE);
-//
-// for (int i = 0; i < menu.size(); i++) {
-// if (!menu.getItem(i).equals(searchViewItem)) {
-// menu.getItem(i).setVisible(false);
-// }
-// }
-// return true;
-// }
-//
-// @Override
-// public boolean onMenuItemActionCollapse(MenuItem item) {
-// searchView.setOnQueryTextListener(null);
-// searchViewModel.onSearchClosed();
-// searchNav.setVisibility(View.GONE);
-// inputPanel.setVisibility(View.VISIBLE);
-// fragment.onSearchQueryUpdated(null);
-// invalidateOptionsMenu();
-// return true;
-// }
-// });
-//
-// super.onPrepareOptionsMenu(menu);
-// return true;
-// }
+ @Override
+ public boolean onPrepareOptionsMenu(Menu menu) {
+ MenuInflater inflater = this.getMenuInflater();
+ menu.clear();
+
+ boolean isLokiPublicChat = isGroupConversation(); // TODO: Figure out a better way of determining this
+
+ if (isSecureText && !isLokiPublicChat) { // TODO:
+ if (recipient.getExpireMessages() > 0) {
+ inflater.inflate(R.menu.conversation_expiring_on, menu);
+
+ final MenuItem item = menu.findItem(R.id.menu_expiring_messages);
+ final View actionView = MenuItemCompat.getActionView(item);
+ final TextView badgeView = actionView.findViewById(R.id.expiration_badge);
+
+ badgeView.setText(ExpirationUtil.getExpirationAbbreviatedDisplayValue(this, recipient.getExpireMessages()));
+ actionView.setOnClickListener(v -> onOptionsItemSelected(item));
+ } else {
+ inflater.inflate(R.menu.conversation_expiring_off, menu);
+ }
+ }
+
+ if (isSingleConversation()) {
+ /*
+ if (isSecureText) inflater.inflate(R.menu.conversation_callable_secure, menu);
+ else inflater.inflate(R.menu.conversation_callable_insecure, menu);
+ */
+ } else if (isGroupConversation() && !isLokiPublicChat) {
+ inflater.inflate(R.menu.conversation_group_options, menu);
+
+ if (!isPushGroupConversation()) {
+ inflater.inflate(R.menu.conversation_mms_group_options, menu);
+ if (distributionType == ThreadDatabase.DistributionTypes.BROADCAST) {
+ menu.findItem(R.id.menu_distribution_broadcast).setChecked(true);
+ } else {
+ menu.findItem(R.id.menu_distribution_conversation).setChecked(true);
+ }
+ } else if (isActiveGroup()) {
+ inflater.inflate(R.menu.conversation_push_group_options, menu);
+ }
+ }
+
+ inflater.inflate(R.menu.conversation, menu);
+
+ if (isSingleConversation() && isSecureText) {
+ inflater.inflate(R.menu.conversation_secure, menu);
+ } else if (isSingleConversation()) {
+ inflater.inflate(R.menu.conversation_insecure, menu);
+ }
+
+ if (recipient != null && recipient.isMuted()) inflater.inflate(R.menu.conversation_muted, menu);
+ else inflater.inflate(R.menu.conversation_unmuted, menu);
+
+ /*
+ if (isSingleConversation() && getRecipient().getContactUri() == null) {
+ inflater.inflate(R.menu.conversation_add_to_contacts, menu);
+ }
+
+
+ if (recipient != null && recipient.isLocalNumber()) {
+ if (isSecureText) menu.findItem(R.id.menu_call_secure).setVisible(false);
+ else menu.findItem(R.id.menu_call_insecure).setVisible(false);
+
+ MenuItem muteItem = menu.findItem(R.id.menu_mute_notifications);
+
+ if (muteItem != null) {
+ muteItem.setVisible(false);
+ }
+ }
+ */
+
+ searchViewItem = menu.findItem(R.id.menu_search);
+
+ SearchView searchView = (SearchView) searchViewItem.getActionView();
+ SearchView.OnQueryTextListener queryListener = new SearchView.OnQueryTextListener() {
+ @Override
+ public boolean onQueryTextSubmit(String query) {
+ searchViewModel.onQueryUpdated(query, threadId);
+ searchNav.showLoading();
+ fragment.onSearchQueryUpdated(query);
+ return true;
+ }
+
+ @Override
+ public boolean onQueryTextChange(String query) {
+ searchViewModel.onQueryUpdated(query, threadId);
+ searchNav.showLoading();
+ fragment.onSearchQueryUpdated(query);
+ return true;
+ }
+ };
+
+ searchViewItem.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
+ @Override
+ public boolean onMenuItemActionExpand(MenuItem item) {
+ searchView.setOnQueryTextListener(queryListener);
+ searchViewModel.onSearchOpened();
+ searchNav.setVisibility(View.VISIBLE);
+ searchNav.setData(0, 0);
+ inputPanel.setVisibility(View.GONE);
+
+ for (int i = 0; i < menu.size(); i++) {
+ if (!menu.getItem(i).equals(searchViewItem)) {
+ menu.getItem(i).setVisible(false);
+ }
+ }
+ return true;
+ }
+
+ @Override
+ public boolean onMenuItemActionCollapse(MenuItem item) {
+ searchView.setOnQueryTextListener(null);
+ searchViewModel.onSearchClosed();
+ searchNav.setVisibility(View.GONE);
+ inputPanel.setVisibility(View.VISIBLE);
+ fragment.onSearchQueryUpdated(null);
+ invalidateOptionsMenu();
+ return true;
+ }
+ });
+
+ super.onPrepareOptionsMenu(menu);
+ return true;
+ }
@Override
public boolean onOptionsItemSelected(MenuItem item) {
@@ -1640,6 +1646,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
protected void initializeActionBar() {
Toolbar toolbar = findViewById(R.id.toolbar);
+ toolbar.getOverflowIcon().setColorFilter(Color.WHITE, PorterDuff.Mode.SRC_IN);
setSupportActionBar(toolbar);
ActionBar supportActionBar = getSupportActionBar();
@@ -2933,7 +2940,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
@Override
public void onMessageActionToolbarOpened() {
- // searchViewItem.collapseActionView();
+ searchViewItem.collapseActionView();
}
@Override
diff --git a/src/org/thoughtcrime/securesms/conversation/ConversationItem.java b/src/org/thoughtcrime/securesms/conversation/ConversationItem.java
index 10961b3f12..e10b972cbb 100644
--- a/src/org/thoughtcrime/securesms/conversation/ConversationItem.java
+++ b/src/org/thoughtcrime/securesms/conversation/ConversationItem.java
@@ -486,7 +486,7 @@ public class ConversationItem extends LinearLayout
bodyText.setVisibility(View.GONE);
} else {
Spannable text = MentionUtilities.highlightMentions(linkifyMessageBody(messageRecord.getDisplayBody(context), batchSelected.isEmpty()), messageRecord.isOutgoing(), messageRecord.getThreadId(), context);
- text = SearchUtil.getHighlightedSpan(locale, () -> new BackgroundColorSpan(Color.YELLOW), text, searchQuery);
+ text = SearchUtil.getHighlightedSpan(locale, () -> new BackgroundColorSpan(Color.WHITE), text, searchQuery);
text = SearchUtil.getHighlightedSpan(locale, () -> new ForegroundColorSpan(Color.BLACK), text, searchQuery);
if (hasExtraText(messageRecord)) {