Releases: ltrudu/AI_MultiBarcodes_Capture
Performance Indicator chage
Improved high res stabilization settings workflow
v1.43 Improved workflow when selecting high res srabilization to ensure tha…
High resolution stabilization mechanism, Fix Dynamic Resolutions BBOx mis placement
Release Notes - Dynamic Resolutions & High-Res Capture Stabilization
New Features
-
Dynamic Camera Resolution Selection
-
Automatic camera detection: The app now automatically detects all available cameras on your device and their supported
resolutions -
Full resolution support: Access all native camera resolutions instead of predefined presets
-
Camera switching: Easily switch between front and back cameras with resolution options specific to each
-
Smart defaults: Automatically selects optimal resolutions based on device capabilities
-
High-Resolution Capture Stabilization
A new intelligent system that improves barcode decoding accuracy in difficult conditions:
-
Automatic instability detection: Monitors the debounce cache for barcodes that are visible but cannot be decoded
-
On-demand high-res capture: When instability is detected after N consecutive frames, automatically triggers a full-resolution
still capture (up to 16.3MP on supported devices) -
Smart resolution management:
- Live preview analysis runs at user-selected resolution for optimal performance
- High-res captures use the maximum sensor resolution by binding ImageCapture separately
-
Visual feedback: White border flash indicates when a high-res stabilization capture is taken
-
Cache validation: High-res decode results are matched back to cached barcodes by position (IOU) to update/validate values
-
Settings
New options in the Optimizations section:
-
Enable High-Res Capture Stabilization: Toggle the automatic high-res capture feature
-
Dynamic Camera Mode: Switch between static presets and dynamic resolution discovery
-
Technical Improvements
-
Queries actual ImageAnalysis resolution after camera binding using getResolutionInfo() for accurate coordinate mapping
-
Separate binding strategy for ImageCapture to achieve maximum sensor resolution without limiting ImageAnalysis
-
Enhanced stability tracking in CachedBarcode with value consistency monitoring
Dynamic Camera & Resolution Selection (Experimental)
What's New
Dynamic Camera & Resolution Selection (Experimental)
Added support for selecting different cameras and resolutions beyond the preset options:
Resolution Mode Setting:
- Static (Presets) - Default mode using 7 predefined resolutions (1MP to 12.6MP)
- Dynamic (Experimental) - Query all device cameras and their supported resolutions
Dynamic Mode Features:
- Select from all available cameras (Back, Front, Telephoto, Ultra-Wide, External)
- View camera info (focal length, flash availability)
- Resolution filter options:
- Standard Resolutions - Only shows 720p, 1080p, 1440p, 4K, 8K (recommended)
- All Resolutions - Shows all device-supported sizes (experimental)
New Architecture:
- Strategy pattern implementation (ICameraResolutionProvider) for clean separation between Static and Dynamic modes
- Camera2 API integration for full device camera enumeration
Fixed IP Server Selection
Improved HTTP(S) endpoint configuration for fixed IP server connections, enabling reliable barcode data posting to local network
servers.
Technical Details
Files Added:
- helpers/camera/ICameraResolutionProvider.java
- helpers/camera/StaticCameraResolutionProvider.java
- helpers/camera/DynamicCameraResolutionProvider.java
- helpers/camera/CameraResolutionProviderFactory.java
- helpers/camera/AvailableCamera.java
Files Modified:
- CameraResolutionHelper.java - Added camera enumeration and resolution filtering
- CameraXLivePreviewActivity.java - Refactored to use provider pattern
- SettingsActivity.java - Added dynamic camera selection UI
- activity_setup.xml - New camera/resolution selection UI elements
- Constants.java - New preference keys
- strings.xml - New localization strings
v1.40: Autocapture and Filtering Enhancement
Release Notes
New Features
Auto Capture Enhancements
The Auto Capture feature has been enhanced with new capabilities:
| Condition Type | Description |
|---|---|
| AND Logic | Auto capture triggers when ALL conditions are satisfied simultaneously |
| Number of Barcodes | Trigger when exactly N barcodes are detected |
| Contains Regex | Trigger when N+ barcodes match a regex pattern |
| Symbology Match | Trigger when N+ barcodes of a specific symbology are detected |
| Complex Match | Trigger when N+ barcodes match both symbology AND regex pattern |
| Import/Export | Save and load auto capture configurations as JSON |
| Condition Descriptions | Add optional notes to conditions for better organization |
Menu Options
Import from JSON- Load conditions from a previously exported fileExport to JSON- Save your current conditions for backup or sharingDelete All- Clear all conditions at once
Note: Auto Capture uses AND logic - ALL conditions must be satisfied for capture to trigger automatically.
Filtering Conditions System
A new conditions-based filtering system replaces the previous single regex filter:
| Feature | Description |
|---|---|
| OR Logic | Entities matching at least one condition will be detected |
| Contains Regex | Filter barcodes by regex pattern |
| Symbology Match | Filter by barcode symbology type |
| Complex Match | Combine symbology AND regex for precise filtering |
| Import/Export | Save and load filtering configurations as JSON |
| No Conditions = Include All | When no conditions are configured, all entities pass through |
How It Works
- Navigate to Settings → Filtering section
- Enable filtering with the checkbox
- Tap Edit Filtering Conditions to configure your conditions
- Add conditions using the + button:
- Contains Regex - Match barcode values against a pattern
- Symbology Match - Match specific barcode types (QR Code, Code128, etc.)
- Complex Match - Match both symbology AND regex pattern
Note: Filtering uses OR logic - a barcode only needs to match ONE condition to be included in the results.
Summary
This release improves both Auto Capture and Filtering with a unified conditions-based approach, giving users more flexibility and control over barcode detection and capture workflows.
Added AutoCapture mechanism
Auto Capture
Automatically trigger barcode capture when user-defined conditions are met.
Condition Types:
- Number of Barcodes - Capture when exactly N barcodes are detected (only one condition of this type allowed)
- Contains Regex Pattern - Capture when N+ barcodes match a regex pattern (multiple allowed)
Features:
- Configurable via Settings > Auto Capture section
- Conditions editor with add/edit/delete functionality
- Built-in predefined regex picker with 40+ patterns organized by category:
- Web URLs, IP Addresses, MAC Addresses
- Product Barcodes (UPC-A, EAN-13, GTIN-14)
- Device IDs (IMEI, Serial Numbers)
- Book/Media (ISBN-10, ISBN-13, ISSN)
- Phone Numbers (US, France, Germany, UK, International)
- Industrial (Part Numbers, Lot/Batch, Container IDs)
- All conditions must be TRUE for auto capture to trigger
Debounce Decoded Entities
Reduce barcode flickering by caching decoded results across frames.
Features:
- Configurable max frames to retain cached barcodes
- Two matching algorithms:
- Center Distance - Match by bounding box center proximity (configurable pixel threshold)
- Intersection Over Union (IOU) - Match by bounding box overlap ratio (configurable threshold)
- Visual feedback: GREEN for freshly decoded, BLUE for cached, RED for unreadable
- Enabled by default with IOU algorithm
Configuration
Both features are accessible via Settings:
- Debounce - Under the Debounce section with algorithm selection and threshold controls
- Auto Capture - Under the Auto Capture section with enable toggle and conditions editor
Technical Notes
- Auto capture evaluation runs after filtering, using only barcodes that pass regex filters
- Capture action opens CapturedBarcodesActivity, which stops the camera and prevents re-triggers
- Debounce cache is cleared when settings are reloaded
- All settings persist via SharedPreferences
Upgraded to latest SDK, fix unsupported resolutions bug, added debounce algorithm for barcode detection stability improvement
Upgraded to latest SDK to support DSP on all Zebra devices that have one.
Removed unsupported resolutions from settings.
Added 12MP resolution (WIP, experimental)
Added debouncing to barcode decoding to improve stability when the camera is shaking.
Performance & Android 15+ Compatibility
Version 1.36 - ⚡ Performance & Android 15+ Compatibility
Ultra-fast native grayscale image processing with NDK/JNI and Android 15+ 16KB page size support.
⚡ Native NDK Grayscale Optimization:
• Ultra-Fast Y-Plane Extraction: Native C++ implementation extracts grayscale directly from YUV Y-plane
- No Color Conversion Required: Y-plane IS grayscale - just copy it directly (no YUV→RGB math)
- Single Plane Processing: Only reads Y-plane, skips U/V planes entirely
- Direct Bitmap Writing: Native code writes directly to Android Bitmap using
AndroidBitmap_lockPixels() - Automatic Fallback: Java implementation fallback when native library is unavailable
• Performance Benefits:
- ~3-5x faster than full YUV to RGB conversion
- Minimal CPU usage - simple memory copy instead of color math
- Only 1 plane processed instead of 3
- ~3 operations per pixel instead of ~15
📱 Android 15+ 16KB Page Size Support:
• Future-Proof Compatibility: Native library built with 16KB page size alignment
-Wl,-z,max-page-size=16384: Linker flag ensures compatibility with Android 15+ devices using 16KB memory pages- Seamless Operation: Works on both traditional 4KB and new 16KB page size devices
- No Runtime Configuration Required: Compatibility is built into the native library
💡 Benefits:
• Maximum Performance: Grayscale extraction is the fastest possible approach for capture zone cropping
• Android 15+ Ready: Application is prepared for upcoming Android devices with 16KB page sizes
• Battery Efficiency: Minimal CPU usage extends battery life during extended scanning sessions
• SDK Compatible: Zebra AI Vision SDK fully supports grayscale bitmap input
Theme Update
AI MultiBarcode Capture v1.35 - Release Notes
🎨 New Features
Theme System
- Dual Theme Support: Choose between Legacy (classic blue) and Modern (Zebra green/dark) themes
- Dynamic Theme Switching: Seamlessly switch themes through Settings without restarting the app
- Consistent Branding: Modern theme features Zebra's latest brand colors.
- Dark Mode Optimized: Modern theme provides a comfortable dark interface with optimized contrast
Custom Typography
- Zebra Brand Fonts: Integrated Zebra's typefaces
- Smart Font Application: Custom fonts automatically applied for Latin-script languages (English, German, French,
Spanish, etc.) - International Support: Non-Latin languages (Arabic, Russian, Chinese, Japanese, Korean, etc.) use native system
fonts for optimal readability - Theme-Aware Typography: ZebraMono font exclusively available when using the Modern theme
Android 15 (API 35) Support
- Full Android 15 Compatibility: Updated to target Android 15 (VANILLA_ICE_CREAM)
- Enhanced System Bar Handling: Improved status bar and navigation bar rendering for Android 15+
- Window Insets Management: Proper edge-to-edge display support with new Android 15 insets API
- Backward Compatibility: Maintains full support for Android 11+ devices
🔧 Technical Improvements
- Centralized theme management through ThemeHelpers utility class
- Optimized system bar color configuration across all Android versions
- Locale-aware font selection for better international user experience
- Enhanced Material Design 3 integration
📋 Compatibility
- Minimum SDK: Android 11 (API 30)
- Target SDK: Android 15 (API 35)
- Compile SDK: Android 15 (API 35)
A15 Update / XAMPP Web Server Option
Version 1.34 - 📱 Android 15 Update & Enhanced UI/UX
Major platform update with comprehensive UI improvements and expanded deployment options.
📱 Android 15 (API 35) Migration:
• Target SDK Update: Migrated from Android 14 (API 34) to Android 15 (API 35) for latest platform features and security enhancements
• Compile SDK Update: Updated compile SDK to API 35 ensuring compatibility with the latest Android features
• Material Design 3 Integration: Updated to Material Components 1.13.0 for modern Material You design language support
• CameraX Updates: Enhanced camera functionality with CameraX 1.5.1 for improved stability and performance
🔄 SDK & Dependency Updates:
• Zebra AI Vision SDK 3.1.4: Updated from 3.0.5 to 3.1.4 for latest AI detection improvements and bug fixes
• Dynamic Version Display: About screen now automatically reflects dependency versions from libs.versions.toml:
- No more hardcoded version strings
- Single source of truth for all dependency versions
- BuildConfig fields generated from version catalog
• Updated Dependencies:
- CameraX: 1.5.1 (improved camera stability)
- Material Components: 1.13.0 (Material Design 3)
- Gson: 2.13.2 (JSON parsing improvements)
- Android Gradle Plugin: 8.13.0 (latest build tools)
🌐 New Web Server Deployment Option:
• XAMPP Installation Support: Alternative deployment method for environments without Docker:
- XAMPP Quick Install: Pre-configured archive for instant setup - just extract and run
- Automated Scripts: One-click deployment with
xampp_start_server.bat - Flexible Installation: Supports both
C:\xamppandD:\xamppwith automatic detection - No Admin Rights Required: Portable installation option for restricted environments
- Full Feature Parity: Complete web management system without Docker dependency
• Enhanced Database Initialization: Improved database setup with verification and automatic schema creation
• Smart Path Detection: Scripts automatically detect XAMPP location (C: or D: drive) without manual configuration
• Comprehensive Documentation: Complete XAMPP installation guide with troubleshooting and best practices
• Updated Build Configuration: Enhanced build.gradle.kts with BuildConfig fields for dynamic version management
• Improved About Screen: Displays real-time dependency versions from version catalog
💡 Benefits:
• Latest Platform Support: Access to Android 15 features and security improvements
• Modern UI: Professional appearance with Material Design 3
• Better Code Quality: Reduced duplication and improved maintainability
• Flexible Deployment: Choose between Docker or XAMPP based on your environment
• Simplified Maintenance: Centralized version management and automated updates
• Enhanced User Experience: Consistent navigation and visual design across all screens