flutter_matter 0.0.8 copy "flutter_matter: ^0.0.8" to clipboard
flutter_matter: ^0.0.8 copied to clipboard

Matter plugin for Flutter

0.0.8 #

New Features #

  • ICD (Intermittently Connected Device) support — Matter 1.2+
    • Added ICDDeviceInfo model class with all fields: symmetricKey, userActiveModeTriggerHint, userActiveModeTriggerInstruction, icdNodeId, icdCounter, monitoredSubject, fabricId, fabricIndex.
    • Added onICDRegistrationComplete(int errorCode, ICDDeviceInfo? icdDeviceInfo) to the CompletionListener interface — previously a TODO comment.
    • ChipDeviceController.call() now dispatches this callback with proper JSON decoding from the native side.
  • Thread network commissioningNetworkCredentials now supports Thread in addition to Wi-Fi:
    • New ThreadCredentials class wrapping a Thread Active Operational Dataset (Uint8List operationalDataset).
    • New named constructors NetworkCredentials.wifi(WiFiCredentials) and NetworkCredentials.thread(ThreadCredentials).
    • Legacy NetworkCredentials({required WiFiCredentials wifiCredentials}) constructor kept for backward compatibility.
    • toJson() correctly serialises whichever credential type is set. The Android native layer already parsed Thread credentials.
  • setCompletionListener is now publicFuture<void> setCompletionListener(CompletionListener listener) can now be called independently from pairDevice, allowing the listener to be assigned or swapped at any time.
  • unPairDevice is now fully activeFuture<bool> unPairDevice(int nodeId) removes a device from the fabric and was previously commented out. The Android native /unPairDevice route was already wired.

Improvements #

  • DataVersionFilter support in subscribe() — The dataVersionFilters parameter is no longer ignored. Both the Dart method signature and the Android native layer now parse, pass, and forward the filter list to subscribeToPath, enabling efficient change-only subscriptions.
  • Additional public exportsChipEventPath, DataVersionFilter, and ICDDeviceInfo are now exported from package:flutter_matter/flutter_matter.dart so consumers can construct them directly without importing internal paths.
  • Android package rename — Updated the Android plugin package/group/namespace from com.zengge.flutter_matter to com.tyx.flutter_matter.
  • Example lockfile handling — Stopped tracking example/pubspec.lock and added it to .gitignore to avoid noisy example dependency lockfile diffs in plugin commits.

Bug Fixes & Analysis Cleanup #

  • Fixed eventPaths parsing in iOS subscribe() and readRequest() so event path payloads are read from the correct request field.
  • Expanded the Dart subscribe() / read() API docs and clarified that dataVersionFilters is currently supported on Android only.
  • Removed unused imports: dart:ffi (controller.dart), dart:collection (node_state.dart), dart:typed_data (tlv_types.dart), flutter/widgets.dart (ble.dart), and several unused imports across the example app.
  • Removed 7 unused result local variable assignments in ble.dart GATT handler methods.
  • Fixed stale @override annotation on onCloseBleComplete() in the example app (method was removed from the CompletionListener interface).
  • Fixed unnecessary non-null assertion (!) on chipDeviceController in control_page.dart.
  • Replaced auto-generated stub test files (plugin_integration_test.dart, widget_test.dart) that referenced non-existent classes with minimal passing placeholder tests.
  • Added flutter_lints as a dev dependency to the example app.
  • Suppressed unused_element lint on the intentionally private ChipPathId._ constructor.

0.0.6 #

  • version 0.0.6

0.0.1 #

  • Initial release.