From 51647a5017849a64b1252e1e3f38545144df1255 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Fri, 26 Aug 2022 10:23:18 -0300 Subject: [PATCH] Enable both use-cases if available. --- .../securesms/components/Material3SearchToolbar.kt | 2 +- .../securesms/main/MainActivityListHostFragment.kt | 2 +- .../securesms/mediasend/CameraXFragment.java | 12 ++++++++++-- .../mediasend/CameraXVideoCaptureHelper.java | 2 -- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/Material3SearchToolbar.kt b/app/src/main/java/org/thoughtcrime/securesms/components/Material3SearchToolbar.kt index f6a04c9ff4..22b27e9135 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/Material3SearchToolbar.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/Material3SearchToolbar.kt @@ -81,7 +81,7 @@ class Material3SearchToolbar @JvmOverloads constructor( } fun clearText() { - input.setText(""); + input.setText("") } interface Listener { diff --git a/app/src/main/java/org/thoughtcrime/securesms/main/MainActivityListHostFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/main/MainActivityListHostFragment.kt index 8a0af2f0da..37de220918 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/main/MainActivityListHostFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/main/MainActivityListHostFragment.kt @@ -212,7 +212,7 @@ class MainActivityListHostFragment : Fragment(R.layout.main_activity_list_host_f override fun onSearchOpened() { conversationListTabsViewModel.onSearchOpened() - _searchToolbar.get().clearText(); + _searchToolbar.get().clearText() } override fun onSearchClosed() { 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 63fb63c382..2a1c925913 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraXFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraXFragment.java @@ -139,7 +139,7 @@ public class CameraXFragment extends LoggingFragment implements CameraFragment { cameraController.setCameraSelector(CameraXUtil.toCameraSelector(TextSecurePreferences.getDirectCaptureCameraId(requireContext()))); cameraController.setTapToFocusEnabled(true); cameraController.setImageCaptureMode(CameraXUtil.getOptimalCaptureMode()); - cameraController.setEnabledUseCases(CameraController.IMAGE_CAPTURE); + cameraController.setEnabledUseCases(getSupportedUseCases()); previewView.setScaleType(PreviewView.ScaleType.FIT_CENTER); previewView.setController(cameraController); @@ -378,6 +378,15 @@ public class CameraXFragment extends LoggingFragment implements CameraFragment { } } + @CameraController.UseCases + private int getSupportedUseCases() { + if (isVideoRecordingSupported(requireContext())) { + return CameraController.IMAGE_CAPTURE | CameraController.VIDEO_CAPTURE; + } else { + return CameraController.IMAGE_CAPTURE; + } + } + private boolean isVideoRecordingSupported(@NonNull Context context) { return Build.VERSION.SDK_INT >= 26 && requireArguments().getBoolean(IS_VIDEO_ENABLED, true) && @@ -445,7 +454,6 @@ public class CameraXFragment extends LoggingFragment implements CameraFragment { selfieFlash ); - cameraController.setEnabledUseCases(CameraController.IMAGE_CAPTURE); cameraController.takePicture(Executors.mainThreadExecutor(), new ImageCapture.OnImageCapturedCallback() { @Override public void onCaptureSuccess(@NonNull ImageProxy image) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraXVideoCaptureHelper.java b/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraXVideoCaptureHelper.java index 54e563818e..56bc38dcf9 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraXVideoCaptureHelper.java +++ b/app/src/main/java/org/thoughtcrime/securesms/mediasend/CameraXVideoCaptureHelper.java @@ -129,7 +129,6 @@ class CameraXVideoCaptureHelper implements CameraButtonView.VideoCaptureListener OutputFileOptions options = OutputFileOptions.builder(memoryFileDescriptor.getParcelFileDescriptor()).build(); - cameraController.setEnabledUseCases(CameraController.VIDEO_CAPTURE); cameraController.startRecording(options, Executors.mainThreadExecutor(), videoSavedListener); updateProgressAnimator.start(); debouncer.publish(this::onVideoCaptureComplete); @@ -190,7 +189,6 @@ class CameraXVideoCaptureHelper implements CameraButtonView.VideoCaptureListener Log.d(TAG, "onVideoCaptureComplete"); cameraController.stopRecording(); - cameraController.setEnabledUseCases(CameraController.IMAGE_CAPTURE); if (cameraMetricsAnimator != null && cameraMetricsAnimator.isRunning()) { cameraMetricsAnimator.reverse();