Skip to content

Releases: enioka-Haute-Couture/enioka_scan

2.3.2

19 Jul 15:14
Compare
Choose a tag to compare

This is a maintenance release. All 2.3.x users should update to this version. There are no breaking changes.

Camera scanner:

  • Camera V2 view now processes barcodes better in portrait mode (used to be quite hard compared to V1).
  • Camera V2 now truly targets barcode inside the targeting view (used to be a little off when the targeting rectangle was all on top or bottom of the view)
  • Camera V2 now uses adaptive resolution as for V1 (was initially left to do for next major version)
  • Added view parameter useAdaptiveResolution to enable or disable the automatic search for the best camera resolution. Default is on, as it used to be. If disabled, the highest resolution found is used.
  • Added view parameter storePreferredResolution to enable the storage of the best camera resolution found (it speeds later application starts). Default is enabled as before.
  • Added view parameter maxResolutionY to limit the available camera resolutions to the ones below or equal this line number. Default is 1080.
  • Added view parameter maxDistortionRatio to limit the available camera resolutions to the ones which x/y ratio is near the view ratio. Default is 0.3 as before. (meaning if the view is a square, ratio 1, we will consider resolutions with a x/y ratio from 0.7 to 1.3)
  • Added view parameter previewRatioMode, to either add black bars to the camera preview to respect the source ratio, or to stretch the preview in order to fill the space. Default is to stretch as before.

Misc

  • Doc was updated with latest parameters

2.3.1

17 Jul 20:17
Compare
Choose a tag to compare

This is a maintenance release. All 2.3.x users should update to this version. There are no breaking changes.

Camera scanner:

  • fixed a regression that failed to reinitialise the camera after some lifecycle events such as sleep
  • drastically lowered memory requirements when using Camera V2 API
  • for extensibility, future barcode analyzers can no longer crash the process

M3 provider:

  • this provider is now published on Maven Central with the others

Koamtac provider:

  • this provider is now published on Maven Central with the others

All open source Bluetooth SPP providers:

  • added permission check for newer (finer grained) BT permissions

Build:

  • Build SDK version was updated to 33

2.3.0

05 Jul 17:08
Compare
Choose a tag to compare

(Since 2.2)

This release is mainly an overhaul of the camera management, introducing the usage of more recent Android APIs. Many usability options were also introduced in this release.

It contains no breaking changes (from previous 2.x releases). However, some defaut configurations have changed and the release notes should be read carefully to adapt your configuration if needed.

Work on Camera scanner:

  • When no hardware scanner is available, we can now use Camera2 compatible cameras in addition to the already present Camera1. The choice between camera1 and 2 is automatic. It can also be forced with a view parameter. Both versions have the same functionalities.
  • Added multiple options (XML attributes) to the camera view, see documentation.
    • Targeting view (the rectangle) can now be locked in place (it is still dragable by default)
    • Targeting view color can be changed
    • Targeting view stroke width can be changed
    • The reader engine (ZBar or ZXing) can be chosen
    • The Camera API version can be forced (should only be used for debugging purposes)
  • Default targeting rectangle is now centered

Work on the scanner management service:

  • Providers that use bluetooth are now disabled by default when using the service. To enable them, use startup options. (why? because BT search is always very long, and you should not have to suffer a long search by default)
  • Providers that use intent services (locally installed device-specific services) are still enabled by default, but can be disabled with a startup option when using the service
  • A new helper was created to reduce boilerplate code when binding the service at the app level (com.enioka.scanner.service.ScannerServiceBinderHelper)

Work on the ScannerCompatActivity activity:

  • Added more access to the internals of the scanning activity: access to service (and therefore scanners), button IDs...
  • Intent & BT scanners are now disabled by default in the main activity (new scanner search options, see service changes as it is the same)
  • Laser scanners are now always resumed on ScannerCompatActivity initial creation
  • Automatic toggle between laser and camera scanners in ScannerCompatActivity was fixed in multiple cases

Providers:

  • EMDK (Zebra) provider was updated with latest driver.
  • EMDK (Zebra) provider is now compatible with Android API level 30+
  • EMDK (Zebra) provider no longer writes a warning on each scan in the log
  • Zebra Bluetooth provider (using official driver, not provided) can now detect if the driver is present or not and fail gracefuly if not.
  • The Zebra closed source provider (it contains both EMDK & bluetooth) is now also published on Maven Central (com.enioka.scanner:provider-cs-zebra:2.3.0).
  • The Honeywell AIDC closed source provider is now also published on Maven Central (com.enioka.scanner:provider-cs-honeywell:2.3.0).

Misc:

  • Build Gradle plugin was updated to latest version. Developpers must now use JDK 17+.
  • Some of our libraries now have less (more granular) dependencies. JCenter is no longer needed.
  • The documentation was updated with the new options. There is still work to do in that area, including providing samples of the most common use cases.

2.2.0

11 Jan 14:39
07c758e
Compare
Choose a tag to compare
  • Added access to the "raw" barcode data - without trimming carriage returns and the like. This is in addition to the existing trimmed data.
  • Added AZTEC symbology to Honeywell provider

2.1.0

21 Sep 07:11
9aeba6c
Compare
Choose a tag to compare
  • Add AZTEC symbology to Zebra devices and SPA43
  • Fix crash caused by changing symbologies via scanning a specific barcode on ZebraOSS SDK

2.0.0

09 May 10:03
d553429
Compare
Choose a tag to compare

Added

  • LaserScanner was expanded to give access to the cache of discovered providers and the option to re-discover them:
    • discoverProviders()
    • getProviderCache()
  • ScannerServiceApi methods to expand control on the scanner search, lifecycle and client hooks:
    • unregisterClient()
    • restartProviderDiscovery()
    • getAvailableProviders()
    • updateScannerSearchOptions()
  • ScannerSearchOptions methods to simplify manipulating intent extras from the service API:
    • fromIntentExtras()
    • toIntentExtras()
  • ScannerSearchOptions options to decide whether the service should start searching for scanners on bind or not
  • Most (if not all) callback interfaces now have a Proxy implementation that centralize jumps to the UI thread:
    • ProviderDiscoveredCallback
    • ScannerCommandCallback
    • ScannerConnectionHandler
    • ScannerDataCallback
    • ScannerInitCallback
    • ScannerStatusCallback
  • New and updated scanner SDKs:
    • Zebra: rework of the existing OSS driver for Zebra, fixing mistakes in the protocol and adding bases for future BLE support (not yet tested)
    • Athesi E5L (model RD50TE): add OSS driver, different from the SPA43LTE model
    • Honeywell EDA52: add OSS driver, device also compatible with the old non-OSS driver
  • The demo application (demoscannerapp/) was expanded to include a Settings activity, allowing to tune scanner search options and showcasing the different filters available.
  • Javadoc where it was missing
  • Many tests !

Changed

  • Project structure was updated to be easier to navigate, most notably the api and bt (bluetooth) packages
  • README was updated with a more accurate compatibility matrix and links to mentionned classes
  • ScannerForeground and ScannerBackground were merged into the Scanner interface which now regroups all scanner implementations
  • ForegroundScannerClient and BackgroundScannerClient were merged into ScannerClient interface, this is the interface the ScannerService user will need to implement to hook itself to service callbacks
  • Scanner methods are now regrouped by feature category into subinterfaces instead of being directly available with potentially no effect, and a method is available for each feature to cast the scanner into the appropriate interface if the feature is available, or null if it is not available:
    • Scanner.WithBeepSupport and getBeepSupport() for beep-related commands
    • Scanner.WithTriggerSupport and getTriggerSupport() for software-controlled triggers
    • Scanner.WithIlluminationSupport and getIlluminationSupport() for flashlight-style illumination
    • Scanner.WithLedSupport and getLedSupport() for LED control
    • Scanner.WithInventorySupport and getInventorySupport() for inventory-related information
  • StatusChangedCallback was reworked with localized messages and a set list of available statuses, making it easier to handle status changes.

Removed

  • Library implementation of HID keyboards, the default android support is deemed sufficient
  • ScannerServiceAPI methods that were not related to the scanner's lifecycle:
    • anyScannerSupportsIllumination()
    • anyScannerHasIllumination()
    • toggleIllumination()
    • beep()
    • ledColorOn()
    • ledColorOff()
    • getFirstScannerStatus()
  • Many bugs !

1.2.0

16 Mar 13:00
Compare
Choose a tag to compare

Added:

  • option to force the refresh of a device characteristics instead of getting data from local cache.

Changed:

  • Zebra BT scanners (with the OSS driver, not the Zebra SDK) now use picklist mode by default.

1.1.1

13 Mar 18:15
Compare
Choose a tag to compare

This is first public release of the library after many years behind closed doors!

The aar is available here on GitHub or in Maven Central with coordinates com.enioka.scanner:scanner:1.1.1:aar (do remember to specify mavenCentral() inside the Gradle build file repositories section)