Work fork of an Android Jabber client for bridge users git.sr.ht/~singpolyma/cheogram-android
sopranica sgx xmpp jabber
0

Configure Feed

Select the types of activity you want to include in your feed.

added dedicated 'record video' attachment button. fixes #2592 thank you @BlauerHunger

Daniel Gultsch (Sep 18, 2017, 11:51 AM +0200) d4c16b5a 22a058ff

+373 -48
+54
art/ic_send_videocam_away.svg
··· 1 + <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 + <svg 3 + xmlns:dc="http://purl.org/dc/elements/1.1/" 4 + xmlns:cc="http://creativecommons.org/ns#" 5 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 6 + xmlns:svg="http://www.w3.org/2000/svg" 7 + xmlns="http://www.w3.org/2000/svg" 8 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 9 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 10 + width="48" 11 + height="48" 12 + viewBox="0 0 24 24" 13 + id="svg2" 14 + version="1.1" 15 + inkscape:version="0.91 r13725" 16 + sodipodi:docname="ic_send_videocam_away.svg"> 17 + <metadata 18 + id="metadata12"> 19 + <rdf:RDF> 20 + <cc:Work 21 + rdf:about=""> 22 + <dc:format>image/svg+xml</dc:format> 23 + <dc:type 24 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 25 + </cc:Work> 26 + </rdf:RDF> 27 + </metadata> 28 + <defs 29 + id="defs10" /> 30 + <sodipodi:namedview 31 + pagecolor="#ffffff" 32 + bordercolor="#666666" 33 + borderopacity="1" 34 + objecttolerance="10" 35 + gridtolerance="10" 36 + guidetolerance="10" 37 + inkscape:pageopacity="0" 38 + inkscape:pageshadow="2" 39 + inkscape:window-width="956" 40 + inkscape:window-height="567" 41 + id="namedview8" 42 + showgrid="false" 43 + inkscape:zoom="4.9166667" 44 + inkscape:cx="-8.3389831" 45 + inkscape:cy="24" 46 + inkscape:window-x="960" 47 + inkscape:window-y="609" 48 + inkscape:window-maximized="0" 49 + inkscape:current-layer="svg2" /> 50 + <path 51 + d="M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z" 52 + id="path6" 53 + style="fill:#ff9800;fill-opacity:0.627451" /> 54 + </svg>
+54
art/ic_send_videocam_dnd.svg
··· 1 + <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 + <svg 3 + xmlns:dc="http://purl.org/dc/elements/1.1/" 4 + xmlns:cc="http://creativecommons.org/ns#" 5 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 6 + xmlns:svg="http://www.w3.org/2000/svg" 7 + xmlns="http://www.w3.org/2000/svg" 8 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 9 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 10 + width="48" 11 + height="48" 12 + viewBox="0 0 24 24" 13 + id="svg2" 14 + version="1.1" 15 + inkscape:version="0.91 r13725" 16 + sodipodi:docname="ic_send_videocam_dnd.svg"> 17 + <metadata 18 + id="metadata12"> 19 + <rdf:RDF> 20 + <cc:Work 21 + rdf:about=""> 22 + <dc:format>image/svg+xml</dc:format> 23 + <dc:type 24 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 25 + </cc:Work> 26 + </rdf:RDF> 27 + </metadata> 28 + <defs 29 + id="defs10" /> 30 + <sodipodi:namedview 31 + pagecolor="#ffffff" 32 + bordercolor="#666666" 33 + borderopacity="1" 34 + objecttolerance="10" 35 + gridtolerance="10" 36 + guidetolerance="10" 37 + inkscape:pageopacity="0" 38 + inkscape:pageshadow="2" 39 + inkscape:window-width="956" 40 + inkscape:window-height="567" 41 + id="namedview8" 42 + showgrid="false" 43 + inkscape:zoom="4.9166667" 44 + inkscape:cx="-8.3389831" 45 + inkscape:cy="24" 46 + inkscape:window-x="960" 47 + inkscape:window-y="609" 48 + inkscape:window-maximized="0" 49 + inkscape:current-layer="svg2" /> 50 + <path 51 + d="M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z" 52 + id="path6" 53 + style="fill:#f44336;fill-opacity:0.627451" /> 54 + </svg>
+54
art/ic_send_videocam_offline.svg
··· 1 + <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 + <svg 3 + xmlns:dc="http://purl.org/dc/elements/1.1/" 4 + xmlns:cc="http://creativecommons.org/ns#" 5 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 6 + xmlns:svg="http://www.w3.org/2000/svg" 7 + xmlns="http://www.w3.org/2000/svg" 8 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 9 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 10 + width="48" 11 + height="48" 12 + viewBox="0 0 24 24" 13 + id="svg2" 14 + version="1.1" 15 + inkscape:version="0.91 r13725" 16 + sodipodi:docname="ic_send_videocam_offline.svg"> 17 + <metadata 18 + id="metadata12"> 19 + <rdf:RDF> 20 + <cc:Work 21 + rdf:about=""> 22 + <dc:format>image/svg+xml</dc:format> 23 + <dc:type 24 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 25 + </cc:Work> 26 + </rdf:RDF> 27 + </metadata> 28 + <defs 29 + id="defs10" /> 30 + <sodipodi:namedview 31 + pagecolor="#ffffff" 32 + bordercolor="#666666" 33 + borderopacity="1" 34 + objecttolerance="10" 35 + gridtolerance="10" 36 + guidetolerance="10" 37 + inkscape:pageopacity="0" 38 + inkscape:pageshadow="2" 39 + inkscape:window-width="956" 40 + inkscape:window-height="567" 41 + id="namedview8" 42 + showgrid="false" 43 + inkscape:zoom="4.9166667" 44 + inkscape:cx="-8.3389831" 45 + inkscape:cy="24" 46 + inkscape:window-x="960" 47 + inkscape:window-y="609" 48 + inkscape:window-maximized="0" 49 + inkscape:current-layer="svg2" /> 50 + <path 51 + d="M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z" 52 + id="path6" 53 + style="fill:#000000;fill-opacity:0.627451" /> 54 + </svg>
+54
art/ic_send_videocam_offline_white.svg
··· 1 + <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 + <svg 3 + xmlns:dc="http://purl.org/dc/elements/1.1/" 4 + xmlns:cc="http://creativecommons.org/ns#" 5 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 6 + xmlns:svg="http://www.w3.org/2000/svg" 7 + xmlns="http://www.w3.org/2000/svg" 8 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 9 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 10 + width="48" 11 + height="48" 12 + viewBox="0 0 24 24" 13 + id="svg2" 14 + version="1.1" 15 + inkscape:version="0.91 r13725" 16 + sodipodi:docname="ic_send_videocam_offline_white.svg"> 17 + <metadata 18 + id="metadata12"> 19 + <rdf:RDF> 20 + <cc:Work 21 + rdf:about=""> 22 + <dc:format>image/svg+xml</dc:format> 23 + <dc:type 24 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 25 + </cc:Work> 26 + </rdf:RDF> 27 + </metadata> 28 + <defs 29 + id="defs10" /> 30 + <sodipodi:namedview 31 + pagecolor="#ffffff" 32 + bordercolor="#666666" 33 + borderopacity="1" 34 + objecttolerance="10" 35 + gridtolerance="10" 36 + guidetolerance="10" 37 + inkscape:pageopacity="0" 38 + inkscape:pageshadow="2" 39 + inkscape:window-width="956" 40 + inkscape:window-height="567" 41 + id="namedview8" 42 + showgrid="false" 43 + inkscape:zoom="4.9166667" 44 + inkscape:cx="10.5688" 45 + inkscape:cy="23.898305" 46 + inkscape:window-x="960" 47 + inkscape:window-y="609" 48 + inkscape:window-maximized="0" 49 + inkscape:current-layer="svg2" /> 50 + <path 51 + d="M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z" 52 + id="path6" 53 + style="fill:#ffffff;fill-opacity:0.627451" /> 54 + </svg>
+55
art/ic_send_videocam_online.svg
··· 1 + <?xml version="1.0" encoding="UTF-8" standalone="no"?> 2 + <svg 3 + xmlns:dc="http://purl.org/dc/elements/1.1/" 4 + xmlns:cc="http://creativecommons.org/ns#" 5 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 6 + xmlns:svg="http://www.w3.org/2000/svg" 7 + xmlns="http://www.w3.org/2000/svg" 8 + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 9 + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 10 + width="48" 11 + height="48" 12 + viewBox="0 0 24 24" 13 + id="svg2" 14 + version="1.1" 15 + inkscape:version="0.91 r13725" 16 + sodipodi:docname="ic_send_videocam_online.svg"> 17 + <metadata 18 + id="metadata10"> 19 + <rdf:RDF> 20 + <cc:Work 21 + rdf:about=""> 22 + <dc:format>image/svg+xml</dc:format> 23 + <dc:type 24 + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 25 + <dc:title></dc:title> 26 + </cc:Work> 27 + </rdf:RDF> 28 + </metadata> 29 + <defs 30 + id="defs8" /> 31 + <sodipodi:namedview 32 + pagecolor="#ffffff" 33 + bordercolor="#666666" 34 + borderopacity="1" 35 + objecttolerance="10" 36 + gridtolerance="10" 37 + guidetolerance="10" 38 + inkscape:pageopacity="0" 39 + inkscape:pageshadow="2" 40 + inkscape:window-width="1916" 41 + inkscape:window-height="1036" 42 + id="namedview6" 43 + showgrid="false" 44 + inkscape:zoom="4.9166667" 45 + inkscape:cx="6.5084746" 46 + inkscape:cy="24" 47 + inkscape:window-x="0" 48 + inkscape:window-y="20" 49 + inkscape:window-maximized="0" 50 + inkscape:current-layer="svg2" /> 51 + <path 52 + d="M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z" 53 + id="path4" 54 + style="fill:#259b24;fill-opacity:0.627451" /> 55 + </svg>
+5
art/render.rb
··· 47 47 'ic_send_picture_offline_white.svg' => ['ic_send_picture_offline_white', 36], 48 48 'ic_send_picture_away.svg' => ['ic_send_picture_away', 36], 49 49 'ic_send_picture_dnd.svg' => ['ic_send_picture_dnd', 36], 50 + 'ic_send_videocam_online.svg' => ['ic_send_videocam_online', 36], 51 + 'ic_send_videocam_offline.svg' => ['ic_send_videocam_offline', 36], 52 + 'ic_send_videocam_offline_white.svg' => ['ic_send_videocam_offline_white', 36], 53 + 'ic_send_videocam_away.svg' => ['ic_send_videocam_away', 36], 54 + 'ic_send_videocam_dnd.svg' => ['ic_send_videocam_dnd', 36], 50 55 'ic_notifications_none_white80.svg' => ['ic_notifications_none_white80', 24], 51 56 'ic_notifications_off_white80.svg' => ['ic_notifications_off_white80', 24], 52 57 'ic_notifications_paused_white80.svg' => ['ic_notifications_paused_white80', 24],
+29 -9
src/main/java/eu/siacs/conversations/ui/ConversationActivity.java
··· 72 72 public class ConversationActivity extends XmppActivity 73 73 implements OnAccountUpdate, OnConversationUpdate, OnRosterUpdate, OnUpdateBlocklist, XmppConnectionService.OnShowErrorToast { 74 74 75 + public static final String RECENTLY_USED_QUICK_ACTION = "recently_used_quick_action"; 76 + 75 77 public static final String ACTION_VIEW_CONVERSATION = "eu.siacs.conversations.action.VIEW"; 76 78 public static final String CONVERSATION = "conversationUuid"; 77 79 public static final String EXTRA_DOWNLOAD_UUID = "eu.siacs.conversations.download_uuid"; ··· 92 94 public static final int ATTACHMENT_CHOICE_RECORD_VOICE = 0x0304; 93 95 public static final int ATTACHMENT_CHOICE_LOCATION = 0x0305; 94 96 public static final int ATTACHMENT_CHOICE_INVALID = 0x0306; 97 + public static final int ATTACHMENT_CHOICE_RECORD_VIDEO = 0x0307; 95 98 private static final String STATE_OPEN_CONVERSATION = "state_open_conversation"; 96 99 private static final String STATE_PANEL_OPEN = "state_panel_open"; 97 100 private static final String STATE_PENDING_URI = "state_pending_uri"; ··· 500 503 intent.setType("image/*"); 501 504 chooser = true; 502 505 break; 506 + case ATTACHMENT_CHOICE_RECORD_VIDEO: 507 + intent.setAction(MediaStore.ACTION_VIDEO_CAPTURE); 508 + break; 503 509 case ATTACHMENT_CHOICE_TAKE_PHOTO: 504 510 Uri uri = xmppConnectionService.getFileBackend().getTakePhotoUri(); 511 + mPendingImageUris.clear(); 512 + mPendingImageUris.add(uri); 513 + intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); 505 514 intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); 506 515 intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); 507 516 intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE); 508 - intent.putExtra(MediaStore.EXTRA_OUTPUT, uri); 509 - mPendingImageUris.clear(); 510 - mPendingImageUris.add(uri); 511 517 break; 512 518 case ATTACHMENT_CHOICE_CHOOSE_FILE: 513 519 chooser = true; ··· 562 568 return; 563 569 } 564 570 } 571 + final ConversationFragment.SendButtonAction action; 565 572 switch (attachmentChoice) { 566 573 case ATTACHMENT_CHOICE_LOCATION: 567 - getPreferences().edit().putString("recently_used_quick_action", "location").apply(); 574 + action = ConversationFragment.SendButtonAction.SEND_LOCATION; 568 575 break; 569 576 case ATTACHMENT_CHOICE_RECORD_VOICE: 570 - getPreferences().edit().putString("recently_used_quick_action", "voice").apply(); 577 + action = ConversationFragment.SendButtonAction.RECORD_VOICE; 578 + break; 579 + case ATTACHMENT_CHOICE_RECORD_VIDEO: 580 + action = ConversationFragment.SendButtonAction.RECORD_VIDEO; 571 581 break; 572 582 case ATTACHMENT_CHOICE_TAKE_PHOTO: 573 - getPreferences().edit().putString("recently_used_quick_action", "photo").apply(); 583 + action = ConversationFragment.SendButtonAction.TAKE_PHOTO; 574 584 break; 575 585 case ATTACHMENT_CHOICE_CHOOSE_IMAGE: 576 - getPreferences().edit().putString("recently_used_quick_action", "picture").apply(); 586 + action = ConversationFragment.SendButtonAction.CHOOSE_PICTURE; 587 + break; 588 + default: 589 + action = null; 577 590 break; 591 + } 592 + if (action != null) { 593 + getPreferences().edit().putString(RECENTLY_USED_QUICK_ACTION,action.toString()).apply(); 578 594 } 579 595 final Conversation conversation = getSelectedConversation(); 580 596 final int encryption = conversation.getNextEncryption(); ··· 804 820 break; 805 821 case R.id.attach_take_picture: 806 822 attachFile(ATTACHMENT_CHOICE_TAKE_PHOTO); 823 + break; 824 + case R.id.attach_record_video: 825 + attachFile(ATTACHMENT_CHOICE_RECORD_VIDEO); 807 826 break; 808 827 case R.id.attach_choose_file: 809 828 attachFile(ATTACHMENT_CHOICE_CHOOSE_FILE); ··· 1414 1433 attachImageToConversation(getSelectedConversation(), i.next()); 1415 1434 } 1416 1435 } 1417 - } else if (requestCode == ATTACHMENT_CHOICE_CHOOSE_FILE || requestCode == ATTACHMENT_CHOICE_RECORD_VOICE) { 1436 + } else if (requestCode == ATTACHMENT_CHOICE_CHOOSE_FILE || requestCode == ATTACHMENT_CHOICE_RECORD_VOICE || requestCode == ATTACHMENT_CHOICE_RECORD_VIDEO) { 1418 1437 final List<Uri> uris = extractUriFromIntent(data); 1438 + Log.d(Config.LOGTAG,"uris "+uris.toString()); 1419 1439 final Conversation c = getSelectedConversation(); 1420 1440 final OnPresenceSelected callback = new OnPresenceSelected() { 1421 1441 @Override ··· 1424 1444 mPendingFileUris.addAll(uris); 1425 1445 if (xmppConnectionServiceBound) { 1426 1446 for (Iterator<Uri> i = mPendingFileUris.iterator(); i.hasNext(); i.remove()) { 1427 - Log.d(Config.LOGTAG,"ConversationsActivity.onActivityResult() - attaching file to conversations. CHOOSE_FILE/RECORD_VOICE"); 1447 + Log.d(Config.LOGTAG,"ConversationsActivity.onActivityResult() - attaching file to conversations. CHOOSE_FILE/RECORD_VOICE/RECORD_VIDEO"); 1428 1448 attachFileToConversation(c, i.next()); 1429 1449 } 1430 1450 }
+34 -23
src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
··· 46 46 import java.util.Arrays; 47 47 import java.util.Collections; 48 48 import java.util.List; 49 - import java.util.ListIterator; 50 49 import java.util.UUID; 51 50 import java.util.concurrent.atomic.AtomicBoolean; 52 51 ··· 72 71 import eu.siacs.conversations.ui.adapter.MessageAdapter.OnContactPictureClicked; 73 72 import eu.siacs.conversations.ui.adapter.MessageAdapter.OnContactPictureLongClicked; 74 73 import eu.siacs.conversations.ui.widget.ListSelectionManager; 75 - import eu.siacs.conversations.utils.GeoHelper; 76 74 import eu.siacs.conversations.utils.NickValidityChecker; 77 75 import eu.siacs.conversations.utils.UIHelper; 78 76 import eu.siacs.conversations.xmpp.XmppConnection; ··· 330 328 switch (action) { 331 329 case TAKE_PHOTO: 332 330 activity.attachFile(ConversationActivity.ATTACHMENT_CHOICE_TAKE_PHOTO); 331 + break; 332 + case RECORD_VIDEO: 333 + activity.attachFile(ConversationActivity.ATTACHMENT_CHOICE_RECORD_VIDEO); 333 334 break; 334 335 case SEND_LOCATION: 335 336 activity.attachFile(ConversationActivity.ATTACHMENT_CHOICE_LOCATION); ··· 1152 1153 mSendingPgpMessage.set(false); 1153 1154 } 1154 1155 1155 - enum SendButtonAction {TEXT, TAKE_PHOTO, SEND_LOCATION, RECORD_VOICE, CANCEL, CHOOSE_PICTURE} 1156 + enum SendButtonAction {TEXT, TAKE_PHOTO, SEND_LOCATION, RECORD_VOICE, CANCEL, CHOOSE_PICTURE, RECORD_VIDEO; 1157 + 1158 + public static SendButtonAction valueOfOrDefault(String setting, SendButtonAction text) { 1159 + try { 1160 + return valueOf(setting); 1161 + } catch (IllegalArgumentException e) { 1162 + return TEXT; 1163 + } 1164 + } 1165 + } 1156 1166 1157 1167 private int getSendButtonImageResource(SendButtonAction action, Presence.Status status) { 1158 1168 switch (action) { ··· 1168 1178 return R.drawable.ic_send_text_dnd; 1169 1179 default: 1170 1180 return activity.getThemeResource(R.attr.ic_send_text_offline, R.drawable.ic_send_text_offline); 1181 + } 1182 + case RECORD_VIDEO: 1183 + switch (status) { 1184 + case CHAT: 1185 + case ONLINE: 1186 + return R.drawable.ic_send_videocam_online; 1187 + case AWAY: 1188 + return R.drawable.ic_send_videocam_away; 1189 + case XA: 1190 + case DND: 1191 + return R.drawable.ic_send_videocam_dnd; 1192 + default: 1193 + return activity.getThemeResource(R.attr.ic_send_videocam_offline, R.drawable.ic_send_videocam_offline); 1171 1194 } 1172 1195 case TAKE_PHOTO: 1173 1196 switch (status) { ··· 1268 1291 } else { 1269 1292 String setting = activity.getPreferences().getString("quick_action", activity.getResources().getString(R.string.quick_action)); 1270 1293 if (!setting.equals("none") && UIHelper.receivedLocationQuestion(conversation.getLatestMessage())) { 1271 - setting = "location"; 1272 - } else if (setting.equals("recent")) { 1273 - setting = activity.getPreferences().getString("recently_used_quick_action", "text"); 1274 - } 1275 - switch (setting) { 1276 - case "photo": 1277 - action = SendButtonAction.TAKE_PHOTO; 1278 - break; 1279 - case "location": 1280 - action = SendButtonAction.SEND_LOCATION; 1281 - break; 1282 - case "voice": 1283 - action = SendButtonAction.RECORD_VOICE; 1284 - break; 1285 - case "picture": 1286 - action = SendButtonAction.CHOOSE_PICTURE; 1287 - break; 1288 - default: 1289 - action = SendButtonAction.TEXT; 1290 - break; 1294 + action = SendButtonAction.SEND_LOCATION; 1295 + } else { 1296 + if (setting.equals("recent")) { 1297 + setting = activity.getPreferences().getString(ConversationActivity.RECENTLY_USED_QUICK_ACTION, SendButtonAction.TEXT.toString()); 1298 + action = SendButtonAction.valueOfOrDefault(setting,SendButtonAction.TEXT); 1299 + } else { 1300 + action = SendButtonAction.valueOfOrDefault(setting,SendButtonAction.TEXT); 1301 + } 1291 1302 } 1292 1303 } 1293 1304 } else {
src/main/res/drawable-hdpi/ic_attach_videocam.png

This is a binary file and will not be displayed.

src/main/res/drawable-hdpi/ic_attach_videocam_white.png

This is a binary file and will not be displayed.

src/main/res/drawable-hdpi/ic_send_videocam_away.png

This is a binary file and will not be displayed.

src/main/res/drawable-hdpi/ic_send_videocam_dnd.png

This is a binary file and will not be displayed.

src/main/res/drawable-hdpi/ic_send_videocam_offline.png

This is a binary file and will not be displayed.

src/main/res/drawable-hdpi/ic_send_videocam_offline_white.png

This is a binary file and will not be displayed.

src/main/res/drawable-hdpi/ic_send_videocam_online.png

This is a binary file and will not be displayed.

src/main/res/drawable-mdpi/ic_attach_videocam.png

This is a binary file and will not be displayed.

src/main/res/drawable-mdpi/ic_attach_videocam_white.png

This is a binary file and will not be displayed.

src/main/res/drawable-mdpi/ic_send_videocam_away.png

This is a binary file and will not be displayed.

src/main/res/drawable-mdpi/ic_send_videocam_dnd.png

This is a binary file and will not be displayed.

src/main/res/drawable-mdpi/ic_send_videocam_offline.png

This is a binary file and will not be displayed.

src/main/res/drawable-mdpi/ic_send_videocam_offline_white.png

This is a binary file and will not be displayed.

src/main/res/drawable-mdpi/ic_send_videocam_online.png

This is a binary file and will not be displayed.

src/main/res/drawable-xhdpi/ic_attach_videocam.png

This is a binary file and will not be displayed.

src/main/res/drawable-xhdpi/ic_attach_videocam_white.png

This is a binary file and will not be displayed.

src/main/res/drawable-xhdpi/ic_send_videocam_away.png

This is a binary file and will not be displayed.

src/main/res/drawable-xhdpi/ic_send_videocam_dnd.png

This is a binary file and will not be displayed.

src/main/res/drawable-xhdpi/ic_send_videocam_offline.png

This is a binary file and will not be displayed.

src/main/res/drawable-xhdpi/ic_send_videocam_offline_white.png

This is a binary file and will not be displayed.

src/main/res/drawable-xhdpi/ic_send_videocam_online.png

This is a binary file and will not be displayed.

src/main/res/drawable-xxhdpi/ic_attach_videocam.png

This is a binary file and will not be displayed.

src/main/res/drawable-xxhdpi/ic_attach_videocam_white.png

This is a binary file and will not be displayed.

src/main/res/drawable-xxhdpi/ic_send_videocam_away.png

This is a binary file and will not be displayed.

src/main/res/drawable-xxhdpi/ic_send_videocam_dnd.png

This is a binary file and will not be displayed.

src/main/res/drawable-xxhdpi/ic_send_videocam_offline.png

This is a binary file and will not be displayed.

src/main/res/drawable-xxhdpi/ic_send_videocam_offline_white.png

This is a binary file and will not be displayed.

src/main/res/drawable-xxhdpi/ic_send_videocam_online.png

This is a binary file and will not be displayed.

src/main/res/drawable-xxxhdpi/ic_attach_videocam.png

This is a binary file and will not be displayed.

src/main/res/drawable-xxxhdpi/ic_attach_videocam_white.png

This is a binary file and will not be displayed.

src/main/res/drawable-xxxhdpi/ic_send_videocam_away.png

This is a binary file and will not be displayed.

src/main/res/drawable-xxxhdpi/ic_send_videocam_dnd.png

This is a binary file and will not be displayed.

src/main/res/drawable-xxxhdpi/ic_send_videocam_offline.png

This is a binary file and will not be displayed.

src/main/res/drawable-xxxhdpi/ic_send_videocam_offline_white.png

This is a binary file and will not be displayed.

src/main/res/drawable-xxxhdpi/ic_send_videocam_online.png

This is a binary file and will not be displayed.

+17 -12
src/main/res/menu/attachment_choices.xml
··· 2 2 <menu xmlns:android="http://schemas.android.com/apk/res/android" > 3 3 4 4 <item 5 - android:id="@+id/attach_location" 6 - android:title="@string/send_location" 7 - android:icon="?attr/ic_attach_location"/> 5 + android:id="@+id/attach_choose_file" 6 + android:title="@string/choose_file" 7 + android:icon="?attr/ic_attach_document"/> 8 8 9 9 <item 10 - android:id="@+id/attach_record_voice" 11 - android:title="@string/attach_record_voice" 12 - android:icon="?attr/ic_attach_record"/> 10 + android:id="@+id/attach_choose_picture" 11 + android:title="@string/attach_choose_picture" 12 + android:icon="?attr/ic_attach_photo"/> 13 13 14 14 <item 15 15 android:id="@+id/attach_take_picture" ··· 17 17 android:icon="?attr/ic_attach_camera"/> 18 18 19 19 <item 20 - android:id="@+id/attach_choose_picture" 21 - android:title="@string/attach_choose_picture" 22 - android:icon="?attr/ic_attach_photo"/> 20 + android:id="@+id/attach_record_video" 21 + android:title="@string/attach_record_video" 22 + android:icon="?attr/ic_attach_videocam"/> 23 23 24 24 <item 25 - android:id="@+id/attach_choose_file" 26 - android:title="@string/choose_file" 27 - android:icon="?attr/ic_attach_document"/> 25 + android:id="@+id/attach_record_voice" 26 + android:title="@string/attach_record_voice" 27 + android:icon="?attr/ic_attach_record"/> 28 + 29 + <item 30 + android:id="@+id/attach_location" 31 + android:title="@string/send_location" 32 + android:icon="?attr/ic_attach_location"/> 28 33 29 34 </menu>
+4
src/main/res/values-v21/themes.xml
··· 29 29 <item name="attr/ic_send_photo_offline">@drawable/ic_send_photo_offline</item> 30 30 <item name="attr/ic_send_picture_offline">@drawable/ic_send_picture_offline</item> 31 31 <item name="attr/ic_send_text_offline">@drawable/ic_send_text_offline</item> 32 + <item name="attr/ic_send_videocam_offline">@drawable/ic_send_videocam_offline</item> 32 33 <item name="attr/ic_send_voice_offline">@drawable/ic_send_voice_offline</item> 33 34 34 35 <item name="attr/ic_attach_camera">@drawable/ic_attach_camera</item> 36 + <item name="attr/ic_attach_videocam">@drawable/ic_attach_videocam</item> 35 37 <item name="attr/ic_attach_document">@drawable/ic_attach_document</item> 36 38 <item name="attr/ic_attach_location">@drawable/ic_attach_location</item> 37 39 <item name="attr/ic_attach_photo">@drawable/ic_attach_photo</item> ··· 107 109 <item name="attr/ic_send_photo_offline">@drawable/ic_send_photo_offline_white</item> 108 110 <item name="attr/ic_send_picture_offline">@drawable/ic_send_picture_offline_white</item> 109 111 <item name="attr/ic_send_text_offline">@drawable/ic_send_text_offline_white</item> 112 + <item name="attr/ic_send_videocam_offline">@drawable/ic_send_videocam_offline_white</item> 110 113 <item name="attr/ic_send_voice_offline">@drawable/ic_send_voice_offline_white</item> 111 114 112 115 <item name="attr/ic_attach_camera">@drawable/ic_attach_camera_white</item> 116 + <item name="attr/ic_attach_videocam">@drawable/ic_attach_videocam_white</item> 113 117 <item name="attr/ic_attach_document">@drawable/ic_attach_document_white</item> 114 118 <item name="attr/ic_attach_location">@drawable/ic_attach_location_white</item> 115 119 <item name="attr/ic_attach_photo">@drawable/ic_attach_photo_white</item>
+6 -4
src/main/res/values/arrays.xml
··· 52 52 <item>@string/none</item> 53 53 <item>@string/recently_used</item> 54 54 <item>@string/attach_take_picture</item> 55 + <item>@string/attach_record_video</item> 55 56 <item>@string/attach_choose_picture</item> 56 57 <item>@string/attach_record_voice</item> 57 58 <item>@string/send_location</item> ··· 60 61 <string-array name="quick_action_values"> 61 62 <item>none</item> 62 63 <item>recent</item> 63 - <item>photo</item> 64 - <item>picture</item> 65 - <item>voice</item> 66 - <item>location</item> 64 + <item>TAKE_PHOTO</item> 65 + <item>RECORD_VIDEO</item> 66 + <item>CHOOSE_PICTURE</item> 67 + <item>RECORD_VOICE</item> 68 + <item>SEND_LOCATION</item> 67 69 </string-array> 68 70 69 71 <string-array name="picture_compression_values">
+2
src/main/res/values/attrs.xml
··· 20 20 <attr name="ic_send_photo_offline" format="reference"/> 21 21 <attr name="ic_send_picture_offline" format="reference"/> 22 22 <attr name="ic_send_text_offline" format="reference"/> 23 + <attr name="ic_send_videocam_offline" format="reference"/> 23 24 <attr name="ic_send_voice_offline" format="reference"/> 24 25 25 26 <attr name="ic_attach_camera" format="reference"/> 27 + <attr name="ic_attach_videocam" format="reference"/> 26 28 <attr name="ic_attach_document" format="reference"/> 27 29 <attr name="ic_attach_location" format="reference"/> 28 30 <attr name="ic_attach_photo" format="reference"/>
+1
src/main/res/values/strings.xml
··· 724 724 <string name="network_is_unreachable">Network is unreachable</string> 725 725 <string name="certificate_does_not_contain_jid">Certificate does not contain a Jabber ID</string> 726 726 <string name="server_info_partial">partial</string> 727 + <string name="attach_record_video">Record video</string> 727 728 </resources>
+4
src/main/res/values/themes.xml
··· 25 25 <item name="attr/ic_send_photo_offline">@drawable/ic_send_photo_offline</item> 26 26 <item name="attr/ic_send_picture_offline">@drawable/ic_send_picture_offline</item> 27 27 <item name="attr/ic_send_text_offline">@drawable/ic_send_text_offline</item> 28 + <item name="attr/ic_send_videocam_offline">@drawable/ic_send_videocam_offline</item> 28 29 <item name="attr/ic_send_voice_offline">@drawable/ic_send_voice_offline</item> 29 30 30 31 <item name="attr/ic_attach_camera">@drawable/ic_attach_camera</item> 32 + <item name="attr/ic_attach_videocam">@drawable/ic_attach_videocam</item> 31 33 <item name="attr/ic_attach_document">@drawable/ic_attach_document</item> 32 34 <item name="attr/ic_attach_location">@drawable/ic_attach_location</item> 33 35 <item name="attr/ic_attach_photo">@drawable/ic_attach_photo</item> ··· 100 102 <item name="attr/ic_send_photo_offline">@drawable/ic_send_photo_offline_white</item> 101 103 <item name="attr/ic_send_picture_offline">@drawable/ic_send_picture_offline_white</item> 102 104 <item name="attr/ic_send_text_offline">@drawable/ic_send_text_offline_white</item> 105 + <item name="attr/ic_send_videocam_offline">@drawable/ic_send_videocam_offline_white</item> 103 106 <item name="attr/ic_send_voice_offline">@drawable/ic_send_voice_offline_white</item> 104 107 105 108 <item name="attr/ic_attach_camera">@drawable/ic_attach_camera_white</item> 109 + <item name="attr/ic_attach_videocam">@drawable/ic_attach_videocam_white</item> 106 110 <item name="attr/ic_attach_document">@drawable/ic_attach_document_white</item> 107 111 <item name="attr/ic_attach_location">@drawable/ic_attach_location_white</item> 108 112 <item name="attr/ic_attach_photo">@drawable/ic_attach_photo_white</item>