Remove calls to deprecated APIs

This commit is contained in:
Pierre-Yves Nicolas
2025-06-01 09:02:44 +02:00
parent 3ac5657671
commit fe409acf47

View File

@@ -1,6 +1,5 @@
package org.mydomain.myscan.view package org.mydomain.myscan.view
import android.content.Context
import android.content.pm.PackageManager.PERMISSION_GRANTED import android.content.pm.PackageManager.PERMISSION_GRANTED
import android.graphics.Bitmap import android.graphics.Bitmap
import android.util.Log import android.util.Log
@@ -9,13 +8,14 @@ import android.widget.LinearLayout
import android.widget.Toast import android.widget.Toast
import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
import androidx.camera.core.AspectRatio.RATIO_4_3
import androidx.camera.core.CameraSelector import androidx.camera.core.CameraSelector
import androidx.camera.core.ImageAnalysis import androidx.camera.core.ImageAnalysis
import androidx.camera.core.ImageCapture import androidx.camera.core.ImageCapture
import androidx.camera.core.ImageCaptureException import androidx.camera.core.ImageCaptureException
import androidx.camera.core.ImageProxy import androidx.camera.core.ImageProxy
import androidx.camera.core.Preview import androidx.camera.core.Preview
import androidx.camera.core.resolutionselector.AspectRatioStrategy
import androidx.camera.core.resolutionselector.ResolutionSelector
import androidx.camera.lifecycle.ProcessCameraProvider import androidx.camera.lifecycle.ProcessCameraProvider
import androidx.camera.view.PreviewView import androidx.camera.view.PreviewView
import androidx.compose.foundation.Canvas import androidx.compose.foundation.Canvas
@@ -64,7 +64,6 @@ fun CameraScreen(
uiState: CameraScreenState, uiState: CameraScreenState,
onImageAnalyzed: (ImageProxy) -> Unit, onImageAnalyzed: (ImageProxy) -> Unit,
) { ) {
// TODO Check the errors in the logs before the user gives the required authorization
val context = LocalContext.current val context = LocalContext.current
val requestPermissionLauncher = rememberLauncherForActivityResult( val requestPermissionLauncher = rememberLauncherForActivityResult(
ActivityResultContracts.RequestPermission() ActivityResultContracts.RequestPermission()
@@ -165,19 +164,22 @@ fun bindCameraUseCases(
onImageAnalyzed: (ImageProxy) -> Unit, onImageAnalyzed: (ImageProxy) -> Unit,
captureController: CameraCaptureController, captureController: CameraCaptureController,
) { ) {
val preview: Preview = Preview.Builder().setTargetAspectRatio(RATIO_4_3).build() val ratio_4_3 = ResolutionSelector.Builder()
.setAspectRatioStrategy(AspectRatioStrategy.RATIO_4_3_FALLBACK_AUTO_STRATEGY)
.build()
val preview: Preview = Preview.Builder().setResolutionSelector(ratio_4_3).build()
preview.surfaceProvider = previewView.surfaceProvider preview.surfaceProvider = previewView.surfaceProvider
val cameraSelector: CameraSelector = val cameraSelector: CameraSelector =
CameraSelector.Builder().requireLensFacing(CameraSelector.LENS_FACING_BACK).build() CameraSelector.Builder().requireLensFacing(CameraSelector.LENS_FACING_BACK).build()
val imageAnalysis = ImageAnalysis.Builder().setTargetAspectRatio(RATIO_4_3) val imageAnalysis = ImageAnalysis.Builder()
.setResolutionSelector(ratio_4_3)
.setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST) .setBackpressureStrategy(ImageAnalysis.STRATEGY_KEEP_ONLY_LATEST)
.setOutputImageFormat(ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888).build() .setOutputImageFormat(ImageAnalysis.OUTPUT_IMAGE_FORMAT_RGBA_8888).build()
imageAnalysis.setAnalyzer(executor, onImageAnalyzed) imageAnalysis.setAnalyzer(executor, onImageAnalyzed)
val imageCapture = ImageCapture.Builder() val imageCapture = ImageCapture.Builder()
.setTargetAspectRatio(RATIO_4_3) .setResolutionSelector(ratio_4_3)
.setCaptureMode(ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY) .setCaptureMode(ImageCapture.CAPTURE_MODE_MINIMIZE_LATENCY)
.build() .build()
captureController.imageCapture = imageCapture captureController.imageCapture = imageCapture