From 753b51c6e0038544e81ff61ae64e738adfaee0bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=85=B1=E5=A4=A9=E5=B0=8F=E7=A6=BD=E5=85=BD?= Date: Sun, 27 Oct 2024 16:32:18 +0800 Subject: [PATCH] build --- lib/src/config/theme_config.dart | 1 + lib/src/pages/home_page.dart | 36 +++++++++++++++++++++++--------- pubspec.lock | 4 ++-- 3 files changed, 29 insertions(+), 12 deletions(-) diff --git a/lib/src/config/theme_config.dart b/lib/src/config/theme_config.dart index 1cef533d..4879ae96 100644 --- a/lib/src/config/theme_config.dart +++ b/lib/src/config/theme_config.dart @@ -20,6 +20,7 @@ class ThemeConfig { return themeData.copyWith( appBarTheme: themeData.appBarTheme.copyWith(backgroundColor: themeData.colorScheme.surface), + dialogTheme: DialogTheme(backgroundColor: themeData.colorScheme.surface), ); } } diff --git a/lib/src/pages/home_page.dart b/lib/src/pages/home_page.dart index 9650a82e..b582083f 100644 --- a/lib/src/pages/home_page.dart +++ b/lib/src/pages/home_page.dart @@ -117,13 +117,18 @@ class _HomePageState extends State with LoginRequiredMixin, WindowList return; } - ReceiveSharingIntent.getInitialText().then( - (String? rawText) { - if (isEmptyOrNull(rawText)) { + ReceiveSharingIntent.instance.getInitialMedia().then( + (List files) { + if (files.isEmpty) { return; } - GalleryUrl? galleryUrl = GalleryUrl.tryParse(rawText!); + SharedMediaFile file = files.first; + if (file.type != SharedMediaType.url) { + return; + } + + GalleryUrl? galleryUrl = GalleryUrl.tryParse(file.path); if (galleryUrl != null) { toRoute( Routes.details, @@ -134,7 +139,7 @@ class _HomePageState extends State with LoginRequiredMixin, WindowList return; } - GalleryImagePageUrl? galleryImagePageUrl = GalleryImagePageUrl.tryParse(rawText); + GalleryImagePageUrl? galleryImagePageUrl = GalleryImagePageUrl.tryParse(file.path); if (galleryImagePageUrl != null) { toRoute( Routes.imagePage, @@ -146,11 +151,22 @@ class _HomePageState extends State with LoginRequiredMixin, WindowList toast('Invalid jump link', isShort: false); }, - ); + ).whenComplete(() { + ReceiveSharingIntent.instance.reset(); + }); - _intentDataStreamSubscription = ReceiveSharingIntent.getTextStream().listen( - (String url) { - GalleryUrl? galleryUrl = GalleryUrl.tryParse(url); + _intentDataStreamSubscription = ReceiveSharingIntent.instance.getMediaStream().listen( + (List files) { + if (files.isEmpty) { + return; + } + + SharedMediaFile file = files.first; + if (file.type != SharedMediaType.url) { + return; + } + + GalleryUrl? galleryUrl = GalleryUrl.tryParse(file.path); if (galleryUrl != null) { toRoute( Routes.details, @@ -161,7 +177,7 @@ class _HomePageState extends State with LoginRequiredMixin, WindowList return; } - GalleryImagePageUrl? galleryImagePageUrl = GalleryImagePageUrl.tryParse(url); + GalleryImagePageUrl? galleryImagePageUrl = GalleryImagePageUrl.tryParse(file.path); if (galleryImagePageUrl != null) { toRoute( Routes.imagePage, diff --git a/pubspec.lock b/pubspec.lock index 963508a1..9ff6fa79 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1339,10 +1339,10 @@ packages: dependency: "direct main" description: name: receive_sharing_intent - sha256: "912bebb551bce75a14098891fd750305b30d53eba0d61cc70cd9973be9866e8d" + sha256: ec76056e4d258ad708e76d85591d933678625318e411564dcb9059048ca3a593 url: "https://pub.dev" source: hosted - version: "1.4.5" + version: "1.8.1" retry: dependency: "direct main" description: