aboutsummaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/de/pixart/messenger/ui/ConversationFragment.java79
-rw-r--r--src/main/java/de/pixart/messenger/ui/util/SendButtonAction.java17
-rw-r--r--src/main/java/de/pixart/messenger/ui/util/SendButtonTool.java15
-rw-r--r--src/main/res/drawable-hdpi/ic_attach_videocam.pngbin0 -> 222 bytes
-rw-r--r--src/main/res/drawable-hdpi/ic_send_videocam_away.pngbin0 -> 342 bytes
-rw-r--r--src/main/res/drawable-hdpi/ic_send_videocam_dnd.pngbin0 -> 397 bytes
-rw-r--r--src/main/res/drawable-hdpi/ic_send_videocam_online.pngbin0 -> 389 bytes
-rw-r--r--src/main/res/drawable-mdpi/ic_attach_videocam.pngbin0 -> 137 bytes
-rw-r--r--src/main/res/drawable-mdpi/ic_send_videocam_away.pngbin0 -> 217 bytes
-rw-r--r--src/main/res/drawable-mdpi/ic_send_videocam_dnd.pngbin0 -> 242 bytes
-rw-r--r--src/main/res/drawable-mdpi/ic_send_videocam_online.pngbin0 -> 245 bytes
-rw-r--r--src/main/res/drawable-xhdpi/ic_attach_videocam.pngbin0 -> 202 bytes
-rw-r--r--src/main/res/drawable-xhdpi/ic_send_videocam_away.pngbin0 -> 307 bytes
-rw-r--r--src/main/res/drawable-xhdpi/ic_send_videocam_dnd.pngbin0 -> 325 bytes
-rw-r--r--src/main/res/drawable-xhdpi/ic_send_videocam_online.pngbin0 -> 318 bytes
-rw-r--r--src/main/res/drawable-xxhdpi/ic_attach_videocam.pngbin0 -> 294 bytes
-rw-r--r--src/main/res/drawable-xxhdpi/ic_send_videocam_away.pngbin0 -> 609 bytes
-rw-r--r--src/main/res/drawable-xxhdpi/ic_send_videocam_dnd.pngbin0 -> 667 bytes
-rw-r--r--src/main/res/drawable-xxhdpi/ic_send_videocam_online.pngbin0 -> 654 bytes
-rw-r--r--src/main/res/drawable-xxxhdpi/ic_attach_videocam.pngbin0 -> 405 bytes
-rw-r--r--src/main/res/drawable-xxxhdpi/ic_send_videocam_away.pngbin0 -> 630 bytes
-rw-r--r--src/main/res/drawable-xxxhdpi/ic_send_videocam_dnd.pngbin0 -> 663 bytes
-rw-r--r--src/main/res/drawable-xxxhdpi/ic_send_videocam_online.pngbin0 -> 643 bytes
-rw-r--r--src/main/res/menu/choose_attachment.xml7
-rw-r--r--src/main/res/menu/fragment_conversation.xml36
-rw-r--r--src/main/res/values/arrays.xml6
-rw-r--r--src/main/res/values/attrs.xml1
-rw-r--r--src/main/res/values/themes.xml2
28 files changed, 90 insertions, 73 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java
index 0da5cf69c..94a7871bd 100644
--- a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java
+++ b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java
@@ -136,18 +136,18 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
public static final int REQUEST_ADD_EDITOR_CONTENT = 0x0211;
public static final int ATTACHMENT_CHOICE = 0x0300;
public static final int ATTACHMENT_CHOICE_CHOOSE_IMAGE = 0x0301;
- public static final int ATTACHMENT_CHOICE_TAKE_FROM_CAMERA = 0x0302;
+ public static final int ATTACHMENT_CHOICE_TAKE_PHOTO = 0x0302;
public static final int ATTACHMENT_CHOICE_CHOOSE_FILE = 0x0303;
public static final int ATTACHMENT_CHOICE_RECORD_VOICE = 0x0304;
public static final int ATTACHMENT_CHOICE_LOCATION = 0x0305;
public static final int ATTACHMENT_CHOICE_CHOOSE_VIDEO = 0x0306;
+ public static final int ATTACHMENT_CHOICE_RECORD_VIDEO = 0x0307;
public static final int ATTACHMENT_CHOICE_INVALID = 0x0399;
public static final String RECENTLY_USED_QUICK_ACTION = "recently_used_quick_action";
public static final String STATE_CONVERSATION_UUID = ConversationFragment.class.getName() + ".uuid";
public static final String STATE_SCROLL_POSITION = ConversationFragment.class.getName() + ".scroll_position";
public static final String STATE_PHOTO_URI = ConversationFragment.class.getName() + ".media_previews";
- public static final String STATE_VIDEO_URI = ConversationFragment.class.getName() + ".media_previews";
public static final String STATE_MEDIA_PREVIEWS = ConversationFragment.class.getName() + ".take_photo_uri";
private static final String STATE_LAST_MESSAGE_UUID = "state_last_message_uuid";
@@ -459,7 +459,8 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
switch (action) {
case CHOOSE_ATTACHMENT:
choose_attachment(v);
- case TAKE_FROM_CAMERA:
+ case TAKE_PHOTO:
+ case RECORD_VIDEO:
case SEND_LOCATION:
case RECORD_VOICE:
case CHOOSE_PICTURE:
@@ -630,6 +631,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
switch (attachmentItem.getItemId()) {
case R.id.attach_choose_picture:
case R.id.attach_take_picture:
+ case R.id.attach_record_video:
case R.id.attach_choose_file:
case R.id.attach_record_voice:
case R.id.attach_location:
@@ -1005,7 +1007,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
mediaPreviewAdapter.addMediaPreviews(imageUris);
toggleInputMethod();
break;
- case ATTACHMENT_CHOICE_TAKE_FROM_CAMERA:
+ case ATTACHMENT_CHOICE_TAKE_PHOTO:
final Uri takePhotoUri = pendingTakePhotoUri.pop();
if (takePhotoUri != null) {
mediaPreviewAdapter.addMediaPreviews(Attachment.of(getActivity(), takePhotoUri, Attachment.Type.IMAGE));
@@ -1015,6 +1017,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
}
break;
case ATTACHMENT_CHOICE_CHOOSE_FILE:
+ case ATTACHMENT_CHOICE_RECORD_VIDEO:
case ATTACHMENT_CHOICE_RECORD_VOICE:
final Attachment.Type type = requestCode == ATTACHMENT_CHOICE_RECORD_VOICE ? Attachment.Type.RECORDING : Attachment.Type.FILE;
final List<Attachment> fileUris = Attachment.extractAttachments(getActivity(), data, type);
@@ -1444,6 +1447,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
break;
case R.id.attach_choose_picture:
case R.id.attach_take_picture:
+ case R.id.attach_record_video:
case R.id.attach_choose_file:
case R.id.attach_record_voice:
case R.id.attach_location:
@@ -1500,7 +1504,10 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
attachFile(ATTACHMENT_CHOICE_CHOOSE_IMAGE);
break;
case R.id.attach_take_picture:
- attachFile(ATTACHMENT_CHOICE_TAKE_FROM_CAMERA);
+ 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);
@@ -1560,7 +1567,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
if (!hasPermissions(attachmentChoice, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.RECORD_AUDIO)) {
return;
}
- } else if (attachmentChoice == ATTACHMENT_CHOICE_TAKE_FROM_CAMERA) {
+ } else if (attachmentChoice == ATTACHMENT_CHOICE_TAKE_PHOTO || attachmentChoice == ATTACHMENT_CHOICE_RECORD_VIDEO) {
if (!hasPermissions(attachmentChoice, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA)) {
return;
}
@@ -1746,7 +1753,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
final int encryption = conversation.getNextEncryption();
final Account account = conversation.getAccount();
final PresenceSelector.OnPresenceSelected callback = () -> {
- final Intent intent = new Intent();
+ Intent intent = new Intent();
boolean chooser = false;
switch (attachmentChoice) {
case ATTACHMENT_CHOICE_CHOOSE_IMAGE:
@@ -1763,32 +1770,16 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setAction(Intent.ACTION_GET_CONTENT);
break;
- case ATTACHMENT_CHOICE_TAKE_FROM_CAMERA:
- AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
- builder.setTitle(getString(R.string.attach_take_from_camera));
- builder.setNegativeButton(getString(R.string.action_take_photo),
- (dialog, which) -> {
- final Uri uri = activity.xmppConnectionService.getFileBackend().getTakePhotoUri();
- pendingTakePhotoUri.push(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);
- startActivityForResult(intent, attachmentChoice);
- activity.overridePendingTransition(R.animator.fade_in, R.animator.fade_out);
- });
- builder.setPositiveButton(getString(R.string.action_take_video),
- (dialog, which) -> {
- final Uri uri = activity.xmppConnectionService.getFileBackend().getTakeVideoUri();
- pendingTakeVideoUri.push(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_VIDEO_CAPTURE);
- startActivityForResult(intent, attachmentChoice);
- activity.overridePendingTransition(R.animator.fade_in, R.animator.fade_out);
- });
- builder.create().show();
+ case ATTACHMENT_CHOICE_RECORD_VIDEO:
+ intent.setAction(MediaStore.ACTION_VIDEO_CAPTURE);
+ break;
+ case ATTACHMENT_CHOICE_TAKE_PHOTO:
+ final Uri uri = activity.xmppConnectionService.getFileBackend().getTakePhotoUri();
+ pendingTakePhotoUri.push(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);
break;
case ATTACHMENT_CHOICE_CHOOSE_FILE:
chooser = true;
@@ -1798,12 +1789,10 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
intent.setAction(Intent.ACTION_GET_CONTENT);
break;
case ATTACHMENT_CHOICE_RECORD_VOICE:
- startActivityForResult(new Intent(getActivity(), RecordingActivity.class), attachmentChoice);
- activity.overridePendingTransition(R.animator.fade_in, R.animator.fade_out);
+ intent = new Intent(getActivity(), RecordingActivity.class);
break;
case ATTACHMENT_CHOICE_LOCATION:
- startActivityForResult(new Intent(getActivity(), ShareLocationActivity.class), attachmentChoice);
- activity.overridePendingTransition(R.animator.fade_in, R.animator.fade_out);
+ intent = new Intent(getActivity(), ShareLocationActivity.class);
break;
}
if (intent.resolveActivity(getActivity().getPackageManager()) != null) {
@@ -1812,8 +1801,10 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
startActivityForResult(
Intent.createChooser(intent, getString(R.string.perform_action_with)),
attachmentChoice);
+ activity.overridePendingTransition(R.animator.fade_in, R.animator.fade_out);
} else {
startActivityForResult(intent, attachmentChoice);
+ activity.overridePendingTransition(R.animator.fade_in, R.animator.fade_out);
}
}
};
@@ -2025,13 +2016,9 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
if (conversation != null) {
outState.putString(STATE_CONVERSATION_UUID, conversation.getUuid());
outState.putString(STATE_LAST_MESSAGE_UUID, lastMessageUuid);
- final Uri PhotoUri = pendingTakePhotoUri.peek();
- final Uri VideoUri = pendingTakeVideoUri.peek();
- if (PhotoUri != null) {
- outState.putString(STATE_PHOTO_URI, PhotoUri.toString());
- }
- if (VideoUri != null) {
- outState.putString(STATE_VIDEO_URI, VideoUri.toString());
+ final Uri uri = pendingTakePhotoUri.peek();
+ if (uri != null) {
+ outState.putString(STATE_PHOTO_URI, uri.toString());
}
final ScrollState scrollState = getScrollPosition();
if (scrollState != null) {
@@ -2063,10 +2050,6 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
if (takePhotoUri != null) {
pendingTakePhotoUri.push(Uri.parse(takePhotoUri));
}
- String takeVideoUri = savedInstanceState.getString(STATE_VIDEO_URI);
- if (takeVideoUri != null) {
- pendingTakeVideoUri.push(Uri.parse(takeVideoUri));
- }
pendingScrollState.push(savedInstanceState.getParcelable(STATE_SCROLL_POSITION));
}
}
diff --git a/src/main/java/de/pixart/messenger/ui/util/SendButtonAction.java b/src/main/java/de/pixart/messenger/ui/util/SendButtonAction.java
index 9f9fabc5a..c7feb2105 100644
--- a/src/main/java/de/pixart/messenger/ui/util/SendButtonAction.java
+++ b/src/main/java/de/pixart/messenger/ui/util/SendButtonAction.java
@@ -33,10 +33,11 @@ import static de.pixart.messenger.ui.ConversationFragment.ATTACHMENT_CHOICE;
import static de.pixart.messenger.ui.ConversationFragment.ATTACHMENT_CHOICE_CHOOSE_IMAGE;
import static de.pixart.messenger.ui.ConversationFragment.ATTACHMENT_CHOICE_LOCATION;
import static de.pixart.messenger.ui.ConversationFragment.ATTACHMENT_CHOICE_RECORD_VOICE;
-import static de.pixart.messenger.ui.ConversationFragment.ATTACHMENT_CHOICE_TAKE_FROM_CAMERA;
+import static de.pixart.messenger.ui.ConversationFragment.ATTACHMENT_CHOICE_RECORD_VIDEO;
+import static de.pixart.messenger.ui.ConversationFragment.ATTACHMENT_CHOICE_TAKE_PHOTO;
public enum SendButtonAction {
- TEXT, TAKE_FROM_CAMERA, SEND_LOCATION, RECORD_VOICE, CANCEL, CHOOSE_PICTURE, CHOOSE_ATTACHMENT;
+ TEXT, TAKE_PHOTO, SEND_LOCATION, RECORD_VOICE, CANCEL, CHOOSE_PICTURE, RECORD_VIDEO, CHOOSE_ATTACHMENT;
public static SendButtonAction valueOfOrDefault(String setting, SendButtonAction text) {
try {
@@ -52,8 +53,10 @@ public enum SendButtonAction {
return SEND_LOCATION;
case ATTACHMENT_CHOICE_RECORD_VOICE:
return RECORD_VOICE;
- case ATTACHMENT_CHOICE_TAKE_FROM_CAMERA:
- return TAKE_FROM_CAMERA;
+ case ATTACHMENT_CHOICE_RECORD_VIDEO:
+ return RECORD_VIDEO;
+ case ATTACHMENT_CHOICE_TAKE_PHOTO:
+ return TAKE_PHOTO;
case ATTACHMENT_CHOICE_CHOOSE_IMAGE:
return CHOOSE_PICTURE;
case ATTACHMENT_CHOICE:
@@ -65,8 +68,10 @@ public enum SendButtonAction {
public int toChoice() {
switch (this) {
- case TAKE_FROM_CAMERA:
- return ATTACHMENT_CHOICE_TAKE_FROM_CAMERA;
+ case TAKE_PHOTO:
+ return ATTACHMENT_CHOICE_TAKE_PHOTO;
+ case RECORD_VIDEO:
+ return ATTACHMENT_CHOICE_RECORD_VIDEO;
case SEND_LOCATION:
return ATTACHMENT_CHOICE_LOCATION;
case RECORD_VOICE:
diff --git a/src/main/java/de/pixart/messenger/ui/util/SendButtonTool.java b/src/main/java/de/pixart/messenger/ui/util/SendButtonTool.java
index 67cd48b6a..96bcad183 100644
--- a/src/main/java/de/pixart/messenger/ui/util/SendButtonTool.java
+++ b/src/main/java/de/pixart/messenger/ui/util/SendButtonTool.java
@@ -105,7 +105,20 @@ public class SendButtonTool {
default:
return getThemeResource(activity, R.attr.ic_send_text_offline, R.drawable.ic_send_text_offline);
}
- case TAKE_FROM_CAMERA:
+ 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 getThemeResource(activity, R.attr.ic_send_videocam_offline, R.drawable.ic_send_videocam_offline);
+ }
+ case TAKE_PHOTO:
switch (status) {
case CHAT:
case ONLINE:
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 000000000..f95861633
--- /dev/null
+++ b/src/main/res/drawable-hdpi/ic_attach_videocam.png
Binary files 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 000000000..950db9d9e
--- /dev/null
+++ b/src/main/res/drawable-hdpi/ic_send_videocam_away.png
Binary files 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 000000000..8a3588678
--- /dev/null
+++ b/src/main/res/drawable-hdpi/ic_send_videocam_dnd.png
Binary files 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 000000000..ac5af607f
--- /dev/null
+++ b/src/main/res/drawable-hdpi/ic_send_videocam_online.png
Binary files 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 000000000..66aa2fe49
--- /dev/null
+++ b/src/main/res/drawable-mdpi/ic_attach_videocam.png
Binary files 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 000000000..55399ac8d
--- /dev/null
+++ b/src/main/res/drawable-mdpi/ic_send_videocam_away.png
Binary files 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 000000000..608947d59
--- /dev/null
+++ b/src/main/res/drawable-mdpi/ic_send_videocam_dnd.png
Binary files 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 000000000..90a152504
--- /dev/null
+++ b/src/main/res/drawable-mdpi/ic_send_videocam_online.png
Binary files 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 000000000..5f6054b81
--- /dev/null
+++ b/src/main/res/drawable-xhdpi/ic_attach_videocam.png
Binary files 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 000000000..69e340800
--- /dev/null
+++ b/src/main/res/drawable-xhdpi/ic_send_videocam_away.png
Binary files 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 000000000..e7f784d8b
--- /dev/null
+++ b/src/main/res/drawable-xhdpi/ic_send_videocam_dnd.png
Binary files 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 000000000..7cda9e6f0
--- /dev/null
+++ b/src/main/res/drawable-xhdpi/ic_send_videocam_online.png
Binary files 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 000000000..e74d2a776
--- /dev/null
+++ b/src/main/res/drawable-xxhdpi/ic_attach_videocam.png
Binary files 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 000000000..ce04c7790
--- /dev/null
+++ b/src/main/res/drawable-xxhdpi/ic_send_videocam_away.png
Binary files 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 000000000..24890da09
--- /dev/null
+++ b/src/main/res/drawable-xxhdpi/ic_send_videocam_dnd.png
Binary files 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 000000000..079cdef19
--- /dev/null
+++ b/src/main/res/drawable-xxhdpi/ic_send_videocam_online.png
Binary files 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 000000000..02fddb640
--- /dev/null
+++ b/src/main/res/drawable-xxxhdpi/ic_attach_videocam.png
Binary files 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 000000000..7e517e6be
--- /dev/null
+++ b/src/main/res/drawable-xxxhdpi/ic_send_videocam_away.png
Binary files 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 000000000..3077ee233
--- /dev/null
+++ b/src/main/res/drawable-xxxhdpi/ic_send_videocam_dnd.png
Binary files 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 000000000..0baef17f4
--- /dev/null
+++ b/src/main/res/drawable-xxxhdpi/ic_send_videocam_online.png
Binary files differ
diff --git a/src/main/res/menu/choose_attachment.xml b/src/main/res/menu/choose_attachment.xml
index ae6f47a95..a9a57404d 100644
--- a/src/main/res/menu/choose_attachment.xml
+++ b/src/main/res/menu/choose_attachment.xml
@@ -14,7 +14,12 @@
<item
android:id="@+id/attach_take_picture"
android:icon="?attr/ic_attach_camera"
- android:title="@string/attach_take_from_camera" />
+ android:title="@string/action_take_photo" />
+
+ <item
+ android:id="@+id/attach_record_video"
+ android:icon="?attr/ic_attach_videocam"
+ android:title="@string/action_take_video" />
<item
android:id="@+id/attach_record_voice"
android:icon="?attr/ic_attach_record"
diff --git a/src/main/res/menu/fragment_conversation.xml b/src/main/res/menu/fragment_conversation.xml
index 197dc8137..088501bcb 100644
--- a/src/main/res/menu/fragment_conversation.xml
+++ b/src/main/res/menu/fragment_conversation.xml
@@ -5,8 +5,8 @@
android:id="@+id/action_security"
android:icon="?attr/icon_not_secure"
android:orderInCategory="20"
- app:showAsAction="always"
- android:title="@string/action_secure" >
+ android:title="@string/action_secure"
+ app:showAsAction="always">
<menu>
<group android:checkableBehavior="single">
<item
@@ -28,8 +28,8 @@
android:id="@+id/action_attach_file"
android:icon="?attr/icon_new_attachment"
android:orderInCategory="30"
- app:showAsAction="always"
- android:title="@string/attach_file" >
+ android:title="@string/attach_file"
+ app:showAsAction="always">
<menu>
<item
@@ -45,7 +45,13 @@
<item
android:id="@+id/attach_take_picture"
android:icon="?attr/ic_attach_camera"
- android:title="@string/attach_take_from_camera" />
+ android:title="@string/action_take_photo" />
+
+ <item
+ android:id="@+id/attach_record_video"
+ android:icon="?attr/ic_attach_videocam"
+ android:title="@string/action_take_video" />
+
<item
android:id="@+id/attach_record_voice"
android:icon="?attr/ic_attach_record"
@@ -60,33 +66,33 @@
<item
android:id="@+id/action_invite"
android:orderInCategory="45"
- app:showAsAction="never"
- android:title="@string/invite_contact" />
+ android:title="@string/invite_contact"
+ app:showAsAction="never" />
<item
android:id="@+id/action_clear_history"
android:orderInCategory="50"
- app:showAsAction="never"
- android:title="@string/action_clear_history" />
+ android:title="@string/action_clear_history"
+ app:showAsAction="never" />
<item
android:id="@+id/action_archive_chat"
android:orderInCategory="60"
- app:showAsAction="never"
- android:title="@string/action_end_conversation" />
+ android:title="@string/action_end_conversation"
+ app:showAsAction="never" />
<item
android:id="@+id/action_create_issue"
android:orderInCategory="100"
- app:showAsAction="never"
- android:title="@string/create_issue" />
+ android:title="@string/create_issue"
+ app:showAsAction="never" />
<item
android:id="@+id/action_group_details"
+ android:icon="@drawable/ic_group_white_24dp"
android:orderInCategory="100"
android:title="@string/action_group_details"
- android:icon="@drawable/ic_group_white_24dp"
app:showAsAction="always" />
<item
android:id="@+id/action_contact_details"
+ android:icon="@drawable/ic_contact_white_24dp"
android:orderInCategory="100"
android:title="@string/action_contact_details"
- android:icon="@drawable/ic_contact_white_24dp"
app:showAsAction="always" />
</menu> \ No newline at end of file
diff --git a/src/main/res/values/arrays.xml b/src/main/res/values/arrays.xml
index ff36fe0ae..93da9bac4 100644
--- a/src/main/res/values/arrays.xml
+++ b/src/main/res/values/arrays.xml
@@ -37,7 +37,8 @@
<string-array name="quick_actions">
<item>@string/none</item>
<item>@string/recently_used</item>
- <item>@string/attach_take_from_camera</item>
+ <item>@string/action_take_photo</item>
+ <item>@string/action_take_video</item>
<item>@string/attach_choose_picture</item>
<item>@string/attach_record_voice</item>
<item>@string/send_location</item>
@@ -46,7 +47,8 @@
<string-array name="quick_action_values">
<item>none</item>
<item>recent</item>
- <item>TAKE_FROM_CAMERA</item>
+ <item>TAKE_PHOTO</item>
+ <item>RECORD_VIDEO</item>
<item>CHOOSE_PICTURE</item>
<item>RECORD_VOICE</item>
<item>SEND_LOCATION</item>
diff --git a/src/main/res/values/attrs.xml b/src/main/res/values/attrs.xml
index c8ccec47a..672cb00fb 100644
--- a/src/main/res/values/attrs.xml
+++ b/src/main/res/values/attrs.xml
@@ -93,6 +93,7 @@
<attr name="ic_attach_photo" format="reference" />
<attr name="ic_attach_record" format="reference" />
<attr name="ic_attach_video" format="reference" />
+ <attr name="ic_attach_videocam" format="reference" />
<attr name="ic_file_apk" format="reference" />
<attr name="ic_file_pdf" format="reference" />
diff --git a/src/main/res/values/themes.xml b/src/main/res/values/themes.xml
index 0d2eab4fe..50cf8e93a 100644
--- a/src/main/res/values/themes.xml
+++ b/src/main/res/values/themes.xml
@@ -119,6 +119,7 @@
<item name="delete_icon_alpha" type="float">0.70</item>
<item name="ic_attach_camera" type="reference">@drawable/ic_attach_camera</item>
+ <item type="reference" name="ic_attach_videocam">@drawable/ic_attach_videocam</item>
<item name="ic_attach_document" type="reference">@drawable/ic_attach_document</item>
<item name="ic_attach_location" type="reference">@drawable/ic_attach_location</item>
<item name="ic_attach_photo" type="reference">@drawable/ic_attach_photo</item>
@@ -221,6 +222,7 @@
</item>
<item name="ic_attach_camera" type="reference">@drawable/ic_attach_camera_white</item>
+ <item name="ic_attach_videocam" type="reference">@drawable/ic_attach_videocam_white</item>
<item name="ic_attach_video" type="reference">@drawable/ic_attach_videocam_white</item>
<item name="ic_attach_document" type="reference">@drawable/ic_attach_document_white</item>
<item name="ic_attach_location" type="reference">@drawable/ic_attach_location_white</item>