@@ -2109,8 +2109,8 @@ public class ConversationFragment extends XmppFragment
                 handleEncryptionSelection(item);
                 break;
             case R.id.attach_choose_picture:
-            case R.id.attach_take_picture:
-            case R.id.attach_record_video:
+            //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:
@@ -2394,12 +2394,12 @@ public class ConversationFragment extends XmppFragment
             case R.id.attach_choose_picture:
                 attachFile(ATTACHMENT_CHOICE_CHOOSE_IMAGE);
                 break;
-            case R.id.attach_take_picture:
+            /*case R.id.attach_take_picture:
                 attachFile(ATTACHMENT_CHOICE_TAKE_PHOTO);
                 break;
             case R.id.attach_record_video:
                 attachFile(ATTACHMENT_CHOICE_RECORD_VIDEO);
-                break;
+                break;*/
             case R.id.attach_choose_file:
                 attachFile(ATTACHMENT_CHOICE_CHOOSE_FILE);
                 break;
@@ -2757,31 +2757,39 @@ public class ConversationFragment extends XmppFragment
 
     protected void invokeAttachFileIntent(final int attachmentChoice) {
         Intent intent = new Intent();
-        boolean chooser = false;
+
+        final var takePhotoIntent = new Intent();
+        final Uri takePhotoUri = activity.xmppConnectionService.getFileBackend().getTakePhotoUri();
+        pendingTakePhotoUri.push(takePhotoUri);
+        takePhotoIntent.putExtra(MediaStore.EXTRA_OUTPUT, takePhotoUri);
+        takePhotoIntent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
+        takePhotoIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+        takePhotoIntent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
+
+        final var takeVideoIntent = new Intent();
+        takeVideoIntent.setAction(MediaStore.ACTION_VIDEO_CAPTURE);
+
         switch (attachmentChoice) {
             case ATTACHMENT_CHOICE_CHOOSE_IMAGE:
                 intent.setAction(Intent.ACTION_GET_CONTENT);
                 intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
-                intent.setType("image/*");
-                chooser = true;
+                intent.setType("*/*");
+                intent.putExtra(Intent.EXTRA_MIME_TYPES, new String[] {"image/*", "video/*"});
+                intent = Intent.createChooser(intent, getString(R.string.perform_action_with));
+                intent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] { takePhotoIntent, takeVideoIntent });
                 break;
             case ATTACHMENT_CHOICE_RECORD_VIDEO:
-                intent.setAction(MediaStore.ACTION_VIDEO_CAPTURE);
+                intent = takeVideoIntent;
                 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);
+                intent = takePhotoIntent;
                 break;
             case ATTACHMENT_CHOICE_CHOOSE_FILE:
-                chooser = true;
-                intent.setType("*/*");
+                intent.setAction(Intent.ACTION_GET_CONTENT);
                 intent.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
+                intent.setType("*/*");
                 intent.addCategory(Intent.CATEGORY_OPENABLE);
-                intent.setAction(Intent.ACTION_GET_CONTENT);
+                intent = Intent.createChooser(intent, getString(R.string.perform_action_with));
                 break;
             case ATTACHMENT_CHOICE_RECORD_VOICE:
                 intent = new Intent(getActivity(), RecordingActivity.class);
@@ -2795,13 +2803,7 @@ public class ConversationFragment extends XmppFragment
             return;
         }
         try {
-            if (chooser) {
-                startActivityForResult(
-                        Intent.createChooser(intent, getString(R.string.perform_action_with)),
-                        attachmentChoice);
-            } else {
-                startActivityForResult(intent, attachmentChoice);
-            }
+            startActivityForResult(intent, attachmentChoice);
         } catch (final ActivityNotFoundException e) {
             Toast.makeText(context, R.string.no_application_found, Toast.LENGTH_LONG).show();
         }
  
  
  
    
    @@ -202,7 +202,7 @@ public class Attachment implements Parcelable {
                     final Uri uri = clipData.getItemAt(i).getUri();
                     final String mime =
                             MimeUtils.guessMimeTypeFromUriAndMime(context, uri, contentType);
-                    uris.add(new Attachment(uri, type, mime));
+                    uris.add(new Attachment(uri, type != Type.IMAGE || mime.startsWith("image/") ? type : Type.FILE, mime));
                 }
             }
         } else {
  
  
  
    
    @@ -42,16 +42,6 @@
                 android:icon="@drawable/ic_image_24dp"
                 android:title="@string/attach_choose_picture" />
 
-            <item
-                android:id="@+id/attach_take_picture"
-                android:icon="@drawable/ic_camera_alt_24dp"
-                android:title="@string/attach_take_picture" />
-
-            <item
-                android:id="@+id/attach_record_video"
-                android:icon="@drawable/ic_videocam_24dp"
-                android:title="@string/attach_record_video" />
-
             <item
                 android:id="@+id/attach_record_voice"
                 android:icon="@drawable/ic_mic_24dp"
@@ -71,6 +61,7 @@
                 android:id="@+id/attach_subject"
                 android:icon="@drawable/subject"
                 android:title="Add Subject" />
+
             <item
                 android:id="@+id/attach_schedule"
                 android:icon="@drawable/schedule_message"
  
  
  
    
    @@ -142,7 +142,7 @@
     <string name="send_presence_updates">Send presence updates</string>
     <string name="receive_presence_updates">Receive presence updates</string>
     <string name="ask_for_presence_updates">Ask for presence updates</string>
-    <string name="attach_choose_picture">Choose picture</string>
+    <string name="attach_choose_picture">Choose media</string>
     <string name="attach_take_picture">Take picture</string>
     <string name="preemptively_grant">Preemptively grant subscription request</string>
     <string name="error_not_an_image_file">The file you selected is not an image</string>
@@ -526,7 +526,7 @@
     <string name="notify_never">Notifications disabled</string>
     <string name="notify_paused">Notifications paused</string>
     <string name="pref_picture_compression">Image Compression</string>
-    <string name="pref_picture_compression_summary">Hint: Use ‘Choose file’ instead of ‘Choose picture’ to send individual images uncompressed regardless of this setting.</string>
+    <string name="pref_picture_compression_summary">Hint: Use ‘Choose file’ instead of ‘Choose media’ to send individual images uncompressed regardless of this setting.</string>
     <string name="always">Always</string>
     <string name="large_images_only">Large images only</string>
     <string name="battery_optimizations_enabled">Battery optimizations enabled</string>