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