From f1988886357c518b15173de3cdfad363f09f3ff9 Mon Sep 17 00:00:00 2001 From: Henry-Hiles Date: Sun, 11 Oct 2026 13:43:13 -0400 Subject: [PATCH] bump deps fixes #119 --- lib/widgets/html/html.dart | 258 +++++++++---------- linux/flutter/generated_plugin_registrant.cc | 8 +- linux/flutter/generated_plugins.cmake | 2 +- pubspec.lock | 100 ++++--- pubspec.yaml | 20 +- 5 files changed, 185 insertions(+), 203 deletions(-) diff --git a/lib/widgets/html/html.dart b/lib/widgets/html/html.dart index 7c99471..8eb60d8 100644 --- a/lib/widgets/html/html.dart +++ b/lib/widgets/html/html.dart @@ -18,147 +18,137 @@ class const Html( super.key, }) extends ConsumerWidget { @override - Widget - build(BuildContext context, WidgetRef ref) - // needed until https://github.com/daohoangson/flutter_widget_from_html/issues/1618 is resolved - => MaterialUiCompatibilityBridge( - child: HtmlWidget( - html, - buildAsync: false, - textStyle: textStyle, - customWidgetBuilder: (element) { - if (element.attributes.keys.contains("data-mx-profile-fallback")) { - return SizedBox.shrink(); - } + Widget build(BuildContext context, WidgetRef ref) => HtmlWidget( + html, + buildAsync: false, + textStyle: textStyle, + customWidgetBuilder: (element) { + if (element.attributes.keys.contains("data-mx-profile-fallback")) { + return SizedBox.shrink(); + } - if (element.attributes.keys.contains("data-mx-spoiler")) { - return InlineCustomWidget(child: SpoilerText(element.text)); - } + if (element.attributes.keys.contains("data-mx-spoiler")) { + return InlineCustomWidget(child: SpoilerText(element.text)); + } - final height = - int.tryParse(element.attributes["height"] ?? "") ?? - (element.attributes.keys.contains("data-mx-emoticon") - ? 32 - : null) ?? - 300; - final width = int.tryParse(element.attributes["width"] ?? ""); - final src = Uri.tryParse(element.attributes["src"] ?? ""); + final height = + int.tryParse(element.attributes["height"] ?? "") ?? + (element.attributes.keys.contains("data-mx-emoticon") ? 32 : null) ?? + 300; + final width = int.tryParse(element.attributes["width"] ?? ""); + final src = Uri.tryParse(element.attributes["src"] ?? ""); - return switch (element.localName) { - "code" => - element.parent?.localName == "pre" - ? CodeBlock( - element.text, - lang: element.className.replaceAll("language-", ""), - ) - : InlineCustomWidget( - child: ClipRRect( - borderRadius: .all(.circular(4)), - child: Container( - padding: .all(8), - color: Theme.of(context) - .colorScheme - .surfaceContainerHighest, - child: SelectableText( - element.text, - style: .new(fontFamily: "bundled-mono"), - ), + return switch (element.localName) { + "code" => + element.parent?.localName == "pre" + ? CodeBlock( + element.text, + lang: element.className.replaceAll("language-", ""), + ) + : InlineCustomWidget( + child: ClipRRect( + borderRadius: .all(.circular(4)), + child: Container( + padding: .all(8), + color: Theme.of(context) + .colorScheme + .surfaceContainerHighest, + child: SelectableText( + element.text, + style: .new(fontFamily: "bundled-mono"), ), ), ), + ), - "blockquote" => Quoted( - Html(element.innerHtml, textStyle: textStyle, roomId: roomId), - ), - - "a" => - element.attributes["href"]?.linkInfo == null - ? null - : InlineCustomWidget( - child: MentionChip(element.attributes["href"]!, roomId), - ), - - "img" => - src == null - ? SizedBox.shrink() - : InlineCustomWidget( - alignment: PlaceholderAlignment.middle, - child: ExpandableImage( - .new(mxc: src), - child: Image( - image: MxcImage(ref, .new(mxc: src)), - errorBuilder: (_, error, _) => Text( - "Image Failed to Load", - style: .new( - color: Theme.of(context).colorScheme.error, - ), - ), - height: height.toDouble(), - width: width?.toDouble(), - loadingBuilder: (_, child, loadingProgress) => - loadingProgress == null - ? child - : CircularProgressIndicator(), - ), - ), - ), - - // Allowed elements list - ("del" || - "h1" || - "h2" || - "h3" || - "h4" || - "h5" || - "h6" || - "p" || - "ul" || - "ol" || - "sup" || - "sub" || - "li" || - "b" || - "i" || - "u" || - "strong" || - "em" || - "s" || - "code" || - "hr" || - "br" || - "div" || - "table" || - "thead" || - "tbody" || - "tr" || - "th" || - "td" || - "caption" || - "pre" || - "span" || - "details" || - "summary") => - null, - - _ => SizedBox.shrink(), - }; - }, - customStylesBuilder: (element) => { - "width": "auto", - ...Map.fromEntries( - element.attributes - .mapTo?>( - (key, value) => switch (key) { - "data-mx-color" => .new("color", value), - "data-mx-bg-color" => .new("background-color", value), - _ => null, - }, - ) - .nonNulls, + "blockquote" => Quoted( + Html(element.innerHtml, textStyle: textStyle, roomId: roomId), ), - }, - onTapUrl: (url) => - ref.watch(LaunchHelper.provider).launchUrl(.parse(url)), - ), + + "a" => + element.attributes["href"]?.linkInfo == null + ? null + : InlineCustomWidget( + child: MentionChip(element.attributes["href"]!, roomId), + ), + + "img" => + src == null + ? SizedBox.shrink() + : InlineCustomWidget( + alignment: PlaceholderAlignment.middle, + child: ExpandableImage( + .new(mxc: src), + child: Image( + image: MxcImage(ref, .new(mxc: src)), + errorBuilder: (_, error, _) => Text( + "Image Failed to Load", + style: .new(color: Theme.of(context).colorScheme.error), + ), + height: height.toDouble(), + width: width?.toDouble(), + loadingBuilder: (_, child, loadingProgress) => + loadingProgress == null + ? child + : CircularProgressIndicator(), + ), + ), + ), + + // Allowed elements list + ("del" || + "h1" || + "h2" || + "h3" || + "h4" || + "h5" || + "h6" || + "p" || + "ul" || + "ol" || + "sup" || + "sub" || + "li" || + "b" || + "i" || + "u" || + "strong" || + "em" || + "s" || + "code" || + "hr" || + "br" || + "div" || + "table" || + "thead" || + "tbody" || + "tr" || + "th" || + "td" || + "caption" || + "pre" || + "span" || + "details" || + "summary") => + null, + + _ => SizedBox.shrink(), + }; + }, + customStylesBuilder: (element) => { + "width": "auto", + ...Map.fromEntries( + element.attributes + .mapTo?>( + (key, value) => switch (key) { + "data-mx-color" => .new("color", value), + "data-mx-bg-color" => .new("background-color", value), + _ => null, + }, + ) + .nonNulls, + ), + }, + onTapUrl: (url) => ref.watch(LaunchHelper.provider).launchUrl(.parse(url)), ); } diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc index 70d9ba2..c7d5bdb 100644 --- a/linux/flutter/generated_plugin_registrant.cc +++ b/linux/flutter/generated_plugin_registrant.cc @@ -6,9 +6,9 @@ #include "generated_plugin_registrant.h" +#include #include #include -#include #include #include #include @@ -17,15 +17,15 @@ #include void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) app_links_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "AppLinksPluginLinux"); + app_links_plugin_linux_register_with_registrar(app_links_linux_registrar); g_autoptr(FlPluginRegistrar) dynamic_color_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "DynamicColorPlugin"); dynamic_color_plugin_register_with_registrar(dynamic_color_registrar); g_autoptr(FlPluginRegistrar) file_selector_linux_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin"); file_selector_plugin_register_with_registrar(file_selector_linux_registrar); - g_autoptr(FlPluginRegistrar) gtk_registrar = - fl_plugin_registry_get_registrar_for_plugin(registry, "GtkPlugin"); - gtk_plugin_register_with_registrar(gtk_registrar); g_autoptr(FlPluginRegistrar) media_kit_libs_linux_registrar = fl_plugin_registry_get_registrar_for_plugin(registry, "MediaKitLibsLinuxPlugin"); media_kit_libs_linux_plugin_register_with_registrar(media_kit_libs_linux_registrar); diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake index 1d53ad7..b8f6a3a 100644 --- a/linux/flutter/generated_plugins.cmake +++ b/linux/flutter/generated_plugins.cmake @@ -3,9 +3,9 @@ # list(APPEND FLUTTER_PLUGIN_LIST + app_links_linux dynamic_color file_selector_linux - gtk media_kit_libs_linux media_kit_video screen_retriever_linux diff --git a/pubspec.lock b/pubspec.lock index a0e58e4..0f4641a 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -5,26 +5,26 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: fdcd9f70f9eb80df3bc5ed0fa67280df2595fd481948df8a9ab082e6a40ad04b + sha256: "48e48f73a431eb269eec66d243a63a07ed90ef9417a74047a3b98d52338626ad" url: "https://pub.dev" source: hosted - version: "108.0.0" + version: "109.0.0" analysis_server_plugin: dependency: transitive description: name: analysis_server_plugin - sha256: "3460f040e1f77647fcd82db9bd3bb117de04d04a3d67c39ad361794331147a4e" + sha256: "9f293f95cf41cb513a9a4f322354e2fa5483125e0f18bbeca254543ac9c3dda6" url: "https://pub.dev" source: hosted - version: "0.3.23" + version: "0.3.24" analyzer: dependency: transitive description: name: analyzer - sha256: a51c769bff3b6dfbe9d60199b8606d808290702a296bef0c26a4ca391d414e46 + sha256: "6d377901d198536b648172974d9d4f277910502cad92193466869cac0ff34990" url: "https://pub.dev" source: hosted - version: "14.4.0" + version: "14.5.0" analyzer_buffer: dependency: transitive description: @@ -37,26 +37,26 @@ packages: dependency: transitive description: name: analyzer_plugin - sha256: "9a3518eb84e8e26665874d9867534961d855493e9c5eb0eb55cbd46edd995529" + sha256: "2c59e6fba4971dc9ece97acd55b4f95b67a98e6ae0a55bff6f9dfc2bb59e8b1a" url: "https://pub.dev" source: hosted - version: "0.14.17" + version: "0.14.18" app_links: dependency: "direct main" description: name: app_links - sha256: f8db46d2ea9ff6f3a37191a7fd5b7813da1253ace8c32c1b9eadace41d1188ea + sha256: "08ba88bf19d9edea33130cb71c8ced2cb982b4e00b82efef4a434d1357bc69c3" url: "https://pub.dev" source: hosted - version: "7.2.1" + version: "7.2.2" app_links_linux: dependency: transitive description: name: app_links_linux - sha256: f5f7173a78609f3dfd4c2ff2c95bd559ab43c80a87dc6a095921d96c05688c81 + sha256: "9ccb5802085a1e57bb07b6256fd1d61a78c7ec104944d4965e62938b4fefd9cb" url: "https://pub.dev" source: hosted - version: "1.0.3" + version: "1.0.4" app_links_platform_interface: dependency: transitive description: @@ -69,18 +69,18 @@ packages: dependency: transitive description: name: app_links_web - sha256: af060ed76183f9e2b87510a9480e56a5352b6c249778d07bd2c95fc35632a555 + sha256: "382d32c6f486f15b1d7f5d6a37a70a481a4fc08382eef419d373169921a3e765" url: "https://pub.dev" source: hosted - version: "1.0.4" + version: "1.0.5" archive: dependency: transitive description: name: archive - sha256: "6c5bcd986e06b94e3c40244af471750840a3d2341d1f9763a1100a14add517b4" + sha256: f773153144ce0456ae77d96bd247f2efd58efe4f3e5ad42616d0385c031aea11 url: "https://pub.dev" source: hosted - version: "4.3.0" + version: "4.5.1" args: dependency: transitive description: @@ -141,10 +141,10 @@ packages: dependency: "direct dev" description: name: build_runner - sha256: "894c243f6bc32015fec466ce30a6925bd537a77a426ee5bf481120477eb3de67" + sha256: "6feadd32d90a68253c1f7b4fcff76adb4b41ad32a53f8bad835dc65f01ac9dc5" url: "https://pub.dev" source: hosted - version: "2.16.1" + version: "2.16.2" built_collection: dependency: transitive description: @@ -261,10 +261,10 @@ packages: dependency: transitive description: name: cupertino_ui - sha256: c23816577a1280cff409e989541767887011f8f1d8c1863a794ed308af46f2a9 + sha256: e9dfe7fac704028f8928cbe4028a0be5e8a709498e8daf8247de99e99a32aef3 url: "https://pub.dev" source: hosted - version: "1.1.1" + version: "1.0.2" dart_style: dependency: transitive description: @@ -333,10 +333,10 @@ packages: dependency: "direct main" description: name: fast_immutable_collections - sha256: "58cec99fc068427c71901e82d4b31b232240ebe6e61200993c2cb91bcada0ff6" + sha256: "3f791151fe63e27beffdba12835db33c60031e324351f683879ebe18d1b10588" url: "https://pub.dev" source: hosted - version: "11.2.0" + version: "11.2.1" ffi: dependency: "direct main" description: @@ -357,10 +357,10 @@ packages: dependency: "direct main" description: name: ffigen - sha256: "31b2ca630cede89babbbf31688d20b735967c51bf60572b06ec16718e5a7f1ec" + sha256: "6f55d99ac1857fc063b58c3b31753df2bba417028ba98d30c6d625a385855064" url: "https://pub.dev" source: hosted - version: "22.0.0" + version: "23.0.0" file: dependency: transitive description: @@ -569,10 +569,10 @@ packages: dependency: "direct main" description: name: flutter_widget_from_html_core - sha256: "530f2e3cc57be1a00f8bfae1b0000064e8a6df0cf1fb4d48a80f85afde9b39b7" + sha256: "4eb6b5ece5fa5a2c6b35f621433aa36d5f115cc45e8638c7fac0d709561ea9f6" url: "https://pub.dev" source: hosted - version: "0.17.4" + version: "0.18.0-beta.1" fluttertagger: dependency: "direct main" description: @@ -621,14 +621,6 @@ packages: url: "https://pub.dev" source: hosted version: "2.3.2" - gtk: - dependency: transitive - description: - name: gtk - sha256: "4ff85b2a16724029dd9e5bbb5a94b6918f9973f74ba571c949d2002801879cf5" - url: "https://pub.dev" - source: hosted - version: "2.2.0" hooks: dependency: "direct main" description: @@ -689,26 +681,26 @@ packages: dependency: transitive description: name: image - sha256: a1e7f4951e538a568e14b856702afc9ae1d2f4b202daced8d22c1b9cd211ce89 + sha256: "89ed75b2f8231fe676808c5564f9590d728024ded7ac782a7ed8474f1c95b72a" url: "https://pub.dev" source: hosted - version: "4.10.1" + version: "4.12.0" image_picker: dependency: "direct main" description: name: image_picker - sha256: d8402284df184bc05f4a2210c6c23983b0720f4cd87cbd05c5390a78af602667 + sha256: e71b1bd9e40124041128d60fc3034c7b1598e1bba4e570bba0c70301c817013a url: "https://pub.dev" source: hosted - version: "1.2.3" + version: "1.2.4" image_picker_android: dependency: transitive description: name: image_picker_android - sha256: "0a55d645a670d6ae11efa948f955ae904afa472f1344fc15a7ddacc20c1e7219" + sha256: "8a7823d5d3e884f7780829d85d92110d072bdcd9ed48e2be158d2abe91a912d4" url: "https://pub.dev" source: hosted - version: "0.8.13+23" + version: "0.8.13+25" image_picker_for_web: dependency: transitive description: @@ -721,10 +713,10 @@ packages: dependency: transitive description: name: image_picker_ios - sha256: "852a7762962f3bb3ad54ef1d342669e41557f466033a676baa8876b367cf4050" + sha256: "4fb88d4350ffc208c2a09fc321db1f80282688716b8cfe10c8c80acc5ae8934a" url: "https://pub.dev" source: hosted - version: "0.8.13+8" + version: "0.8.13+10" image_picker_linux: dependency: transitive description: @@ -745,10 +737,10 @@ packages: dependency: transitive description: name: image_picker_platform_interface - sha256: "567e056716333a1647c64bb6bd873cff7622233a5c3f694be28a583d4715690c" + sha256: "2dee4b4e3be429db71472c9c559c981498070a61af1ba82e0e4986fc5dadc042" url: "https://pub.dev" source: hosted - version: "2.11.1" + version: "2.11.2" image_picker_windows: dependency: transitive description: @@ -906,10 +898,10 @@ packages: dependency: "direct main" description: name: material_ui - sha256: "32d98f11cf5942a095a8c3e01b03e4de3b17941437713dcf36b1088fb62e23d2" + sha256: "98ab9eda579ecae623e4b376c603035c5def78ce706f735f30bd632af5814695" url: "https://pub.dev" source: hosted - version: "1.5.0" + version: "1.6.0" measure_size: dependency: "direct main" description: @@ -1027,10 +1019,10 @@ packages: dependency: transitive description: name: objective_c - sha256: ad56fd53a78ff6b1472fa59ff2a4e8b8ccabafc586fc263a1dfad0b99b5553e3 + sha256: "5c80c2ad6e2c0397de5db38c6d653e69616a3397e13aa7633bf39eb668f2041b" url: "https://pub.dev" source: hosted - version: "9.6.0" + version: "9.6.2" package_config: dependency: transitive description: @@ -1043,10 +1035,10 @@ packages: dependency: "direct main" description: name: package_info_plus - sha256: "127e1751e37ffb2ff4658beeaca77bad0c27bf5f932bd3a501c2296926d4b481" + sha256: "73ef2cd5c11a7548f9b7f6fc2a4f6113de2e64aa2a70de63feede95548822908" url: "https://pub.dev" source: hosted - version: "10.2.1" + version: "10.2.2" package_info_plus_platform_interface: dependency: transitive description: @@ -1291,10 +1283,10 @@ packages: dependency: "direct main" description: name: shared_preferences - sha256: c3025c5534b01739267eb7d76959bbc25a6d10f6988e1c2a3036940133dd10bf + sha256: "1e85e0dccf5b4a016077fea7dfbb4a7cb39c759ac1596fcf60c06deadb7da91f" url: "https://pub.dev" source: hosted - version: "2.5.5" + version: "2.5.6" shared_preferences_android: dependency: transitive description: @@ -1554,10 +1546,10 @@ packages: dependency: "direct main" description: name: url_launcher - sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8 + sha256: e8cc955c97e06df9879140a1fe301f3d493f01b7c62dec7f46834be31d7e9fda url: "https://pub.dev" source: hosted - version: "6.3.2" + version: "6.3.3" url_launcher_android: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 7f99ba3..ef3d403 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -47,27 +47,27 @@ dependencies: flutter_riverpod: 3.4.3 hooks_riverpod: 3.4.3 intl: 0.20.3 - fast_immutable_collections: 11.2.0 + fast_immutable_collections: 11.2.1 path_provider: 2.1.6 - url_launcher: 6.3.2 + url_launcher: 6.3.3 freezed_annotation: 3.1.0 - image_picker: 1.2.3 + image_picker: 1.2.4 path: 1.9.1 dynamic_color: 2.1.0 collection: 1.19.1 window_manager: 0.5.2 color_hash: 1.0.1 - flutter_widget_from_html_core: 0.17.4 + flutter_widget_from_html_core: 0.18.0-beta.1 flutter_svg: 2.3.0 json_annotation: 4.12.0 - shared_preferences: 2.5.5 + shared_preferences: 2.5.6 fluttertagger: 2.3.2 dynamic_polls: 0.0.8 flutter_hooks: 0.21.3+1 ffi: 2.2.0 hooks: 2.2.0 code_assets: 2.1.0 - ffigen: 22.0.0 + ffigen: 23.0.0 timeago: 3.7.1 http: 1.6.0 flutter_linkify: 6.0.0 @@ -85,10 +85,10 @@ dependencies: path: packages/navigation_rail_m3e m3e_card_list: 1.0.0 xdg_directories: 1.1.0 - package_info_plus: 10.2.1 - app_links: 7.2.1 + package_info_plus: 10.2.2 + app_links: 7.2.2 file_selector: 1.1.0 - material_ui: 1.5.0 + material_ui: 1.6.0 unifiedpush: 6.2.0 unifiedpush_storage_shared_preferences: 1.0.0 flutter_local_notifications: 22.3.1 @@ -99,7 +99,7 @@ dependencies: ref: quad/nexus dev_dependencies: - build_runner: 2.16.1 + build_runner: 2.16.2 flutter_lints: 6.0.0 freezed: 4.0.2 riverpod_lint: 3.1.9