From 6a0e76d3cb50919edca81ebc87f124d5513d8bb7 Mon Sep 17 00:00:00 2001 From: TobiasRoeddiger Date: Sat, 3 Oct 2026 20:07:49 +0200 Subject: [PATCH 1/2] fix(fota): use preparation failure recovery from the shared library --- open_wearable/pubspec.lock | 4 ++-- open_wearable/pubspec.yaml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/open_wearable/pubspec.lock b/open_wearable/pubspec.lock index 9946b4f57..af2ed6c81 100644 --- a/open_wearable/pubspec.lock +++ b/open_wearable/pubspec.lock @@ -580,8 +580,8 @@ packages: dependency: "direct main" description: path: "." - ref: "26fe27bad26f9602e71b35c3760e5e8e0dfe9a28" - resolved-ref: "26fe27bad26f9602e71b35c3760e5e8e0dfe9a28" + ref: "0c1ccd2f7bd367ab592b116e8d0552cc93166ee0" + resolved-ref: "0c1ccd2f7bd367ab592b116e8d0552cc93166ee0" url: "https://github.com/OpenEarable/open_earable_flutter.git" source: git version: "2.4.2" diff --git a/open_wearable/pubspec.yaml b/open_wearable/pubspec.yaml index 6811610fe..8fde6ebe7 100644 --- a/open_wearable/pubspec.yaml +++ b/open_wearable/pubspec.yaml @@ -38,7 +38,7 @@ dependencies: open_earable_flutter: git: url: https://github.com/OpenEarable/open_earable_flutter.git - ref: 26fe27bad26f9602e71b35c3760e5e8e0dfe9a28 + ref: 0c1ccd2f7bd367ab592b116e8d0552cc93166ee0 universal_ble: ^2.0.4 permission_handler: ^12.0.1 flutter_platform_widgets: ^10.0.1 From 04a81460cc72243b7dcc17fe926f31fa38db60dd Mon Sep 17 00:00:00 2001 From: TobiasRoeddiger Date: Sat, 3 Oct 2026 20:12:43 +0200 Subject: [PATCH 2/2] fix(fota): show the reason an update failed --- open_wearable/lib/widgets/fota/stepper_view/update_view.dart | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/open_wearable/lib/widgets/fota/stepper_view/update_view.dart b/open_wearable/lib/widgets/fota/stepper_view/update_view.dart index 97a228307..b4214163f 100644 --- a/open_wearable/lib/widgets/fota/stepper_view/update_view.dart +++ b/open_wearable/lib/widgets/fota/stepper_view/update_view.dart @@ -493,7 +493,9 @@ class _UpdateStepViewState extends State { const SizedBox(width: 8), Expanded( child: Text( - state.stage, + state is UpdateCompleteFailure + ? '${state.stage}: ${state.error}' + : state.stage, style: Theme.of(context).textTheme.bodyMedium?.copyWith( color: Theme.of(context).colorScheme.onSurface, fontWeight: FontWeight.w600,