diff --git a/res/menu/conversation_context.xml b/res/menu/conversation_context.xml
index 6d7fe4295..e5955f5c4 100644
--- a/res/menu/conversation_context.xml
+++ b/res/menu/conversation_context.xml
@@ -18,7 +18,7 @@
+ app:showAsAction="always" />
- #32000000
- #ff1f1f1f
+ @color/gray65
#400099cc
#ffffffff
diff --git a/res/values/themes.xml b/res/values/themes.xml
index f174636de..51b4e11fd 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -115,6 +115,8 @@
- light
- @style/TextSecure.LightActionBar
- @style/TextSecure.LightActionBar.TabBar
+ - @color/gray50
+ - @drawable/ic_close_white_24dp
- @color/textsecure_primary
- @color/textsecure_primary_dark
- @color/textsecure_primary_dark
@@ -241,6 +243,8 @@
- @style/TextSecure.DarkActionBar
- @style/TextSecure.DarkActionBar.TabBar
- @style/ThemeOverlay.AppCompat.Dark
+ - @color/gray50
+ - @drawable/ic_close_white_24dp
- @color/text_color_dark_theme
- @color/text_color_secondary_dark_theme
- @color/textsecure_primary_dark
diff --git a/src/org/thoughtcrime/securesms/ConversationFragment.java b/src/org/thoughtcrime/securesms/ConversationFragment.java
index a98c25388..46191f985 100644
--- a/src/org/thoughtcrime/securesms/ConversationFragment.java
+++ b/src/org/thoughtcrime/securesms/ConversationFragment.java
@@ -201,6 +201,7 @@ public class ConversationFragment extends Fragment
private void setCorrectMenuVisibility(Menu menu) {
Set messageRecords = getListAdapter().getSelectedItems();
boolean actionMessage = false;
+ boolean mediaMessage = false;
if (actionMode != null && messageRecords.size() == 0) {
actionMode.finish();
@@ -215,6 +216,12 @@ public class ConversationFragment extends Fragment
{
actionMessage = true;
break;
+ } else if (messageRecord.isMms() &&
+ !messageRecord.isMmsNotification() &&
+ ((MediaMmsMessageRecord)messageRecord).containsMediaSlide())
+ {
+ mediaMessage = true;
+ break;
}
}
@@ -223,7 +230,7 @@ public class ConversationFragment extends Fragment
menu.findItem(R.id.menu_context_details).setVisible(false);
menu.findItem(R.id.menu_context_save_attachment).setVisible(false);
menu.findItem(R.id.menu_context_resend).setVisible(false);
- menu.findItem(R.id.menu_context_copy).setVisible(!actionMessage);
+ menu.findItem(R.id.menu_context_copy).setVisible(!actionMessage && !mediaMessage);
} else {
MessageRecord messageRecord = messageRecords.iterator().next();
@@ -235,7 +242,7 @@ public class ConversationFragment extends Fragment
menu.findItem(R.id.menu_context_forward).setVisible(!actionMessage);
menu.findItem(R.id.menu_context_details).setVisible(!actionMessage);
- menu.findItem(R.id.menu_context_copy).setVisible(!actionMessage);
+ menu.findItem(R.id.menu_context_copy).setVisible(!actionMessage && !mediaMessage);
}
}
@@ -578,7 +585,13 @@ public class ConversationFragment extends Fragment
((ConversationAdapter) list.getAdapter()).toggleSelection(messageRecord);
list.getAdapter().notifyDataSetChanged();
- setCorrectMenuVisibility(actionMode.getMenu());
+ if (getListAdapter().getSelectedItems().size() == 0) {
+ actionMode.finish();
+ } else {
+ setCorrectMenuVisibility(actionMode.getMenu());
+ actionMode.setTitle(String.valueOf(getListAdapter().getSelectedItems().size()));
+ }
+
}
}
@@ -602,6 +615,8 @@ public class ConversationFragment extends Fragment
MenuInflater inflater = mode.getMenuInflater();
inflater.inflate(R.menu.conversation_context, menu);
+ mode.setTitle("1");
+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getActivity().getWindow();
statusBarColor = window.getStatusBarColor();
diff --git a/src/org/thoughtcrime/securesms/ConversationListFragment.java b/src/org/thoughtcrime/securesms/ConversationListFragment.java
index c392f7ff9..531db2f93 100644
--- a/src/org/thoughtcrime/securesms/ConversationListFragment.java
+++ b/src/org/thoughtcrime/securesms/ConversationListFragment.java
@@ -322,8 +322,7 @@ public class ConversationListFragment extends Fragment
private void handleSelectAllThreads() {
getListAdapter().selectAllThreads();
- actionMode.setSubtitle(getString(R.string.conversation_fragment_cab__batch_selection_amount,
- String.valueOf(getListAdapter().getBatchSelections().size())));
+ actionMode.setTitle(String.valueOf(getListAdapter().getBatchSelections().size()));
}
private void handleCreateConversation(long threadId, Recipient recipient, int distributionType, long lastSeen) {
@@ -374,8 +373,7 @@ public class ConversationListFragment extends Fragment
if (adapter.getBatchSelections().size() == 0) {
actionMode.finish();
} else {
- actionMode.setSubtitle(getString(R.string.conversation_fragment_cab__batch_selection_amount,
- String.valueOf(adapter.getBatchSelections().size())));
+ actionMode.setTitle(String.valueOf(getListAdapter().getBatchSelections().size()));
}
adapter.notifyDataSetChanged();
@@ -410,8 +408,7 @@ public class ConversationListFragment extends Fragment
inflater.inflate(R.menu.conversation_list_batch, menu);
- mode.setTitle(R.string.conversation_fragment_cab__batch_selection_mode);
- mode.setSubtitle(getString(R.string.conversation_fragment_cab__batch_selection_amount, "1"));
+ mode.setTitle("1");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getActivity().getWindow().setStatusBarColor(getResources().getColor(R.color.action_mode_status_bar));