@@ -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();
}
@@ -3,22 +3,27 @@
<item
android:id="@+id/attach_location"
- android:title="@string/send_location"/>
+ android:title="@string/send_location"
+ android:icon="?attr/ic_attach_location"/>
<item
android:id="@+id/attach_record_voice"
- android:title="@string/attach_record_voice"/>
+ android:title="@string/attach_record_voice"
+ android:icon="?attr/ic_attach_record"/>
<item
android:id="@+id/attach_take_picture"
- android:title="@string/attach_take_picture"/>
+ android:title="@string/attach_take_picture"
+ android:icon="?attr/ic_attach_camera"/>
<item
android:id="@+id/attach_choose_picture"
- android:title="@string/attach_choose_picture"/>
+ android:title="@string/attach_choose_picture"
+ android:icon="?attr/ic_attach_photo"/>
<item
android:id="@+id/attach_choose_file"
- android:title="@string/choose_file"/>
+ android:title="@string/choose_file"
+ android:icon="?attr/ic_attach_document"/>
</menu>
@@ -30,6 +30,12 @@
<item name="attr/ic_send_text_offline">@drawable/ic_send_text_offline</item>
<item name="attr/ic_send_voice_offline">@drawable/ic_send_voice_offline</item>
+ <item name="attr/ic_attach_camera">@drawable/ic_attach_camera</item>
+ <item name="attr/ic_attach_document">@drawable/ic_attach_document</item>
+ <item name="attr/ic_attach_location">@drawable/ic_attach_location</item>
+ <item name="attr/ic_attach_photo">@drawable/ic_attach_photo</item>
+ <item name="attr/ic_attach_record">@drawable/ic_attach_record</item>
+
<item name="attr/message_bubble_received_monochrome">@drawable/message_bubble_received_white</item>
<item name="attr/message_bubble_sent">@drawable/message_bubble_sent</item>
<item name="attr/message_bubble_received_green">@drawable/message_bubble_received</item>
@@ -99,6 +105,12 @@
<item name="attr/ic_send_text_offline">@drawable/ic_send_text_offline_white</item>
<item name="attr/ic_send_voice_offline">@drawable/ic_send_voice_offline_white</item>
+ <item name="attr/ic_attach_camera">@drawable/ic_attach_camera_white</item>
+ <item name="attr/ic_attach_document">@drawable/ic_attach_document_white</item>
+ <item name="attr/ic_attach_location">@drawable/ic_attach_location_white</item>
+ <item name="attr/ic_attach_photo">@drawable/ic_attach_photo_white</item>
+ <item name="attr/ic_attach_record">@drawable/ic_attach_record_white</item>
+
<item name="attr/message_bubble_received_monochrome">@drawable/message_bubble_received_grey</item>
<item name="attr/message_bubble_sent">@drawable/message_bubble_sent_grey</item>
<item name="attr/message_bubble_received_green">@drawable/message_bubble_received_dark</item>
@@ -21,6 +21,12 @@
<attr name="ic_send_text_offline" format="reference"/>
<attr name="ic_send_voice_offline" format="reference"/>
+ <attr name="ic_attach_camera" format="reference"/>
+ <attr name="ic_attach_document" format="reference"/>
+ <attr name="ic_attach_location" format="reference"/>
+ <attr name="ic_attach_photo" format="reference"/>
+ <attr name="ic_attach_record" format="reference"/>
+
<attr name="message_bubble_received_monochrome" format="reference"/>
<attr name="message_bubble_sent" format="reference"/>
<attr name="message_bubble_received_green" format="reference"/>
@@ -26,6 +26,12 @@
<item name="attr/ic_send_text_offline">@drawable/ic_send_text_offline</item>
<item name="attr/ic_send_voice_offline">@drawable/ic_send_voice_offline</item>
+ <item name="attr/ic_attach_camera">@drawable/ic_attach_camera</item>
+ <item name="attr/ic_attach_document">@drawable/ic_attach_document</item>
+ <item name="attr/ic_attach_location">@drawable/ic_attach_location</item>
+ <item name="attr/ic_attach_photo">@drawable/ic_attach_photo</item>
+ <item name="attr/ic_attach_record">@drawable/ic_attach_record</item>
+
<item name="attr/icon_add_group">@drawable/ic_action_add_group</item>
<item name="attr/icon_add_person">@drawable/ic_action_add_person</item>
<item name="attr/icon_cancel">@drawable/ic_action_cancel</item>
@@ -92,6 +98,12 @@
<item name="attr/ic_send_text_offline">@drawable/ic_send_text_offline_white</item>
<item name="attr/ic_send_voice_offline">@drawable/ic_send_voice_offline_white</item>
+ <item name="attr/ic_attach_camera">@drawable/ic_attach_camera_white</item>
+ <item name="attr/ic_attach_document">@drawable/ic_attach_document_white</item>
+ <item name="attr/ic_attach_location">@drawable/ic_attach_location_white</item>
+ <item name="attr/ic_attach_photo">@drawable/ic_attach_photo_white</item>
+ <item name="attr/ic_attach_record">@drawable/ic_attach_record_white</item>
+
<item name="attr/message_bubble_received_monochrome">@drawable/message_bubble_received_grey</item>
<item name="attr/message_bubble_sent">@drawable/message_bubble_sent_grey</item>
<item name="attr/message_bubble_received_green">@drawable/message_bubble_received_dark</item>