New: Color display support
- Added Glasses.isColorCapable() — detects whether connected glasses have a color display (MDP08) vs. grey-level (MDP05), based on hardware version.
- Added ImgSaveFormat.RG_COLOR_8BPP — new image save format for 8bpp RG (red-green) color images, color glasses only.
- Added Glasses.imgSave(byte id, ImageData imgData, ImgSaveFormat format) — save a pre-encoded image directly, without requiring a Bitmap.
- Added Glasses.grayscale(byte level) and Glasses.color(byte value) — color() now sends the correct red-green color command (0x3D) instead of reusing the grey-level command; text can now be drawn in color via the new txtColor command (automatically used by txt() when isColorCapable() is true).
- ImageConverter.getCmdCompress4BppHeatshrink() is now public, enabling custom image-encoding pipelines outside the SDK.
Breaking changes
- Glasses.isWriteWithResponse(boolean) renamed to Glasses.setWriteWithResponse(boolean). Update any calls to the old method name.
- Command IDs for grayscale/color/txtColor were remapped to match the current firmware protocol (grayscale=0x30, color=0x3D, txtColor=0x3E) — no app-level action needed unless you referenced these IDs directly.
- Fixed BLE notification reassembly: a single characteristic-changed event containing multiple back-to-back commands is now parsed correctly instead of stalling on the first one.
- Fixed a thread leak in the flow-control repair timer (ScheduledExecutorService is now properly shut down after use).
- Write batching (unstackWriteRxCharacteristicLoop) now tracks write type per pending write, so retried/rolled-back batches preserve their original with/without-response setting.
Refactored the RX-characteristic write-batching logic into smaller, testable pieces (collectBatch, buildPayload, writeToGatt, handleWriteFailure). Minor logging cleanup in UpdateGlassesTask (onApiFail, onApiJSONException). Removed dead code / unused imports across several files.
- Fix fw version comparison
- Fix fw extra version parsing
- Added new firmware support for future devices
- Updated Android SDK to version 35 to comply with Play Store requirements
- UI freeze during Cfg update
- SDK init with simplified parameters
- Increase flow control overflow timer
- UI freeze & crash during infinite commands rollback
- FW update issue
- New commands :
animDisplay,animDeleteandanimClear
- Block cfg update if battery level < 10%
- Add getter for context & broadcasterceiver
- Recursivity issue
- Fix api url
layoutClearAndDisplayExtended&layoutClearAndDisplay: now acceptExtraCmdto modify existing layout without saving the modificationlayoutParameters: add subCommandAnim & subCommandPolyline
layoutParameters: fix subCommandText
- Command Stacking
holdFlush: allows stacking multiple graphic operations and displaying them simultaneously without screen flickering.
- image conversion to gray level
- Remove recursive call to avoid stackoverflow
- Use an anonymous function to accept update
- New commands :
layoutClearAndDisplayExtended: clear a layout before displaying it at a positionlayoutClearAndDisplay: clear a layout before displaying itlayoutClearExtended: clear a layout at a positionpageClearAndDisplay: clear a page before displaying itimgSave: save image in new formatstreamImg: display an image without saving itpolyline: choose the thickness of your polyline
- Auto reconnect on BLE activation
- Fine grained configuration update
- Set default configuration on connection
- Display update ongoing layout on configuration update
- Clear glasses screen before and after configuration update
- Ensure glasses empty cmd stack on connection
- Workaround before FW patch
- Trigger a Flow Control CMD ERROR before first command
- Start configuration update on this Flow Control CMD ERROR
- minor linter fixes
- Api path for retrieving firmware and configuration
- NullPointerException in web request
- Add a callback in the SDK init for triggering the glasses update.
- Forbid glasses usage if the token is not valid
- Disable glasses update if battery under 10%
- fix inconsistent connection state while updating
- add a failure callback for updating errors
- add an up to date state for updates
- Allow cancelling connection
- Add a serialized glasses object allowing reconnecting without scanning
- make update progress a double
- update dependencies
- On connection lost, directly trigger the disconnected glasses callback
- Include firmware update
- get latest firmware from repository
- Include configuration update
- get latest configuration from repository
- fix bad types.
- fix pages command id & byte typing
- fix version check for compatibility
- fix blocking api unavailability
- fix config update progress
- fix suota synchronization
- fix writting on characteristics twice
- fix BLE scan permission
- fix command unstacking
- fix flow control after 1000ms
- fix disconnect on disconnected
- Initial import of the SDK compatible with the firmware 4.0.0