From 26c74157135ba4562aa968f71b0744cf4acc7b0f Mon Sep 17 00:00:00 2001 From: Tomasz Cielecki Date: Wed, 6 Jan 2021 18:21:29 +0100 Subject: [PATCH] Fix scanning not running when calling StartScanning If someone calls StartScanning before the OnCreateView lifecycle method is finished doing its thing setting up the Surface etc. Then the callback they pass in StartScanning, never gets triggered. This fixes the issue, by assuming that in case of someone calling StartScanning before OnCreateView, then `scanCallback` is set. In such case just call StartScanning again to acutally start scanning and the Scan() method is invoked. --- ZXing.Net.Mobile/Android/ZXingScannerFragment.android.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ZXing.Net.Mobile/Android/ZXingScannerFragment.android.cs b/ZXing.Net.Mobile/Android/ZXingScannerFragment.android.cs index 5d5895d5c..8ffd3c674 100644 --- a/ZXing.Net.Mobile/Android/ZXingScannerFragment.android.cs +++ b/ZXing.Net.Mobile/Android/ZXingScannerFragment.android.cs @@ -50,6 +50,12 @@ public override View OnCreateView(LayoutInflater layoutInflater, ViewGroup viewG Console.WriteLine("Create Surface View Failed: " + ex); } + // Someone tried to call StartScanning before we were ready. Call it again. + if (scanCallback != null) + { + StartScanning(scanCallback, ScanningOptions); + } + Android.Util.Log.Debug(MobileBarcodeScanner.TAG, "ZXingScannerFragment->OnResume exit"); return frame;