Advanced Configurations
MatrixScan Find is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Find to best fit your needs.
BarcodeFind Listener
You may want more fine-grained knowledge over the different events happening during the life of the BarcodeFind
mode, such as when the search starts, pauses, and stops.
To do this, you can directly register a BarcodeFindListener
on the mode itself, keeping in mind that these listeners are called from a background thread.
mode.addListener(new BarcodeFindListener() {
@Override
public void onSearchPaused(@NonNull Set<BarcodeFindItem> foundItems) {
// The mode was paused
}
@Override
public void onSearchStarted() {
// The mode was started
}
@Override
public void onSearchStopped(@NonNull Set<BarcodeFindItem> foundItems) {
// The mode was stopped after the finish button was clicked
}
});
Set up a transformation
Sometimes, the barcode data needs to be transformed. For example, if the barcode contains the product identifier and other information, when a product is scanned, the barcode data is first parsed (via a transformation) and then the input list is checked.
First implement the BarcodeFindTransformer interface. For example, if you want to only consider the first 5 characters:
class Transformer implements BarcodeFindTransformer {
@Override
public String transformBarcodeData(String data) {
return data.substring(0, 5);
}
}
Then the transformer needs to be set so it can be used by MatrixScan Find:
barcodeFind.setBarcodeTransformer(new Transformer())
UI Customization
The BarcodeFindView
by default shows a set of UI elements, any of which can be optionally hidden:
- Play/Pause button
- Finish button
- Searched items carousel
- Guidance hints
- Progress bar (hidden by default)
Each of these elements can be shown or hidden as needed. For example:
barcodeFindView.setShouldShowCarousel(false);
barcodeFindView.setShouldShowProgressBar(true);
// …