Navaron Bracke

inline display listener instead of separate class

... ... @@ -44,7 +44,7 @@ class MobileScanner(
private var scanner = BarcodeScanning.getClient()
private var lastScanned: List<String?>? = null
private var scannerTimeout = false
private var displayListener: MobileScannerDisplayListener? = null
private var displayListener: DisplayManager.DisplayListener? = null
/// Configurable variables
var scanWindow: List<Float>? = null
... ... @@ -272,9 +272,15 @@ class MobileScanner(
analysisBuilder.setTargetResolution(getResolution(cameraResolution))
if (displayListener == null) {
displayListener = MobileScannerDisplayListener {
displayListener = object : DisplayManager.DisplayListener {
override fun onDisplayAdded(displayId: Int) {}
override fun onDisplayRemoved(displayId: Int) {}
override fun onDisplayChanged(displayId: Int) {
analysisBuilder.setTargetResolution(getResolution(cameraResolution))
}
}
displayManager.registerDisplayListener(
displayListener, null,
... ...
package dev.steenbakker.mobile_scanner
import android.hardware.display.DisplayManager
/**
* This class will listen for display changes
* and executes `onUpdateResolution` when that happens.
*/
class MobileScannerDisplayListener(
private val onUpdateResolution: () -> Unit
) : DisplayManager.DisplayListener {
override fun onDisplayAdded(displayId: Int) {}
override fun onDisplayRemoved(displayId: Int) {}
override fun onDisplayChanged(displayId: Int) {
onUpdateResolution()
}
}
\ No newline at end of file