Enable both use-cases if available.

This commit is contained in:
Alex Hart 2022-08-26 10:23:18 -03:00
parent fae2ceab39
commit 51647a5017
4 changed files with 12 additions and 6 deletions

View file

@ -81,7 +81,7 @@ class Material3SearchToolbar @JvmOverloads constructor(
} }
fun clearText() { fun clearText() {
input.setText(""); input.setText("")
} }
interface Listener { interface Listener {

View file

@ -212,7 +212,7 @@ class MainActivityListHostFragment : Fragment(R.layout.main_activity_list_host_f
override fun onSearchOpened() { override fun onSearchOpened() {
conversationListTabsViewModel.onSearchOpened() conversationListTabsViewModel.onSearchOpened()
_searchToolbar.get().clearText(); _searchToolbar.get().clearText()
} }
override fun onSearchClosed() { override fun onSearchClosed() {

View file

@ -139,7 +139,7 @@ public class CameraXFragment extends LoggingFragment implements CameraFragment {
cameraController.setCameraSelector(CameraXUtil.toCameraSelector(TextSecurePreferences.getDirectCaptureCameraId(requireContext()))); cameraController.setCameraSelector(CameraXUtil.toCameraSelector(TextSecurePreferences.getDirectCaptureCameraId(requireContext())));
cameraController.setTapToFocusEnabled(true); cameraController.setTapToFocusEnabled(true);
cameraController.setImageCaptureMode(CameraXUtil.getOptimalCaptureMode()); cameraController.setImageCaptureMode(CameraXUtil.getOptimalCaptureMode());
cameraController.setEnabledUseCases(CameraController.IMAGE_CAPTURE); cameraController.setEnabledUseCases(getSupportedUseCases());
previewView.setScaleType(PreviewView.ScaleType.FIT_CENTER); previewView.setScaleType(PreviewView.ScaleType.FIT_CENTER);
previewView.setController(cameraController); 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) { private boolean isVideoRecordingSupported(@NonNull Context context) {
return Build.VERSION.SDK_INT >= 26 && return Build.VERSION.SDK_INT >= 26 &&
requireArguments().getBoolean(IS_VIDEO_ENABLED, true) && requireArguments().getBoolean(IS_VIDEO_ENABLED, true) &&
@ -445,7 +454,6 @@ public class CameraXFragment extends LoggingFragment implements CameraFragment {
selfieFlash selfieFlash
); );
cameraController.setEnabledUseCases(CameraController.IMAGE_CAPTURE);
cameraController.takePicture(Executors.mainThreadExecutor(), new ImageCapture.OnImageCapturedCallback() { cameraController.takePicture(Executors.mainThreadExecutor(), new ImageCapture.OnImageCapturedCallback() {
@Override @Override
public void onCaptureSuccess(@NonNull ImageProxy image) { public void onCaptureSuccess(@NonNull ImageProxy image) {

View file

@ -129,7 +129,6 @@ class CameraXVideoCaptureHelper implements CameraButtonView.VideoCaptureListener
OutputFileOptions options = OutputFileOptions.builder(memoryFileDescriptor.getParcelFileDescriptor()).build(); OutputFileOptions options = OutputFileOptions.builder(memoryFileDescriptor.getParcelFileDescriptor()).build();
cameraController.setEnabledUseCases(CameraController.VIDEO_CAPTURE);
cameraController.startRecording(options, Executors.mainThreadExecutor(), videoSavedListener); cameraController.startRecording(options, Executors.mainThreadExecutor(), videoSavedListener);
updateProgressAnimator.start(); updateProgressAnimator.start();
debouncer.publish(this::onVideoCaptureComplete); debouncer.publish(this::onVideoCaptureComplete);
@ -190,7 +189,6 @@ class CameraXVideoCaptureHelper implements CameraButtonView.VideoCaptureListener
Log.d(TAG, "onVideoCaptureComplete"); Log.d(TAG, "onVideoCaptureComplete");
cameraController.stopRecording(); cameraController.stopRecording();
cameraController.setEnabledUseCases(CameraController.IMAGE_CAPTURE);
if (cameraMetricsAnimator != null && cameraMetricsAnimator.isRunning()) { if (cameraMetricsAnimator != null && cameraMetricsAnimator.isRunning()) {
cameraMetricsAnimator.reverse(); cameraMetricsAnimator.reverse();