diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7abaec4..9246e0f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,10 +5,10 @@ agp = "8.11.1" compose = "1.8.1" atomicfu = "0.28.0" -camera-core = "1.4.2" -camera-extensions = "1.4.2" -camera-lifecycle = "1.4.2" -camera-view = "1.4.2" +camera-core = "1.5.0" +camera-extensions = "1.5.0" +camera-lifecycle = "1.5.0" +camera-view = "1.5.0" mlKit = "17.3.0" playServicesMlkit = "18.3.1" diff --git a/scan-engine/src/androidMain/kotlin/de/tillhub/scanengine/camera/CameraController.android.kt b/scan-engine/src/androidMain/kotlin/de/tillhub/scanengine/camera/CameraController.android.kt index 4c3b6e4..85095ac 100644 --- a/scan-engine/src/androidMain/kotlin/de/tillhub/scanengine/camera/CameraController.android.kt +++ b/scan-engine/src/androidMain/kotlin/de/tillhub/scanengine/camera/CameraController.android.kt @@ -19,6 +19,7 @@ import com.google.mlkit.vision.barcode.BarcodeScanning import com.google.mlkit.vision.barcode.common.Barcode import com.google.mlkit.vision.common.InputImage import de.tillhub.scanengine.camera.common.CameraProvider +import de.tillhub.scanengine.camera.common.Manufacturer import java.util.concurrent.Executor /** @@ -87,6 +88,12 @@ internal actual class CameraController( .setResolutionSelector(createResolutionSelector()) .build() .also { + previewView.apply { + if (Manufacturer.matches(Manufacturer.VERIFONE)) { + scaleX = -1f + scaleY = -1f + } + } it.surfaceProvider = previewView.surfaceProvider } diff --git a/scan-engine/src/androidMain/kotlin/de/tillhub/scanengine/camera/common/Manufacturer.kt b/scan-engine/src/androidMain/kotlin/de/tillhub/scanengine/camera/common/Manufacturer.kt new file mode 100644 index 0000000..df743c5 --- /dev/null +++ b/scan-engine/src/androidMain/kotlin/de/tillhub/scanengine/camera/common/Manufacturer.kt @@ -0,0 +1,14 @@ +package de.tillhub.scanengine.camera.common + +import android.os.Build + +internal enum class Manufacturer(open val value: String) { + VERIFONE("Verifone"), + OTHER("OTHER"), + ; + + companion object { + fun get(): Manufacturer = entries.firstOrNull { it.value == Build.MANUFACTURER } ?: OTHER + fun matches(value: Manufacturer): Boolean = get() == value + } +}