diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/Camera1Fragment.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/Camera1Fragment.java
index 4f075e6cbf..b368a24739 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/Camera1Fragment.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/Camera1Fragment.java
@@ -337,6 +337,11 @@ public class Camera1Fragment extends LoggingFragment implements CameraFragment,
onCaptureClicked();
});
+ captureButton.setOnLongClickListener(unused -> {
+ CameraFragment.toastVideoRecordingNotAvailable(requireContext());
+ return true;
+ });
+
orderEnforcer.run(Stage.CAMERA_PROPERTIES_AVAILABLE, () -> {
if (properties.getCameraCount() > 1) {
flipButton.setVisibility(properties.getCameraCount() > 1 ? View.VISIBLE : View.GONE);
diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraButtonView.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraButtonView.java
index 54790a7f14..52f3b737c3 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraButtonView.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraButtonView.java
@@ -186,11 +186,6 @@ public class CameraButtonView extends View {
canvas.drawArc(progressRect, 270f, 360f * progressPercent, false, progressPaint);
}
- @Override
- public void setOnLongClickListener(@Nullable OnLongClickListener listener) {
- throw new IllegalStateException("Use setVideoCaptureListener instead");
- }
-
public void setVideoCaptureListener(@Nullable VideoCaptureListener videoCaptureListener) {
if (isRecordingVideo) throw new IllegalStateException("Cannot set video capture listener while recording");
diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraFragment.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraFragment.java
index 302f9c5828..dc38b1a960 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraFragment.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraFragment.java
@@ -1,14 +1,17 @@
package org.thoughtcrime.securesms.mediasend;
import android.annotation.SuppressLint;
+import android.content.Context;
import android.content.res.Configuration;
import android.view.Window;
import android.view.WindowManager;
+import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.camera.view.video.ExperimentalVideo;
import androidx.fragment.app.Fragment;
+import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.mediasend.camerax.CameraXUtil;
import org.thoughtcrime.securesms.mms.MediaConstraints;
@@ -47,6 +50,11 @@ public interface CameraFragment {
}
}
+ static void toastVideoRecordingNotAvailable(@NonNull Context context) {
+ Toast.makeText(context, R.string.CameraFragment__video_recording_is_not_supported_on_your_device, Toast.LENGTH_SHORT)
+ .show();
+ }
+
void presentHud(int selectedMediaCount);
void fadeOutControls(@NonNull Runnable onEndAction);
void fadeInControls();
diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraXFragment.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraXFragment.java
index f5bc3c96f2..9774c46c06 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraXFragment.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraXFragment.java
@@ -398,6 +398,11 @@ public class CameraXFragment extends LoggingFragment implements CameraFragment {
Log.w(TAG, "Video capture is not supported on this device.", e);
}
} else {
+ captureButton.setOnLongClickListener(unused -> {
+ CameraFragment.toastVideoRecordingNotAvailable(requireContext());
+ return true;
+ });
+
Log.i(TAG, "Video capture not supported. " +
"API: " + Build.VERSION.SDK_INT + ", " +
"MFD: " + MemoryFileDescriptor.supported() + ", " +
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 5d66a32ac8..5f22225498 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -169,6 +169,10 @@
Medium
Small
+
+
+ Video recording is not supported on your device
+
Tap for photo, hold for video
Capture