diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java
index e63a44927..0795c13f7 100644
--- a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java
@@ -7,11 +7,13 @@ import android.app.FragmentTransaction;
import android.app.PendingIntent;
import android.content.ActivityNotFoundException;
import android.content.ClipData;
+import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.content.IntentSender.SendIntentException;
import android.content.pm.PackageManager;
+import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
@@ -20,6 +22,8 @@ import android.provider.MediaStore;
import android.provider.Settings;
import android.support.v4.widget.SlidingPaneLayout;
import android.support.v4.widget.SlidingPaneLayout.PanelSlideListener;
+import android.text.SpannableStringBuilder;
+import android.text.style.ImageSpan;
import android.util.Log;
import android.util.Pair;
import android.view.Gravity;
@@ -775,6 +779,24 @@ public class ConversationActivity extends XmppActivity
builder.create().show();
}
+ /**
+ * Moves icons from the PopupMenu's MenuItems' icon fields into the menu title as a Spannable with the icon and title text.
+ */
+ public static void insertMenuItemIcons(Context context, PopupMenu popupMenu) {
+ Menu menu = popupMenu.getMenu();
+ for (int i = 0; i < menu.size(); i++) {
+ MenuItem menuItem = menu.getItem(i);
+ Drawable icon = menuItem.getIcon();
+ int iconSize = context.getResources().getDimensionPixelSize(R.dimen.menu_item_icon_size);
+ icon.setBounds(0, 0, iconSize, iconSize);
+ ImageSpan imageSpan = new ImageSpan(icon);
+ SpannableStringBuilder ssb = new SpannableStringBuilder(" " + menuItem.getTitle());
+ ssb.setSpan(imageSpan, 0, 1, 0);
+ menuItem.setTitle(ssb);
+ menuItem.setIcon(null);
+ }
+ }
+
protected void attachFileDialog() {
View menuAttachFile = findViewById(R.id.action_attach_file);
if (menuAttachFile == null) {
@@ -812,6 +834,7 @@ public class ConversationActivity extends XmppActivity
return false;
}
});
+ insertMenuItemIcons(getApplicationContext(), attachFilePopup);
attachFilePopup.show();
}
diff --git a/src/main/res/drawable-hdpi/ic_attach_camera.png b/src/main/res/drawable-hdpi/ic_attach_camera.png
new file mode 100644
index 000000000..a11c82357
Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_attach_camera.png differ
diff --git a/src/main/res/drawable-hdpi/ic_attach_camera_white.png b/src/main/res/drawable-hdpi/ic_attach_camera_white.png
new file mode 100644
index 000000000..497c88ca8
Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_attach_camera_white.png differ
diff --git a/src/main/res/drawable-hdpi/ic_attach_document.png b/src/main/res/drawable-hdpi/ic_attach_document.png
new file mode 100644
index 000000000..e0dfc2bf6
Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_attach_document.png differ
diff --git a/src/main/res/drawable-hdpi/ic_attach_document_white.png b/src/main/res/drawable-hdpi/ic_attach_document_white.png
new file mode 100644
index 000000000..e8f96367c
Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_attach_document_white.png differ
diff --git a/src/main/res/drawable-hdpi/ic_attach_location.png b/src/main/res/drawable-hdpi/ic_attach_location.png
new file mode 100644
index 000000000..53ba4eca4
Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_attach_location.png differ
diff --git a/src/main/res/drawable-hdpi/ic_attach_location_white.png b/src/main/res/drawable-hdpi/ic_attach_location_white.png
new file mode 100644
index 000000000..7c281c3f5
Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_attach_location_white.png differ
diff --git a/src/main/res/drawable-hdpi/ic_attach_photo.png b/src/main/res/drawable-hdpi/ic_attach_photo.png
new file mode 100644
index 000000000..3ccd77022
Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_attach_photo.png differ
diff --git a/src/main/res/drawable-hdpi/ic_attach_photo_white.png b/src/main/res/drawable-hdpi/ic_attach_photo_white.png
new file mode 100644
index 000000000..25a9576dd
Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_attach_photo_white.png differ
diff --git a/src/main/res/drawable-hdpi/ic_attach_record.png b/src/main/res/drawable-hdpi/ic_attach_record.png
new file mode 100644
index 000000000..8c12041ca
Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_attach_record.png differ
diff --git a/src/main/res/drawable-hdpi/ic_attach_record_white.png b/src/main/res/drawable-hdpi/ic_attach_record_white.png
new file mode 100644
index 000000000..f316b84b7
Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_attach_record_white.png differ
diff --git a/src/main/res/drawable-hdpi/ic_send_file_offline.png b/src/main/res/drawable-hdpi/ic_send_file_offline.png
new file mode 100644
index 000000000..9a192bcab
Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_send_file_offline.png differ
diff --git a/src/main/res/drawable-hdpi/ic_send_file_offline_white.png b/src/main/res/drawable-hdpi/ic_send_file_offline_white.png
new file mode 100644
index 000000000..79228c9c8
Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_send_file_offline_white.png differ
diff --git a/src/main/res/drawable-mdpi/ic_attach_camera.png b/src/main/res/drawable-mdpi/ic_attach_camera.png
new file mode 100644
index 000000000..4f9c27db1
Binary files /dev/null and b/src/main/res/drawable-mdpi/ic_attach_camera.png differ
diff --git a/src/main/res/drawable-mdpi/ic_attach_camera_white.png b/src/main/res/drawable-mdpi/ic_attach_camera_white.png
new file mode 100644
index 000000000..e83052200
Binary files /dev/null and b/src/main/res/drawable-mdpi/ic_attach_camera_white.png differ
diff --git a/src/main/res/drawable-mdpi/ic_attach_document.png b/src/main/res/drawable-mdpi/ic_attach_document.png
new file mode 100644
index 000000000..0ccf7dd68
Binary files /dev/null and b/src/main/res/drawable-mdpi/ic_attach_document.png differ
diff --git a/src/main/res/drawable-mdpi/ic_attach_document_white.png b/src/main/res/drawable-mdpi/ic_attach_document_white.png
new file mode 100644
index 000000000..2f36ec397
Binary files /dev/null and b/src/main/res/drawable-mdpi/ic_attach_document_white.png differ
diff --git a/src/main/res/drawable-mdpi/ic_attach_location.png b/src/main/res/drawable-mdpi/ic_attach_location.png
new file mode 100644
index 000000000..dbdabfa49
Binary files /dev/null and b/src/main/res/drawable-mdpi/ic_attach_location.png differ
diff --git a/src/main/res/drawable-mdpi/ic_attach_location_white.png b/src/main/res/drawable-mdpi/ic_attach_location_white.png
new file mode 100644
index 000000000..933eb5148
Binary files /dev/null and b/src/main/res/drawable-mdpi/ic_attach_location_white.png differ
diff --git a/src/main/res/drawable-mdpi/ic_attach_photo.png b/src/main/res/drawable-mdpi/ic_attach_photo.png
new file mode 100644
index 000000000..615557977
Binary files /dev/null and b/src/main/res/drawable-mdpi/ic_attach_photo.png differ
diff --git a/src/main/res/drawable-mdpi/ic_attach_photo_white.png b/src/main/res/drawable-mdpi/ic_attach_photo_white.png
new file mode 100644
index 000000000..d474bd577
Binary files /dev/null and b/src/main/res/drawable-mdpi/ic_attach_photo_white.png differ
diff --git a/src/main/res/drawable-mdpi/ic_attach_record.png b/src/main/res/drawable-mdpi/ic_attach_record.png
new file mode 100644
index 000000000..8dc527d4c
Binary files /dev/null and b/src/main/res/drawable-mdpi/ic_attach_record.png differ
diff --git a/src/main/res/drawable-mdpi/ic_attach_record_white.png b/src/main/res/drawable-mdpi/ic_attach_record_white.png
new file mode 100644
index 000000000..87319a6cc
Binary files /dev/null and b/src/main/res/drawable-mdpi/ic_attach_record_white.png differ
diff --git a/src/main/res/drawable-mdpi/ic_send_file_offline.png b/src/main/res/drawable-mdpi/ic_send_file_offline.png
new file mode 100644
index 000000000..ab46a6802
Binary files /dev/null and b/src/main/res/drawable-mdpi/ic_send_file_offline.png differ
diff --git a/src/main/res/drawable-mdpi/ic_send_file_offline_white.png b/src/main/res/drawable-mdpi/ic_send_file_offline_white.png
new file mode 100644
index 000000000..1e30c5a93
Binary files /dev/null and b/src/main/res/drawable-mdpi/ic_send_file_offline_white.png differ
diff --git a/src/main/res/drawable-xhdpi/ic_attach_camera.png b/src/main/res/drawable-xhdpi/ic_attach_camera.png
new file mode 100644
index 000000000..0fb33537d
Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_attach_camera.png differ
diff --git a/src/main/res/drawable-xhdpi/ic_attach_camera_white.png b/src/main/res/drawable-xhdpi/ic_attach_camera_white.png
new file mode 100644
index 000000000..be9fb226a
Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_attach_camera_white.png differ
diff --git a/src/main/res/drawable-xhdpi/ic_attach_document.png b/src/main/res/drawable-xhdpi/ic_attach_document.png
new file mode 100644
index 000000000..4d6053c10
Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_attach_document.png differ
diff --git a/src/main/res/drawable-xhdpi/ic_attach_document_white.png b/src/main/res/drawable-xhdpi/ic_attach_document_white.png
new file mode 100644
index 000000000..53083487f
Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_attach_document_white.png differ
diff --git a/src/main/res/drawable-xhdpi/ic_attach_location.png b/src/main/res/drawable-xhdpi/ic_attach_location.png
new file mode 100644
index 000000000..43c43f3a0
Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_attach_location.png differ
diff --git a/src/main/res/drawable-xhdpi/ic_attach_location_white.png b/src/main/res/drawable-xhdpi/ic_attach_location_white.png
new file mode 100644
index 000000000..814ca8ddc
Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_attach_location_white.png differ
diff --git a/src/main/res/drawable-xhdpi/ic_attach_photo.png b/src/main/res/drawable-xhdpi/ic_attach_photo.png
new file mode 100644
index 000000000..6da919287
Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_attach_photo.png differ
diff --git a/src/main/res/drawable-xhdpi/ic_attach_photo_white.png b/src/main/res/drawable-xhdpi/ic_attach_photo_white.png
new file mode 100644
index 000000000..2642b9e09
Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_attach_photo_white.png differ
diff --git a/src/main/res/drawable-xhdpi/ic_attach_record.png b/src/main/res/drawable-xhdpi/ic_attach_record.png
new file mode 100644
index 000000000..6af0b11c2
Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_attach_record.png differ
diff --git a/src/main/res/drawable-xhdpi/ic_attach_record_white.png b/src/main/res/drawable-xhdpi/ic_attach_record_white.png
new file mode 100644
index 000000000..9f44db5d2
Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_attach_record_white.png differ
diff --git a/src/main/res/drawable-xhdpi/ic_send_file_offline.png b/src/main/res/drawable-xhdpi/ic_send_file_offline.png
new file mode 100644
index 000000000..59edcde2f
Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_send_file_offline.png differ
diff --git a/src/main/res/drawable-xhdpi/ic_send_file_offline_white.png b/src/main/res/drawable-xhdpi/ic_send_file_offline_white.png
new file mode 100644
index 000000000..b24d12323
Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_send_file_offline_white.png differ
diff --git a/src/main/res/drawable-xxhdpi/ic_attach_camera.png b/src/main/res/drawable-xxhdpi/ic_attach_camera.png
new file mode 100644
index 000000000..2829a36ec
Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_attach_camera.png differ
diff --git a/src/main/res/drawable-xxhdpi/ic_attach_camera_white.png b/src/main/res/drawable-xxhdpi/ic_attach_camera_white.png
new file mode 100644
index 000000000..c8e69dceb
Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_attach_camera_white.png differ
diff --git a/src/main/res/drawable-xxhdpi/ic_attach_document.png b/src/main/res/drawable-xxhdpi/ic_attach_document.png
new file mode 100644
index 000000000..49edf9509
Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_attach_document.png differ
diff --git a/src/main/res/drawable-xxhdpi/ic_attach_document_white.png b/src/main/res/drawable-xxhdpi/ic_attach_document_white.png
new file mode 100644
index 000000000..9b7071b71
Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_attach_document_white.png differ
diff --git a/src/main/res/drawable-xxhdpi/ic_attach_location.png b/src/main/res/drawable-xxhdpi/ic_attach_location.png
new file mode 100644
index 000000000..1360bd5f8
Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_attach_location.png differ
diff --git a/src/main/res/drawable-xxhdpi/ic_attach_location_white.png b/src/main/res/drawable-xxhdpi/ic_attach_location_white.png
new file mode 100644
index 000000000..078b10d4f
Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_attach_location_white.png differ
diff --git a/src/main/res/drawable-xxhdpi/ic_attach_photo.png b/src/main/res/drawable-xxhdpi/ic_attach_photo.png
new file mode 100644
index 000000000..f2925e4ef
Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_attach_photo.png differ
diff --git a/src/main/res/drawable-xxhdpi/ic_attach_photo_white.png b/src/main/res/drawable-xxhdpi/ic_attach_photo_white.png
new file mode 100644
index 000000000..f9f1defa6
Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_attach_photo_white.png differ
diff --git a/src/main/res/drawable-xxhdpi/ic_attach_record.png b/src/main/res/drawable-xxhdpi/ic_attach_record.png
new file mode 100644
index 000000000..9f2d6ca9e
Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_attach_record.png differ
diff --git a/src/main/res/drawable-xxhdpi/ic_attach_record_white.png b/src/main/res/drawable-xxhdpi/ic_attach_record_white.png
new file mode 100644
index 000000000..b0389382e
Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_attach_record_white.png differ
diff --git a/src/main/res/drawable-xxhdpi/ic_send_file_offline.png b/src/main/res/drawable-xxhdpi/ic_send_file_offline.png
new file mode 100644
index 000000000..a1ddb8ec2
Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_send_file_offline.png differ
diff --git a/src/main/res/drawable-xxhdpi/ic_send_file_offline_white.png b/src/main/res/drawable-xxhdpi/ic_send_file_offline_white.png
new file mode 100644
index 000000000..3c3114999
Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_send_file_offline_white.png differ
diff --git a/src/main/res/drawable-xxxhdpi/ic_attach_camera.png b/src/main/res/drawable-xxxhdpi/ic_attach_camera.png
new file mode 100644
index 000000000..566cba549
Binary files /dev/null and b/src/main/res/drawable-xxxhdpi/ic_attach_camera.png differ
diff --git a/src/main/res/drawable-xxxhdpi/ic_attach_camera_white.png b/src/main/res/drawable-xxxhdpi/ic_attach_camera_white.png
new file mode 100644
index 000000000..777658e95
Binary files /dev/null and b/src/main/res/drawable-xxxhdpi/ic_attach_camera_white.png differ
diff --git a/src/main/res/drawable-xxxhdpi/ic_attach_document.png b/src/main/res/drawable-xxxhdpi/ic_attach_document.png
new file mode 100644
index 000000000..0831e0e96
Binary files /dev/null and b/src/main/res/drawable-xxxhdpi/ic_attach_document.png differ
diff --git a/src/main/res/drawable-xxxhdpi/ic_attach_document_white.png b/src/main/res/drawable-xxxhdpi/ic_attach_document_white.png
new file mode 100644
index 000000000..f89ffeb30
Binary files /dev/null and b/src/main/res/drawable-xxxhdpi/ic_attach_document_white.png differ
diff --git a/src/main/res/drawable-xxxhdpi/ic_attach_location.png b/src/main/res/drawable-xxxhdpi/ic_attach_location.png
new file mode 100644
index 000000000..9c21f9d19
Binary files /dev/null and b/src/main/res/drawable-xxxhdpi/ic_attach_location.png differ
diff --git a/src/main/res/drawable-xxxhdpi/ic_attach_location_white.png b/src/main/res/drawable-xxxhdpi/ic_attach_location_white.png
new file mode 100644
index 000000000..8bcb6f620
Binary files /dev/null and b/src/main/res/drawable-xxxhdpi/ic_attach_location_white.png differ
diff --git a/src/main/res/drawable-xxxhdpi/ic_attach_photo.png b/src/main/res/drawable-xxxhdpi/ic_attach_photo.png
new file mode 100644
index 000000000..a0129784b
Binary files /dev/null and b/src/main/res/drawable-xxxhdpi/ic_attach_photo.png differ
diff --git a/src/main/res/drawable-xxxhdpi/ic_attach_photo_white.png b/src/main/res/drawable-xxxhdpi/ic_attach_photo_white.png
new file mode 100644
index 000000000..2ffdb55f2
Binary files /dev/null and b/src/main/res/drawable-xxxhdpi/ic_attach_photo_white.png differ
diff --git a/src/main/res/drawable-xxxhdpi/ic_attach_record.png b/src/main/res/drawable-xxxhdpi/ic_attach_record.png
new file mode 100644
index 000000000..966d4e005
Binary files /dev/null and b/src/main/res/drawable-xxxhdpi/ic_attach_record.png differ
diff --git a/src/main/res/drawable-xxxhdpi/ic_attach_record_white.png b/src/main/res/drawable-xxxhdpi/ic_attach_record_white.png
new file mode 100644
index 000000000..2f1e60c55
Binary files /dev/null and b/src/main/res/drawable-xxxhdpi/ic_attach_record_white.png differ
diff --git a/src/main/res/menu/attachment_choices.xml b/src/main/res/menu/attachment_choices.xml
index 6e8fc51d3..28372c0a3 100644
--- a/src/main/res/menu/attachment_choices.xml
+++ b/src/main/res/menu/attachment_choices.xml
@@ -3,22 +3,27 @@
+ android:title="@string/send_location"
+ android:icon="?attr/ic_attach_location"/>
+ android:title="@string/attach_record_voice"
+ android:icon="?attr/ic_attach_record"/>
+ android:title="@string/attach_take_picture"
+ android:icon="?attr/ic_attach_camera"/>
+ android:title="@string/attach_choose_picture"
+ android:icon="?attr/ic_attach_photo"/>
+ android:title="@string/choose_file"
+ android:icon="?attr/ic_attach_document"/>
\ No newline at end of file
diff --git a/src/main/res/values-v21/themes.xml b/src/main/res/values-v21/themes.xml
index 708908c23..a5eeec812 100644
--- a/src/main/res/values-v21/themes.xml
+++ b/src/main/res/values-v21/themes.xml
@@ -30,6 +30,12 @@
- @drawable/ic_send_text_offline
- @drawable/ic_send_voice_offline
+ - @drawable/ic_attach_camera
+ - @drawable/ic_attach_document
+ - @drawable/ic_attach_location
+ - @drawable/ic_attach_photo
+ - @drawable/ic_attach_record
+
- @drawable/message_bubble_received_white
- @drawable/message_bubble_sent
- @drawable/message_bubble_received
@@ -99,6 +105,12 @@
- @drawable/ic_send_text_offline_white
- @drawable/ic_send_voice_offline_white
+ - @drawable/ic_attach_camera_white
+ - @drawable/ic_attach_document_white
+ - @drawable/ic_attach_location_white
+ - @drawable/ic_attach_photo_white
+ - @drawable/ic_attach_record_white
+
- @drawable/message_bubble_received_grey
- @drawable/message_bubble_sent_grey
- @drawable/message_bubble_received_dark
diff --git a/src/main/res/values/attrs.xml b/src/main/res/values/attrs.xml
index 471ec268b..da3aa3821 100644
--- a/src/main/res/values/attrs.xml
+++ b/src/main/res/values/attrs.xml
@@ -21,6 +21,12 @@
+
+
+
+
+
+
diff --git a/src/main/res/values/dimens.xml b/src/main/res/values/dimens.xml
index 4ce44f224..bd749a017 100644
--- a/src/main/res/values/dimens.xml
+++ b/src/main/res/values/dimens.xml
@@ -6,4 +6,5 @@
288dp
8dp
11sp
+ 24dp
diff --git a/src/main/res/values/themes.xml b/src/main/res/values/themes.xml
index 6af02742b..c999e7b87 100644
--- a/src/main/res/values/themes.xml
+++ b/src/main/res/values/themes.xml
@@ -26,6 +26,12 @@
- @drawable/ic_send_text_offline
- @drawable/ic_send_voice_offline
+ - @drawable/ic_attach_camera
+ - @drawable/ic_attach_document
+ - @drawable/ic_attach_location
+ - @drawable/ic_attach_photo
+ - @drawable/ic_attach_record
+
- @drawable/ic_action_add_group
- @drawable/ic_action_add_person
- @drawable/ic_action_cancel
@@ -92,6 +98,12 @@
- @drawable/ic_send_text_offline_white
- @drawable/ic_send_voice_offline_white
+ - @drawable/ic_attach_camera_white
+ - @drawable/ic_attach_document_white
+ - @drawable/ic_attach_location_white
+ - @drawable/ic_attach_photo_white
+ - @drawable/ic_attach_record_white
+
- @drawable/message_bubble_received_grey
- @drawable/message_bubble_sent_grey
- @drawable/message_bubble_received_dark