diff --git a/apps/weblibre/lib/features/geckoview/features/browser/presentation/widgets/browser_menu_sheet.dart b/apps/weblibre/lib/features/geckoview/features/browser/presentation/widgets/browser_menu_sheet.dart
index d86f3cc3..6015e0cc 100644
--- a/apps/weblibre/lib/features/geckoview/features/browser/presentation/widgets/browser_menu_sheet.dart
+++ b/apps/weblibre/lib/features/geckoview/features/browser/presentation/widgets/browser_menu_sheet.dart
@@ -1678,7 +1678,7 @@ class _ExportExpansion extends ConsumerWidget {
fileName,
) async {
await FilePicker.saveFile(
- fileName: fileName,
+ fileName: fileName ?? 'page',
type: FileType.custom,
allowedExtensions: ['md'],
bytes: utf8.encode(content),
diff --git a/apps/weblibre/lib/features/geckoview/features/browser/presentation/widgets/tab_menu.dart b/apps/weblibre/lib/features/geckoview/features/browser/presentation/widgets/tab_menu.dart
index 9043d6cb..7c43bf8d 100644
--- a/apps/weblibre/lib/features/geckoview/features/browser/presentation/widgets/tab_menu.dart
+++ b/apps/weblibre/lib/features/geckoview/features/browser/presentation/widgets/tab_menu.dart
@@ -599,7 +599,7 @@ class TabMenu extends HookConsumerWidget {
icon: const Icon(MdiIcons.languageMarkdown),
shareMarkdownAction: (content, fileName) async {
await FilePicker.saveFile(
- fileName: fileName,
+ fileName: fileName ?? 'page',
type: FileType.custom,
allowedExtensions: ['md'],
bytes: utf8.encode(content),
diff --git a/apps/weblibre/lib/features/proxy/domain/services/proxy_input_consumer.dart b/apps/weblibre/lib/features/proxy/domain/services/proxy_input_consumer.dart
index 4fb2553f..5290a4ad 100644
--- a/apps/weblibre/lib/features/proxy/domain/services/proxy_input_consumer.dart
+++ b/apps/weblibre/lib/features/proxy/domain/services/proxy_input_consumer.dart
@@ -18,7 +18,6 @@
* along with this program. If not, see .
*/
import 'dart:convert';
-import 'dart:io';
import 'package:file_picker/file_picker.dart';
import 'package:flutter_singbox_proxy/flutter_singbox_proxy.dart';
@@ -160,15 +159,8 @@ class ProxyInputConsumer extends _$ProxyInputConsumer {
}
Future _readFileText(PlatformFile file) async {
- final bytes = file.bytes;
- if (bytes != null) {
- return utf8.decode(bytes, allowMalformed: true);
- }
- final path = file.path;
- if (path == null) {
- throw const FormatException('Unable to read file contents.');
- }
- return File(path).readAsString();
+ final bytes = await file.readAsBytes();
+ return utf8.decode(bytes, allowMalformed: true);
}
@override
diff --git a/apps/weblibre/lib/features/proxy/presentation/widgets/add_proxy_method_sheet.dart b/apps/weblibre/lib/features/proxy/presentation/widgets/add_proxy_method_sheet.dart
index 1e350936..c338dc8c 100644
--- a/apps/weblibre/lib/features/proxy/presentation/widgets/add_proxy_method_sheet.dart
+++ b/apps/weblibre/lib/features/proxy/presentation/widgets/add_proxy_method_sheet.dart
@@ -301,8 +301,7 @@ Future _consumeFile(
WidgetRef ref,
ProxyFileImportKind kind,
) async {
- final result = await FilePicker.pickFiles(withData: true);
- final picked = result?.files.singleOrNull;
+ final picked = await FilePicker.pickFile();
if (picked == null) return null;
final outcome = await ref
diff --git a/apps/weblibre/pubspec.yaml b/apps/weblibre/pubspec.yaml
index 5c587cd3..066ff23b 100644
--- a/apps/weblibre/pubspec.yaml
+++ b/apps/weblibre/pubspec.yaml
@@ -17,7 +17,7 @@ dependencies:
country_flags: ^4.1.2
crypto: ^3.0.7
cryptography_flutter: ^2.3.4
- device_info_plus: ^12.4.0
+ device_info_plus: ^13.1.0
drift: ^2.31.0
drift_dev: ^2.31.0
dynamic_color: ^1.8.1
@@ -25,7 +25,7 @@ dependencies:
fading_scroll: ^0.9.1
fancy_password_field: ^2.0.8
fast_equatable: ^1.3.1
- file_picker: ^11.0.2
+ file_picker: ^12.0.0-beta.4
flutter:
sdk: flutter
flutter_auto_size_text: ^5.0.0
@@ -35,7 +35,7 @@ dependencies:
flutter_mozilla_components:
path: ../../packages/flutter_mozilla_components
flutter_reorderable_grid_view: ^5.6.0
- flutter_secure_storage: ^10.1.0
+ flutter_secure_storage: ^10.2.0
flutter_singbox_proxy:
path: ../../packages/flutter_singbox_proxy
flutter_slidable: ^4.0.3
@@ -62,7 +62,7 @@ dependencies:
material_color_utilities: ^0.13.0
mime: ^2.0.0
nullability: ^1.0.0
- package_info_plus: ^9.0.1
+ package_info_plus: ^10.1.0
path: ^1.9.1
path_provider: ^2.1.5
permission_handler: ^12.0.1
@@ -76,7 +76,7 @@ dependencies:
rss_dart: ^1.0.14
rxdart: ^0.28.0
saf_stream: ^2.0.0
- saf_util: ^2.1.0
+ saf_util: ^2.2.0
search_client:
path: ../../../weblibre_account/packages/search_client
search_protocol:
@@ -86,7 +86,7 @@ dependencies:
url: https://github.com/FaFre/secure_archive.git
path: packages/secure_archive
ref: 0c515813ac2d29e29ab1c66759a396af825bf8b3
- share_plus: ^12.0.2
+ share_plus: ^13.1.0
simple_intent_receiver:
path: ../../packages/simple_intent_receiver
skeletonizer: ^2.1.3
diff --git a/packages/flutter_singbox_proxy/example/pubspec.yaml b/packages/flutter_singbox_proxy/example/pubspec.yaml
index a5896ddd..cb4ded62 100644
--- a/packages/flutter_singbox_proxy/example/pubspec.yaml
+++ b/packages/flutter_singbox_proxy/example/pubspec.yaml
@@ -15,7 +15,7 @@ environment:
# the latest version available on pub.dev. To see which dependencies have newer
# versions available, run `flutter pub outdated`.
dependencies:
- cupertino_icons: ^1.0.8
+ cupertino_icons: ^1.0.9
flutter:
sdk: flutter