diff --git a/art/ic_send_videocam_away.svg b/art/ic_send_videocam_away.svg
new file mode 100644
index 0000000000000000000000000000000000000000..52b8478cfa03526a59014d3883bbbad6ea389836
--- /dev/null
+++ b/art/ic_send_videocam_away.svg
@@ -0,0 +1,54 @@
+
+
diff --git a/art/ic_send_videocam_dnd.svg b/art/ic_send_videocam_dnd.svg
new file mode 100644
index 0000000000000000000000000000000000000000..254e3859a1180b3fd8ec69fe795cd64fe0b5c9cf
--- /dev/null
+++ b/art/ic_send_videocam_dnd.svg
@@ -0,0 +1,54 @@
+
+
diff --git a/art/ic_send_videocam_offline.svg b/art/ic_send_videocam_offline.svg
new file mode 100644
index 0000000000000000000000000000000000000000..91a7778d6557a17ddac6c1e8dc7d863a5fe215b7
--- /dev/null
+++ b/art/ic_send_videocam_offline.svg
@@ -0,0 +1,54 @@
+
+
diff --git a/art/ic_send_videocam_offline_white.svg b/art/ic_send_videocam_offline_white.svg
new file mode 100644
index 0000000000000000000000000000000000000000..67f5563a6337794307065c4e5f9eea4a8ecf654c
--- /dev/null
+++ b/art/ic_send_videocam_offline_white.svg
@@ -0,0 +1,54 @@
+
+
diff --git a/art/ic_send_videocam_online.svg b/art/ic_send_videocam_online.svg
new file mode 100644
index 0000000000000000000000000000000000000000..e4f671b1dafdf9c1efd1cf352ebd919a4e1bbeb0
--- /dev/null
+++ b/art/ic_send_videocam_online.svg
@@ -0,0 +1,55 @@
+
+
diff --git a/art/render.rb b/art/render.rb
index e20b951c7c318616c96ef3cb7ff3ea4995a8ca76..4c947f93cc806ef968823661cdafc55a9b95643a 100755
--- a/art/render.rb
+++ b/art/render.rb
@@ -47,6 +47,11 @@ images = {
'ic_send_picture_offline_white.svg' => ['ic_send_picture_offline_white', 36],
'ic_send_picture_away.svg' => ['ic_send_picture_away', 36],
'ic_send_picture_dnd.svg' => ['ic_send_picture_dnd', 36],
+ 'ic_send_videocam_online.svg' => ['ic_send_videocam_online', 36],
+ 'ic_send_videocam_offline.svg' => ['ic_send_videocam_offline', 36],
+ 'ic_send_videocam_offline_white.svg' => ['ic_send_videocam_offline_white', 36],
+ 'ic_send_videocam_away.svg' => ['ic_send_videocam_away', 36],
+ 'ic_send_videocam_dnd.svg' => ['ic_send_videocam_dnd', 36],
'ic_notifications_none_white80.svg' => ['ic_notifications_none_white80', 24],
'ic_notifications_off_white80.svg' => ['ic_notifications_off_white80', 24],
'ic_notifications_paused_white80.svg' => ['ic_notifications_paused_white80', 24],
diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java
index 44c31b45b207f9eeffbffa9ea2522c22fba6841b..8ec813ae276710789ca34abd8eb346d891bcf65e 100644
--- a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java
@@ -72,6 +72,8 @@ import eu.siacs.conversations.xmpp.jid.Jid;
public class ConversationActivity extends XmppActivity
implements OnAccountUpdate, OnConversationUpdate, OnRosterUpdate, OnUpdateBlocklist, XmppConnectionService.OnShowErrorToast {
+ public static final String RECENTLY_USED_QUICK_ACTION = "recently_used_quick_action";
+
public static final String ACTION_VIEW_CONVERSATION = "eu.siacs.conversations.action.VIEW";
public static final String CONVERSATION = "conversationUuid";
public static final String EXTRA_DOWNLOAD_UUID = "eu.siacs.conversations.download_uuid";
@@ -92,6 +94,7 @@ public class ConversationActivity extends XmppActivity
public static final int ATTACHMENT_CHOICE_RECORD_VOICE = 0x0304;
public static final int ATTACHMENT_CHOICE_LOCATION = 0x0305;
public static final int ATTACHMENT_CHOICE_INVALID = 0x0306;
+ public static final int ATTACHMENT_CHOICE_RECORD_VIDEO = 0x0307;
private static final String STATE_OPEN_CONVERSATION = "state_open_conversation";
private static final String STATE_PANEL_OPEN = "state_panel_open";
private static final String STATE_PENDING_URI = "state_pending_uri";
@@ -500,14 +503,17 @@ public class ConversationActivity extends XmppActivity
intent.setType("image/*");
chooser = true;
break;
+ case ATTACHMENT_CHOICE_RECORD_VIDEO:
+ intent.setAction(MediaStore.ACTION_VIDEO_CAPTURE);
+ break;
case ATTACHMENT_CHOICE_TAKE_PHOTO:
Uri uri = xmppConnectionService.getFileBackend().getTakePhotoUri();
+ mPendingImageUris.clear();
+ mPendingImageUris.add(uri);
+ intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
- intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
- mPendingImageUris.clear();
- mPendingImageUris.add(uri);
break;
case ATTACHMENT_CHOICE_CHOOSE_FILE:
chooser = true;
@@ -562,20 +568,30 @@ public class ConversationActivity extends XmppActivity
return;
}
}
+ final ConversationFragment.SendButtonAction action;
switch (attachmentChoice) {
case ATTACHMENT_CHOICE_LOCATION:
- getPreferences().edit().putString("recently_used_quick_action", "location").apply();
+ action = ConversationFragment.SendButtonAction.SEND_LOCATION;
break;
case ATTACHMENT_CHOICE_RECORD_VOICE:
- getPreferences().edit().putString("recently_used_quick_action", "voice").apply();
+ action = ConversationFragment.SendButtonAction.RECORD_VOICE;
+ break;
+ case ATTACHMENT_CHOICE_RECORD_VIDEO:
+ action = ConversationFragment.SendButtonAction.RECORD_VIDEO;
break;
case ATTACHMENT_CHOICE_TAKE_PHOTO:
- getPreferences().edit().putString("recently_used_quick_action", "photo").apply();
+ action = ConversationFragment.SendButtonAction.TAKE_PHOTO;
break;
case ATTACHMENT_CHOICE_CHOOSE_IMAGE:
- getPreferences().edit().putString("recently_used_quick_action", "picture").apply();
+ action = ConversationFragment.SendButtonAction.CHOOSE_PICTURE;
+ break;
+ default:
+ action = null;
break;
}
+ if (action != null) {
+ getPreferences().edit().putString(RECENTLY_USED_QUICK_ACTION,action.toString()).apply();
+ }
final Conversation conversation = getSelectedConversation();
final int encryption = conversation.getNextEncryption();
final int mode = conversation.getMode();
@@ -805,6 +821,9 @@ public class ConversationActivity extends XmppActivity
case R.id.attach_take_picture:
attachFile(ATTACHMENT_CHOICE_TAKE_PHOTO);
break;
+ case R.id.attach_record_video:
+ attachFile(ATTACHMENT_CHOICE_RECORD_VIDEO);
+ break;
case R.id.attach_choose_file:
attachFile(ATTACHMENT_CHOICE_CHOOSE_FILE);
break;
@@ -1414,8 +1433,9 @@ public class ConversationActivity extends XmppActivity
attachImageToConversation(getSelectedConversation(), i.next());
}
}
- } else if (requestCode == ATTACHMENT_CHOICE_CHOOSE_FILE || requestCode == ATTACHMENT_CHOICE_RECORD_VOICE) {
+ } else if (requestCode == ATTACHMENT_CHOICE_CHOOSE_FILE || requestCode == ATTACHMENT_CHOICE_RECORD_VOICE || requestCode == ATTACHMENT_CHOICE_RECORD_VIDEO) {
final List uris = extractUriFromIntent(data);
+ Log.d(Config.LOGTAG,"uris "+uris.toString());
final Conversation c = getSelectedConversation();
final OnPresenceSelected callback = new OnPresenceSelected() {
@Override
@@ -1424,7 +1444,7 @@ public class ConversationActivity extends XmppActivity
mPendingFileUris.addAll(uris);
if (xmppConnectionServiceBound) {
for (Iterator i = mPendingFileUris.iterator(); i.hasNext(); i.remove()) {
- Log.d(Config.LOGTAG,"ConversationsActivity.onActivityResult() - attaching file to conversations. CHOOSE_FILE/RECORD_VOICE");
+ Log.d(Config.LOGTAG,"ConversationsActivity.onActivityResult() - attaching file to conversations. CHOOSE_FILE/RECORD_VOICE/RECORD_VIDEO");
attachFileToConversation(c, i.next());
}
}
diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
index bdfc29956f0a9d3a13f9ebd4ef4a045c7ac69f11..d0af53c3b08d6583de81a97e26438a8eb3cf1c47 100644
--- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
+++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
@@ -46,7 +46,6 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
-import java.util.ListIterator;
import java.util.UUID;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -72,7 +71,6 @@ import eu.siacs.conversations.ui.adapter.MessageAdapter;
import eu.siacs.conversations.ui.adapter.MessageAdapter.OnContactPictureClicked;
import eu.siacs.conversations.ui.adapter.MessageAdapter.OnContactPictureLongClicked;
import eu.siacs.conversations.ui.widget.ListSelectionManager;
-import eu.siacs.conversations.utils.GeoHelper;
import eu.siacs.conversations.utils.NickValidityChecker;
import eu.siacs.conversations.utils.UIHelper;
import eu.siacs.conversations.xmpp.XmppConnection;
@@ -331,6 +329,9 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
case TAKE_PHOTO:
activity.attachFile(ConversationActivity.ATTACHMENT_CHOICE_TAKE_PHOTO);
break;
+ case RECORD_VIDEO:
+ activity.attachFile(ConversationActivity.ATTACHMENT_CHOICE_RECORD_VIDEO);
+ break;
case SEND_LOCATION:
activity.attachFile(ConversationActivity.ATTACHMENT_CHOICE_LOCATION);
break;
@@ -1152,7 +1153,16 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
mSendingPgpMessage.set(false);
}
- enum SendButtonAction {TEXT, TAKE_PHOTO, SEND_LOCATION, RECORD_VOICE, CANCEL, CHOOSE_PICTURE}
+ enum SendButtonAction {TEXT, TAKE_PHOTO, SEND_LOCATION, RECORD_VOICE, CANCEL, CHOOSE_PICTURE, RECORD_VIDEO;
+
+ public static SendButtonAction valueOfOrDefault(String setting, SendButtonAction text) {
+ try {
+ return valueOf(setting);
+ } catch (IllegalArgumentException e) {
+ return TEXT;
+ }
+ }
+ }
private int getSendButtonImageResource(SendButtonAction action, Presence.Status status) {
switch (action) {
@@ -1169,6 +1179,19 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
default:
return activity.getThemeResource(R.attr.ic_send_text_offline, R.drawable.ic_send_text_offline);
}
+ case RECORD_VIDEO:
+ switch (status) {
+ case CHAT:
+ case ONLINE:
+ return R.drawable.ic_send_videocam_online;
+ case AWAY:
+ return R.drawable.ic_send_videocam_away;
+ case XA:
+ case DND:
+ return R.drawable.ic_send_videocam_dnd;
+ default:
+ return activity.getThemeResource(R.attr.ic_send_videocam_offline, R.drawable.ic_send_videocam_offline);
+ }
case TAKE_PHOTO:
switch (status) {
case CHAT:
@@ -1268,26 +1291,14 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
} else {
String setting = activity.getPreferences().getString("quick_action", activity.getResources().getString(R.string.quick_action));
if (!setting.equals("none") && UIHelper.receivedLocationQuestion(conversation.getLatestMessage())) {
- setting = "location";
- } else if (setting.equals("recent")) {
- setting = activity.getPreferences().getString("recently_used_quick_action", "text");
- }
- switch (setting) {
- case "photo":
- action = SendButtonAction.TAKE_PHOTO;
- break;
- case "location":
- action = SendButtonAction.SEND_LOCATION;
- break;
- case "voice":
- action = SendButtonAction.RECORD_VOICE;
- break;
- case "picture":
- action = SendButtonAction.CHOOSE_PICTURE;
- break;
- default:
- action = SendButtonAction.TEXT;
- break;
+ action = SendButtonAction.SEND_LOCATION;
+ } else {
+ if (setting.equals("recent")) {
+ setting = activity.getPreferences().getString(ConversationActivity.RECENTLY_USED_QUICK_ACTION, SendButtonAction.TEXT.toString());
+ action = SendButtonAction.valueOfOrDefault(setting,SendButtonAction.TEXT);
+ } else {
+ action = SendButtonAction.valueOfOrDefault(setting,SendButtonAction.TEXT);
+ }
}
}
} else {
diff --git a/src/main/res/drawable-hdpi/ic_attach_videocam.png b/src/main/res/drawable-hdpi/ic_attach_videocam.png
new file mode 100644
index 0000000000000000000000000000000000000000..84cff7d9146d357de775e66c89303c38a1720e0e
Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_attach_videocam.png differ
diff --git a/src/main/res/drawable-hdpi/ic_attach_videocam_white.png b/src/main/res/drawable-hdpi/ic_attach_videocam_white.png
new file mode 100644
index 0000000000000000000000000000000000000000..d83e0d50c3dd1aa384568f658f815b35819462a0
Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_attach_videocam_white.png differ
diff --git a/src/main/res/drawable-hdpi/ic_send_videocam_away.png b/src/main/res/drawable-hdpi/ic_send_videocam_away.png
new file mode 100644
index 0000000000000000000000000000000000000000..c4f3dbdf5a50f26059a616706478b33bd1ef50c7
Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_send_videocam_away.png differ
diff --git a/src/main/res/drawable-hdpi/ic_send_videocam_dnd.png b/src/main/res/drawable-hdpi/ic_send_videocam_dnd.png
new file mode 100644
index 0000000000000000000000000000000000000000..9a1060012066ee9d04ff99aa858dc6213001842e
Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_send_videocam_dnd.png differ
diff --git a/src/main/res/drawable-hdpi/ic_send_videocam_offline.png b/src/main/res/drawable-hdpi/ic_send_videocam_offline.png
new file mode 100644
index 0000000000000000000000000000000000000000..ae5a88fd5db42e489ca405fdf9003ced11c8c2cd
Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_send_videocam_offline.png differ
diff --git a/src/main/res/drawable-hdpi/ic_send_videocam_offline_white.png b/src/main/res/drawable-hdpi/ic_send_videocam_offline_white.png
new file mode 100644
index 0000000000000000000000000000000000000000..aeab525bf7fb75b77a531654986fca4c712a9ed9
Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_send_videocam_offline_white.png differ
diff --git a/src/main/res/drawable-hdpi/ic_send_videocam_online.png b/src/main/res/drawable-hdpi/ic_send_videocam_online.png
new file mode 100644
index 0000000000000000000000000000000000000000..ece12febbc99008bb48a3bcc9782c637dcdba66f
Binary files /dev/null and b/src/main/res/drawable-hdpi/ic_send_videocam_online.png differ
diff --git a/src/main/res/drawable-mdpi/ic_attach_videocam.png b/src/main/res/drawable-mdpi/ic_attach_videocam.png
new file mode 100644
index 0000000000000000000000000000000000000000..3d6208975c24df9f96af04917051f623fd80d5a6
Binary files /dev/null and b/src/main/res/drawable-mdpi/ic_attach_videocam.png differ
diff --git a/src/main/res/drawable-mdpi/ic_attach_videocam_white.png b/src/main/res/drawable-mdpi/ic_attach_videocam_white.png
new file mode 100644
index 0000000000000000000000000000000000000000..d146209a5145962cfa3226918807fb663d2c7267
Binary files /dev/null and b/src/main/res/drawable-mdpi/ic_attach_videocam_white.png differ
diff --git a/src/main/res/drawable-mdpi/ic_send_videocam_away.png b/src/main/res/drawable-mdpi/ic_send_videocam_away.png
new file mode 100644
index 0000000000000000000000000000000000000000..bc71ca3e81b9d4207079b7749cc49b6da57405a1
Binary files /dev/null and b/src/main/res/drawable-mdpi/ic_send_videocam_away.png differ
diff --git a/src/main/res/drawable-mdpi/ic_send_videocam_dnd.png b/src/main/res/drawable-mdpi/ic_send_videocam_dnd.png
new file mode 100644
index 0000000000000000000000000000000000000000..15f07b9df57d7607877f4cca59bf1c50c76fee44
Binary files /dev/null and b/src/main/res/drawable-mdpi/ic_send_videocam_dnd.png differ
diff --git a/src/main/res/drawable-mdpi/ic_send_videocam_offline.png b/src/main/res/drawable-mdpi/ic_send_videocam_offline.png
new file mode 100644
index 0000000000000000000000000000000000000000..39126bf2df02ffcf650885c640f2c6899ac99da7
Binary files /dev/null and b/src/main/res/drawable-mdpi/ic_send_videocam_offline.png differ
diff --git a/src/main/res/drawable-mdpi/ic_send_videocam_offline_white.png b/src/main/res/drawable-mdpi/ic_send_videocam_offline_white.png
new file mode 100644
index 0000000000000000000000000000000000000000..04048266c8e728f8e5308b8ea0d9bd0204ba75a6
Binary files /dev/null and b/src/main/res/drawable-mdpi/ic_send_videocam_offline_white.png differ
diff --git a/src/main/res/drawable-mdpi/ic_send_videocam_online.png b/src/main/res/drawable-mdpi/ic_send_videocam_online.png
new file mode 100644
index 0000000000000000000000000000000000000000..071498ee84f18c3887aa53d2fddda632dc185d41
Binary files /dev/null and b/src/main/res/drawable-mdpi/ic_send_videocam_online.png differ
diff --git a/src/main/res/drawable-xhdpi/ic_attach_videocam.png b/src/main/res/drawable-xhdpi/ic_attach_videocam.png
new file mode 100644
index 0000000000000000000000000000000000000000..44bb7737cd26c46b876871e967a23ae175436345
Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_attach_videocam.png differ
diff --git a/src/main/res/drawable-xhdpi/ic_attach_videocam_white.png b/src/main/res/drawable-xhdpi/ic_attach_videocam_white.png
new file mode 100644
index 0000000000000000000000000000000000000000..1b2583d34e8bafff26a20f89c9d7cacf4525617e
Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_attach_videocam_white.png differ
diff --git a/src/main/res/drawable-xhdpi/ic_send_videocam_away.png b/src/main/res/drawable-xhdpi/ic_send_videocam_away.png
new file mode 100644
index 0000000000000000000000000000000000000000..321443f52c8c306759a9adccac3dc0144ffdb9bc
Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_send_videocam_away.png differ
diff --git a/src/main/res/drawable-xhdpi/ic_send_videocam_dnd.png b/src/main/res/drawable-xhdpi/ic_send_videocam_dnd.png
new file mode 100644
index 0000000000000000000000000000000000000000..c3e0fbf369878efdadf24f171dd2e0ccde296143
Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_send_videocam_dnd.png differ
diff --git a/src/main/res/drawable-xhdpi/ic_send_videocam_offline.png b/src/main/res/drawable-xhdpi/ic_send_videocam_offline.png
new file mode 100644
index 0000000000000000000000000000000000000000..d9b8750fbc8c77f8c1530cdad4d2ac1dc1c94432
Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_send_videocam_offline.png differ
diff --git a/src/main/res/drawable-xhdpi/ic_send_videocam_offline_white.png b/src/main/res/drawable-xhdpi/ic_send_videocam_offline_white.png
new file mode 100644
index 0000000000000000000000000000000000000000..0dd153812433cfdbea2412d163969d2f880e6abb
Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_send_videocam_offline_white.png differ
diff --git a/src/main/res/drawable-xhdpi/ic_send_videocam_online.png b/src/main/res/drawable-xhdpi/ic_send_videocam_online.png
new file mode 100644
index 0000000000000000000000000000000000000000..96cd271f3e1076514a4d8f74d7141b06ee0be4f4
Binary files /dev/null and b/src/main/res/drawable-xhdpi/ic_send_videocam_online.png differ
diff --git a/src/main/res/drawable-xxhdpi/ic_attach_videocam.png b/src/main/res/drawable-xxhdpi/ic_attach_videocam.png
new file mode 100644
index 0000000000000000000000000000000000000000..68eb877815876041340cb93f4a753cd65b291e02
Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_attach_videocam.png differ
diff --git a/src/main/res/drawable-xxhdpi/ic_attach_videocam_white.png b/src/main/res/drawable-xxhdpi/ic_attach_videocam_white.png
new file mode 100644
index 0000000000000000000000000000000000000000..44c28e2f2830f927973beaa3a143ddfe439f20ed
Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_attach_videocam_white.png differ
diff --git a/src/main/res/drawable-xxhdpi/ic_send_videocam_away.png b/src/main/res/drawable-xxhdpi/ic_send_videocam_away.png
new file mode 100644
index 0000000000000000000000000000000000000000..f86475ff98a6fee8011f5c4f51530a70b84d8c51
Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_send_videocam_away.png differ
diff --git a/src/main/res/drawable-xxhdpi/ic_send_videocam_dnd.png b/src/main/res/drawable-xxhdpi/ic_send_videocam_dnd.png
new file mode 100644
index 0000000000000000000000000000000000000000..fd1d5d5ebaf167d9e7eba60299bb8483a080276d
Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_send_videocam_dnd.png differ
diff --git a/src/main/res/drawable-xxhdpi/ic_send_videocam_offline.png b/src/main/res/drawable-xxhdpi/ic_send_videocam_offline.png
new file mode 100644
index 0000000000000000000000000000000000000000..0d5f52d92cc9ab3b3cae7cbfd4a6f1889c8b69e4
Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_send_videocam_offline.png differ
diff --git a/src/main/res/drawable-xxhdpi/ic_send_videocam_offline_white.png b/src/main/res/drawable-xxhdpi/ic_send_videocam_offline_white.png
new file mode 100644
index 0000000000000000000000000000000000000000..8df2bf1900df033084d6d944ccaab7f2831a990e
Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_send_videocam_offline_white.png differ
diff --git a/src/main/res/drawable-xxhdpi/ic_send_videocam_online.png b/src/main/res/drawable-xxhdpi/ic_send_videocam_online.png
new file mode 100644
index 0000000000000000000000000000000000000000..400b4a63935d039c161f8d4c79cd344522a1462c
Binary files /dev/null and b/src/main/res/drawable-xxhdpi/ic_send_videocam_online.png differ
diff --git a/src/main/res/drawable-xxxhdpi/ic_attach_videocam.png b/src/main/res/drawable-xxxhdpi/ic_attach_videocam.png
new file mode 100644
index 0000000000000000000000000000000000000000..992d6aaedb09fccca431f99ab09a507bd2443186
Binary files /dev/null and b/src/main/res/drawable-xxxhdpi/ic_attach_videocam.png differ
diff --git a/src/main/res/drawable-xxxhdpi/ic_attach_videocam_white.png b/src/main/res/drawable-xxxhdpi/ic_attach_videocam_white.png
new file mode 100644
index 0000000000000000000000000000000000000000..ed20c0706292403018b019329a4608db85d99e06
Binary files /dev/null and b/src/main/res/drawable-xxxhdpi/ic_attach_videocam_white.png differ
diff --git a/src/main/res/drawable-xxxhdpi/ic_send_videocam_away.png b/src/main/res/drawable-xxxhdpi/ic_send_videocam_away.png
new file mode 100644
index 0000000000000000000000000000000000000000..174b4ec604901c8b5352cd403ed38d4accb81a4f
Binary files /dev/null and b/src/main/res/drawable-xxxhdpi/ic_send_videocam_away.png differ
diff --git a/src/main/res/drawable-xxxhdpi/ic_send_videocam_dnd.png b/src/main/res/drawable-xxxhdpi/ic_send_videocam_dnd.png
new file mode 100644
index 0000000000000000000000000000000000000000..5abe11829710626dc60d47d174bf5273fb8342a5
Binary files /dev/null and b/src/main/res/drawable-xxxhdpi/ic_send_videocam_dnd.png differ
diff --git a/src/main/res/drawable-xxxhdpi/ic_send_videocam_offline.png b/src/main/res/drawable-xxxhdpi/ic_send_videocam_offline.png
new file mode 100644
index 0000000000000000000000000000000000000000..488d28bfe1f3bcf6c91ea638d81c277472586134
Binary files /dev/null and b/src/main/res/drawable-xxxhdpi/ic_send_videocam_offline.png differ
diff --git a/src/main/res/drawable-xxxhdpi/ic_send_videocam_offline_white.png b/src/main/res/drawable-xxxhdpi/ic_send_videocam_offline_white.png
new file mode 100644
index 0000000000000000000000000000000000000000..704c63c4d1ab36f58523f6b7545778f9c5abd203
Binary files /dev/null and b/src/main/res/drawable-xxxhdpi/ic_send_videocam_offline_white.png differ
diff --git a/src/main/res/drawable-xxxhdpi/ic_send_videocam_online.png b/src/main/res/drawable-xxxhdpi/ic_send_videocam_online.png
new file mode 100644
index 0000000000000000000000000000000000000000..79b1b985ca3a28167bedbdab5938341a882ecc82
Binary files /dev/null and b/src/main/res/drawable-xxxhdpi/ic_send_videocam_online.png differ
diff --git a/src/main/res/menu/attachment_choices.xml b/src/main/res/menu/attachment_choices.xml
index 28372c0a3b4d87669ac1cba3a5c9827551105c30..62e3f9acbbe57a385c1e0804f11363ba0a57640c 100644
--- a/src/main/res/menu/attachment_choices.xml
+++ b/src/main/res/menu/attachment_choices.xml
@@ -2,14 +2,14 @@
\ 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 8e57ef2d054506f08f2ab85bc12f6119bd0d4ac0..36c07d78e06d461d543b2c3a5e640e1b90fa82a3 100644
--- a/src/main/res/values-v21/themes.xml
+++ b/src/main/res/values-v21/themes.xml
@@ -29,9 +29,11 @@
- @drawable/ic_send_photo_offline
- @drawable/ic_send_picture_offline
- @drawable/ic_send_text_offline
+ - @drawable/ic_send_videocam_offline
- @drawable/ic_send_voice_offline
- @drawable/ic_attach_camera
+ - @drawable/ic_attach_videocam
- @drawable/ic_attach_document
- @drawable/ic_attach_location
- @drawable/ic_attach_photo
@@ -107,9 +109,11 @@
- @drawable/ic_send_photo_offline_white
- @drawable/ic_send_picture_offline_white
- @drawable/ic_send_text_offline_white
+ - @drawable/ic_send_videocam_offline_white
- @drawable/ic_send_voice_offline_white
- @drawable/ic_attach_camera_white
+ - @drawable/ic_attach_videocam_white
- @drawable/ic_attach_document_white
- @drawable/ic_attach_location_white
- @drawable/ic_attach_photo_white
diff --git a/src/main/res/values/arrays.xml b/src/main/res/values/arrays.xml
index 3ce79deecc7e03f67e6e0a436f438e13544676f4..63838b7e36a2f377460da72be5acdf0f5f0fa02e 100644
--- a/src/main/res/values/arrays.xml
+++ b/src/main/res/values/arrays.xml
@@ -52,6 +52,7 @@
- @string/none
- @string/recently_used
- @string/attach_take_picture
+ - @string/attach_record_video
- @string/attach_choose_picture
- @string/attach_record_voice
- @string/send_location
@@ -60,10 +61,11 @@
- none
- recent
- - photo
- - picture
- - voice
- - location
+ - TAKE_PHOTO
+ - RECORD_VIDEO
+ - CHOOSE_PICTURE
+ - RECORD_VOICE
+ - SEND_LOCATION
diff --git a/src/main/res/values/attrs.xml b/src/main/res/values/attrs.xml
index 33637e5b5f4d5a805f666b7014204d4cc9f4a5cb..f844894ba27cfe5b99d60042334cd80a3346b4f3 100644
--- a/src/main/res/values/attrs.xml
+++ b/src/main/res/values/attrs.xml
@@ -20,9 +20,11 @@
+
+
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index 5e86ca708d6b1089793588cf01ad6e03dbbd4dd6..0be4878c0fbd3b0d811069c494d819c6934447f3 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -724,4 +724,5 @@
Network is unreachable
Certificate does not contain a Jabber ID
partial
+ Record video
diff --git a/src/main/res/values/themes.xml b/src/main/res/values/themes.xml
index c4c925f325ab7e27de05c1a41c4b416c16bb0966..61ebb09246daa040d5d686537f5080b4f8781a71 100644
--- a/src/main/res/values/themes.xml
+++ b/src/main/res/values/themes.xml
@@ -25,9 +25,11 @@
- @drawable/ic_send_photo_offline
- @drawable/ic_send_picture_offline
- @drawable/ic_send_text_offline
+ - @drawable/ic_send_videocam_offline
- @drawable/ic_send_voice_offline
- @drawable/ic_attach_camera
+ - @drawable/ic_attach_videocam
- @drawable/ic_attach_document
- @drawable/ic_attach_location
- @drawable/ic_attach_photo
@@ -100,9 +102,11 @@
- @drawable/ic_send_photo_offline_white
- @drawable/ic_send_picture_offline_white
- @drawable/ic_send_text_offline_white
+ - @drawable/ic_send_videocam_offline_white
- @drawable/ic_send_voice_offline_white
- @drawable/ic_attach_camera_white
+ - @drawable/ic_attach_videocam_white
- @drawable/ic_attach_document_white
- @drawable/ic_attach_location_white
- @drawable/ic_attach_photo_white