Julian Steenbakker

bug: add null checks

@@ -120,7 +120,7 @@ class MobileScanner(private val activity: Activity, private val textureRegistry: @@ -120,7 +120,7 @@ class MobileScanner(private val activity: Activity, private val textureRegistry:
120 120
121 @ExperimentalGetImage 121 @ExperimentalGetImage
122 private fun start(call: MethodCall, result: MethodChannel.Result) { 122 private fun start(call: MethodCall, result: MethodChannel.Result) {
123 - if (camera != null && preview != null) { 123 + if (camera?.cameraInfo != null && preview != null && textureEntry != null) {
124 val resolution = preview!!.resolutionInfo!!.resolution 124 val resolution = preview!!.resolutionInfo!!.resolution
125 val portrait = camera!!.cameraInfo.sensorRotationDegrees % 180 == 0 125 val portrait = camera!!.cameraInfo.sensorRotationDegrees % 180 == 0
126 val width = resolution.width.toDouble() 126 val width = resolution.width.toDouble()
@@ -151,9 +151,16 @@ class MobileScanner(private val activity: Activity, private val textureRegistry: @@ -151,9 +151,16 @@ class MobileScanner(private val activity: Activity, private val textureRegistry:
151 151
152 future.addListener({ 152 future.addListener({
153 cameraProvider = future.get() 153 cameraProvider = future.get()
  154 + if (cameraProvider == null) {
  155 + result.error("cameraProvider", "cameraProvider is null", null)
  156 + return@addListener
  157 + }
154 cameraProvider!!.unbindAll() 158 cameraProvider!!.unbindAll()
155 textureEntry = textureRegistry.createSurfaceTexture() 159 textureEntry = textureRegistry.createSurfaceTexture()
156 - 160 + if (textureEntry == null) {
  161 + result.error("textureEntry", "textureEntry is null", null)
  162 + return@addListener
  163 + }
157 // Preview 164 // Preview
158 val surfaceProvider = Preview.SurfaceProvider { request -> 165 val surfaceProvider = Preview.SurfaceProvider { request ->
159 val texture = textureEntry!!.surfaceTexture() 166 val texture = textureEntry!!.surfaceTexture()
@@ -187,6 +194,11 @@ class MobileScanner(private val activity: Activity, private val textureRegistry: @@ -187,6 +194,11 @@ class MobileScanner(private val activity: Activity, private val textureRegistry:
187 Log.i("LOG", "Analyzer: $analysisSize") 194 Log.i("LOG", "Analyzer: $analysisSize")
188 Log.i("LOG", "Preview: $previewSize") 195 Log.i("LOG", "Preview: $previewSize")
189 196
  197 + if (camera == null) {
  198 + result.error("camera", "camera is null", null)
  199 + return@addListener
  200 + }
  201 +
190 // Register the torch listener 202 // Register the torch listener
191 camera!!.cameraInfo.torchState.observe(activity) { state -> 203 camera!!.cameraInfo.torchState.observe(activity) { state ->
192 // TorchState.OFF = 0; TorchState.ON = 1 204 // TorchState.OFF = 0; TorchState.ON = 1