From be5889ee334f3102afacdbd730ed3f6b1ec5abd7 Mon Sep 17 00:00:00 2001 From: dom Date: Wed, 20 May 2026 16:49:14 +0800 Subject: [PATCH] upgrade deps Signed-off-by: dom --- lib/common/widgets/dialog/export_import.dart | 32 ++++----- lib/pages/video/widgets/header_control.dart | 74 ++++++++++---------- lib/utils/image_utils.dart | 2 + lib/utils/storage_utils.dart | 2 +- pubspec.lock | 20 +++--- 5 files changed, 64 insertions(+), 66 deletions(-) diff --git a/lib/common/widgets/dialog/export_import.dart b/lib/common/widgets/dialog/export_import.dart index 4b59069e2..14eca825f 100644 --- a/lib/common/widgets/dialog/export_import.dart +++ b/lib/common/widgets/dialog/export_import.dart @@ -117,27 +117,25 @@ Future importFromClipBoard( Future importFromLocalFile({ required FutureOr Function(T json) onImport, }) async { - final result = await FilePicker.pickFiles( + final result = await FilePicker.pickFile( type: .custom, allowedExtensions: const ['json', 'txt'], ); if (result != null) { - final path = result.files.first.path; - if (path != null) { - final data = await File(path).readAsString(); - final T json; - try { - json = jsonDecode(data); - } catch (e) { - SmartDialog.showToast('解析json失败:$e'); - return; - } - try { - await onImport(json); - SmartDialog.showToast('导入成功'); - } catch (e) { - SmartDialog.showToast('导入失败:$e'); - } + final path = result.xFile.path; + final data = await File(path).readAsString(); + final T json; + try { + json = jsonDecode(data); + } catch (e) { + SmartDialog.showToast('解析json失败:$e'); + return; + } + try { + await onImport(json); + SmartDialog.showToast('导入成功'); + } catch (e) { + SmartDialog.showToast('导入失败:$e'); } } } diff --git a/lib/pages/video/widgets/header_control.dart b/lib/pages/video/widgets/header_control.dart index 81e5ef449..52a71c50b 100644 --- a/lib/pages/video/widgets/header_control.dart +++ b/lib/pages/video/widgets/header_control.dart @@ -668,51 +668,49 @@ class HeaderControlState extends State onTap: () async { Get.back(); try { - final result = await FilePicker.pickFiles( + final result = await FilePicker.pickFile( type: .custom, allowedExtensions: const ['json', 'vtt', 'srt', 'ass'], ); if (result != null) { - final file = result.files.single; + final file = result.xFile; final path = file.path; - if (path != null) { - final name = file.name; - final length = videoDetailCtr.subtitles.length; - if (name.endsWith('.json')) { - final file = File(path); - final stream = file.openRead().transform( - utf8.decoder, - ); - final buffer = StringBuffer(); - await for (final chunk in stream) { - if (!mounted) return; - buffer.write(chunk); - } - if (!mounted) return; - String sub = buffer.toString(); - sub = await compute( - VideoHttp.processList, - jsonDecode(sub)['body'], - ); - if (!mounted) return; - videoDetailCtr.vttSubtitles[length] = ( - isData: true, - id: sub, - ); - } else { - videoDetailCtr.vttSubtitles[length] = ( - isData: false, - id: path, - ); - } - videoDetailCtr.subtitles.add( - Subtitle( - lan: '', - lanDoc: name.split('.').firstOrNull ?? name, - ), + final name = file.name; + final length = videoDetailCtr.subtitles.length; + if (name.endsWith('.json')) { + final file = File(path); + final stream = file.openRead().transform( + utf8.decoder, + ); + final buffer = StringBuffer(); + await for (final chunk in stream) { + if (!mounted) return; + buffer.write(chunk); + } + if (!mounted) return; + String sub = buffer.toString(); + sub = await compute( + VideoHttp.processList, + jsonDecode(sub)['body'], + ); + if (!mounted) return; + videoDetailCtr.vttSubtitles[length] = ( + isData: true, + id: sub, + ); + } else { + videoDetailCtr.vttSubtitles[length] = ( + isData: false, + id: path, ); - await videoDetailCtr.setSubtitle(length + 1); } + videoDetailCtr.subtitles.add( + Subtitle( + lan: '', + lanDoc: name.split('.').firstOrNull ?? name, + ), + ); + await videoDetailCtr.setSubtitle(length + 1); } } catch (e) { SmartDialog.showToast('加载失败: $e'); diff --git a/lib/utils/image_utils.dart b/lib/utils/image_utils.dart index eced23ded..c7b6876d4 100644 --- a/lib/utils/image_utils.dart +++ b/lib/utils/image_utils.dart @@ -316,6 +316,7 @@ abstract final class ImageUtils { final savePath = await FilePicker.saveFile( type: FileType.image, fileName: fileName, + bytes: Uint8List(0), ); if (savePath == null) { SmartDialog.showToast("取消保存"); @@ -353,6 +354,7 @@ abstract final class ImageUtils { final savePath = await FilePicker.saveFile( type: type, fileName: fileName, + bytes: Uint8List(0), ); if (savePath == null) { SmartDialog.showToast("取消保存"); diff --git a/lib/utils/storage_utils.dart b/lib/utils/storage_utils.dart index f65d1eff2..3c5b6353e 100644 --- a/lib/utils/storage_utils.dart +++ b/lib/utils/storage_utils.dart @@ -17,7 +17,7 @@ abstract final class StorageUtils { allowedExtensions: allowedExtensions, type: type, fileName: name, - bytes: PlatformUtils.isDesktop ? null : bytes, + bytes: PlatformUtils.isDesktop ? Uint8List(0) : bytes, ); if (path == null) { SmartDialog.showToast("取消保存"); diff --git a/pubspec.lock b/pubspec.lock index 2bf1e8785..5ca520bfe 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -522,10 +522,10 @@ packages: description: path: "." ref: dev - resolved-ref: "8cf6cfa7078aa69c2c7b08d9ad636a1040456852" + resolved-ref: c4672374956fa28d117ef7a55a6e708daddbf462 url: "https://github.com/bggRGjQaUbCoE/flutter_file_picker.git" source: git - version: "12.0.0-beta.3" + version: "12.0.0-beta.4" file_selector_linux: dependency: transitive description: @@ -1150,7 +1150,7 @@ packages: description: path: media_kit ref: "version_1.2.5" - resolved-ref: "14c3ee41df4f51292b89eaf8f8c97420220fe136" + resolved-ref: "4f0f72e5bf21349bc251bf52761628faeae3f233" url: "https://github.com/My-Responsitories/media-kit.git" source: git version: "1.1.11" @@ -1159,7 +1159,7 @@ packages: description: path: "libs/android/media_kit_libs_android_video" ref: "version_1.2.5" - resolved-ref: "14c3ee41df4f51292b89eaf8f8c97420220fe136" + resolved-ref: "4f0f72e5bf21349bc251bf52761628faeae3f233" url: "https://github.com/My-Responsitories/media-kit.git" source: git version: "1.3.7" @@ -1193,7 +1193,7 @@ packages: description: path: "libs/universal/media_kit_libs_video" ref: "version_1.2.5" - resolved-ref: "14c3ee41df4f51292b89eaf8f8c97420220fe136" + resolved-ref: "4f0f72e5bf21349bc251bf52761628faeae3f233" url: "https://github.com/My-Responsitories/media-kit.git" source: git version: "1.0.5" @@ -1202,7 +1202,7 @@ packages: description: path: "libs/windows/media_kit_libs_windows_video" ref: "version_1.2.5" - resolved-ref: "14c3ee41df4f51292b89eaf8f8c97420220fe136" + resolved-ref: "4f0f72e5bf21349bc251bf52761628faeae3f233" url: "https://github.com/My-Responsitories/media-kit.git" source: git version: "1.0.10" @@ -1211,7 +1211,7 @@ packages: description: path: media_kit_native_event_loop ref: "version_1.2.5" - resolved-ref: "14c3ee41df4f51292b89eaf8f8c97420220fe136" + resolved-ref: "4f0f72e5bf21349bc251bf52761628faeae3f233" url: "https://github.com/My-Responsitories/media-kit.git" source: git version: "1.0.9" @@ -1220,7 +1220,7 @@ packages: description: path: media_kit_video ref: "version_1.2.5" - resolved-ref: "14c3ee41df4f51292b89eaf8f8c97420220fe136" + resolved-ref: "4f0f72e5bf21349bc251bf52761628faeae3f233" url: "https://github.com/My-Responsitories/media-kit.git" source: git version: "1.2.5" @@ -1867,10 +1867,10 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: "3bb000251e55d4a209aa0e2e563309dc9bb2befea2295fd0cec1f51760aac572" + sha256: "17bc677f0b301615530dd1d67e0a9828cafa2d0b6b6eae4cd3679b7eac4a273c" url: "https://pub.dev" source: hosted - version: "6.3.29" + version: "6.3.30" url_launcher_ios: dependency: transitive description: