feat: support xdp selector for linux
use xdp selector
This commit is contained in:
parent
871da6c6a6
commit
b020c90ac5
4 changed files with 20 additions and 41 deletions
|
|
@ -3,7 +3,6 @@ import 'package:flutter/widgets.dart';
|
|||
import 'package:file_picker/file_picker.dart';
|
||||
import 'package:file_selector/file_selector.dart';
|
||||
|
||||
import 'package:fluffychat/utils/platform_infos.dart';
|
||||
import 'package:fluffychat/widgets/app_lock.dart';
|
||||
import 'package:fluffychat/widgets/future_loading_dialog.dart';
|
||||
|
||||
|
|
@ -13,31 +12,18 @@ Future<List<XFile>> selectFiles(
|
|||
FileSelectorType type = FileSelectorType.any,
|
||||
bool allowMultiple = false,
|
||||
}) async {
|
||||
if (!PlatformInfos.isLinux) {
|
||||
final result = await AppLock.of(context).pauseWhile(
|
||||
showFutureLoadingDialog(
|
||||
context: context,
|
||||
future: () => FilePicker.platform.pickFiles(
|
||||
compressionQuality: 0,
|
||||
allowMultiple: allowMultiple,
|
||||
type: type.filePickerType,
|
||||
allowedExtensions: type.extensions,
|
||||
),
|
||||
final result = await AppLock.of(context).pauseWhile(
|
||||
showFutureLoadingDialog(
|
||||
context: context,
|
||||
future: () => FilePicker.platform.pickFiles(
|
||||
compressionQuality: 0,
|
||||
allowMultiple: allowMultiple,
|
||||
type: type.filePickerType,
|
||||
allowedExtensions: type.extensions,
|
||||
),
|
||||
);
|
||||
return result.result?.xFiles ?? [];
|
||||
}
|
||||
|
||||
if (allowMultiple) {
|
||||
return await AppLock.of(context).pauseWhile(
|
||||
openFiles(confirmButtonText: title, acceptedTypeGroups: type.groups),
|
||||
);
|
||||
}
|
||||
final file = await AppLock.of(context).pauseWhile(
|
||||
openFile(confirmButtonText: title, acceptedTypeGroups: type.groups),
|
||||
),
|
||||
);
|
||||
if (file == null) return [];
|
||||
return [file];
|
||||
return result.result?.xFiles ?? [];
|
||||
}
|
||||
|
||||
enum FileSelectorType {
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ import 'dart:io';
|
|||
import 'package:flutter/material.dart';
|
||||
|
||||
import 'package:file_picker/file_picker.dart';
|
||||
import 'package:file_selector/file_selector.dart';
|
||||
import 'package:matrix/matrix.dart';
|
||||
import 'package:share_plus/share_plus.dart';
|
||||
import 'package:universal_html/html.dart' as html;
|
||||
|
|
@ -20,18 +19,12 @@ extension MatrixFileExtension on MatrixFile {
|
|||
return;
|
||||
}
|
||||
|
||||
final downloadPath = !PlatformInfos.isMobile
|
||||
? (await getSaveLocation(
|
||||
suggestedName: name,
|
||||
confirmButtonText: L10n.of(context).saveFile,
|
||||
))
|
||||
?.path
|
||||
: await FilePicker.platform.saveFile(
|
||||
dialogTitle: L10n.of(context).saveFile,
|
||||
fileName: name,
|
||||
type: filePickerFileType,
|
||||
bytes: bytes,
|
||||
);
|
||||
final downloadPath = await FilePicker.platform.saveFile(
|
||||
dialogTitle: L10n.of(context).saveFile,
|
||||
fileName: name,
|
||||
type: filePickerFileType,
|
||||
bytes: bytes,
|
||||
);
|
||||
if (downloadPath == null) return;
|
||||
|
||||
if (PlatformInfos.isDesktop) {
|
||||
|
|
|
|||
|
|
@ -410,10 +410,10 @@ packages:
|
|||
dependency: "direct main"
|
||||
description:
|
||||
name: file_picker
|
||||
sha256: "8f9f429998f9232d65bc4757af74475ce44fc80f10704ff5dfa8b1d14fc429b9"
|
||||
sha256: ef7d2a085c1b1d69d17b6842d0734aad90156de08df6bd3c12496d0bd6ddf8e2
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "10.2.3"
|
||||
version: "10.3.1"
|
||||
file_selector:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ dependencies:
|
|||
dynamic_color: ^1.8.1
|
||||
emoji_picker_flutter: ^4.3.0
|
||||
emojis: ^0.9.9
|
||||
file_picker: ^10.2.3
|
||||
file_picker: ^10.3.1
|
||||
file_selector: ^1.0.3
|
||||
flutter:
|
||||
sdk: flutter
|
||||
|
|
@ -144,4 +144,4 @@ dependency_overrides:
|
|||
git:
|
||||
url: https://github.com/ThexXTURBOXx/flutter_web_auth_2.git
|
||||
ref: 3.x-without-v1
|
||||
path: flutter_web_auth_2
|
||||
path: flutter_web_auth_2
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue