fix(onDetect): Fixed bug where onDetect method was being called multiple times. #594
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
A possible solution of this issue: Issue#510
In the relevant Kotlin code, to prevent duplicated invocation of the onDetect callback method upon successful barcode scanning, the function must exit immediately upon detecting the same barcode information within a short duration.
However, it has been observed that
newScannedBarcodes
is reset multiple times in quick succession, often resulting in an empty list. IfnewScannedBarcodes
is reset to an empty list between two successful scans, andlastScanned
is assigned a value fromnewScannedBarcodes
, the code to prevent redundancies will fail. Therefore, a check has been added to determine ifnewScannedBarcodes
is empty.This modification has been successfully tested on Oneplus 8 (Color OS 13), resolving the issue of duplicate calls to onDetect.