mirror of
https://github.com/KRTirtho/spotube.git
synced 2025-09-13 07:55:18 +00:00
Compare commits
2 Commits
4ed40d95b2
...
b8ecd758cf
Author | SHA1 | Date | |
---|---|---|---|
![]() |
b8ecd758cf | ||
![]() |
70970f62f1 |
@ -1,5 +1,7 @@
|
|||||||
import 'package:auto_route/auto_route.dart';
|
import 'package:auto_route/auto_route.dart';
|
||||||
import 'package:collection/collection.dart';
|
import 'package:collection/collection.dart';
|
||||||
|
import 'package:file_selector/file_selector.dart';
|
||||||
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_form_builder/flutter_form_builder.dart';
|
import 'package:flutter_form_builder/flutter_form_builder.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:form_builder_validators/form_builder_validators.dart';
|
import 'package:form_builder_validators/form_builder_validators.dart';
|
||||||
@ -154,6 +156,20 @@ class SettingsMetadataProviderPage extends HookConsumerWidget {
|
|||||||
child: IconButton.primary(
|
child: IconButton.primary(
|
||||||
icon: const Icon(SpotubeIcons.upload),
|
icon: const Icon(SpotubeIcons.upload),
|
||||||
onPressed: () async {
|
onPressed: () async {
|
||||||
|
Uint8List bytes;
|
||||||
|
|
||||||
|
if (kIsFlatpak) {
|
||||||
|
final result = await openFile(
|
||||||
|
acceptedTypeGroups: [
|
||||||
|
const XTypeGroup(
|
||||||
|
label: 'Spotube Metadata Plugin',
|
||||||
|
extensions: ['smplug'],
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
if (result == null) return;
|
||||||
|
bytes = await result.readAsBytes();
|
||||||
|
} else {
|
||||||
final result = await FilePicker.platform.pickFiles(
|
final result = await FilePicker.platform.pickFiles(
|
||||||
type: kIsAndroid ? FileType.any : FileType.custom,
|
type: kIsAndroid ? FileType.any : FileType.custom,
|
||||||
allowedExtensions: kIsAndroid ? [] : ["smplug"],
|
allowedExtensions: kIsAndroid ? [] : ["smplug"],
|
||||||
@ -163,11 +179,12 @@ class SettingsMetadataProviderPage extends HookConsumerWidget {
|
|||||||
if (result == null) return;
|
if (result == null) return;
|
||||||
|
|
||||||
final file = result.files.first;
|
final file = result.files.first;
|
||||||
|
|
||||||
if (file.bytes == null) return;
|
if (file.bytes == null) return;
|
||||||
|
bytes = file.bytes!;
|
||||||
|
}
|
||||||
|
|
||||||
final pluginConfig = await pluginsNotifier
|
final pluginConfig =
|
||||||
.extractPluginArchive(file.bytes!);
|
await pluginsNotifier.extractPluginArchive(bytes);
|
||||||
await pluginsNotifier.addPlugin(pluginConfig);
|
await pluginsNotifier.addPlugin(pluginConfig);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
@ -161,7 +161,7 @@ class ServerConnectRoutes {
|
|||||||
|
|
||||||
event.onLoad((event) async {
|
event.onLoad((event) async {
|
||||||
await audioPlayerNotifier.load(
|
await audioPlayerNotifier.load(
|
||||||
event.data.tracks as List<SpotubeFullTrackObject>,
|
event.data.tracks.cast<SpotubeFullTrackObject>().toList(),
|
||||||
autoPlay: true,
|
autoPlay: true,
|
||||||
initialIndex: event.data.initialIndex ?? 0,
|
initialIndex: event.data.initialIndex ?? 0,
|
||||||
);
|
);
|
||||||
@ -186,7 +186,7 @@ class ServerConnectRoutes {
|
|||||||
});
|
});
|
||||||
|
|
||||||
event.onStop((event) async {
|
event.onStop((event) async {
|
||||||
await audioPlayer.stop();
|
await ref.read(audioPlayerProvider.notifier).stop();
|
||||||
});
|
});
|
||||||
|
|
||||||
event.onNext((event) async {
|
event.onNext((event) async {
|
||||||
|
@ -12,6 +12,7 @@ import bonsoir_darwin
|
|||||||
import connectivity_plus
|
import connectivity_plus
|
||||||
import desktop_webview_window
|
import desktop_webview_window
|
||||||
import device_info_plus
|
import device_info_plus
|
||||||
|
import file_picker
|
||||||
import file_selector_macos
|
import file_selector_macos
|
||||||
import flutter_inappwebview_macos
|
import flutter_inappwebview_macos
|
||||||
import flutter_secure_storage_macos
|
import flutter_secure_storage_macos
|
||||||
@ -40,6 +41,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
|||||||
ConnectivityPlusPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlusPlugin"))
|
ConnectivityPlusPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlusPlugin"))
|
||||||
DesktopWebviewWindowPlugin.register(with: registry.registrar(forPlugin: "DesktopWebviewWindowPlugin"))
|
DesktopWebviewWindowPlugin.register(with: registry.registrar(forPlugin: "DesktopWebviewWindowPlugin"))
|
||||||
DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
|
DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
|
||||||
|
FilePickerPlugin.register(with: registry.registrar(forPlugin: "FilePickerPlugin"))
|
||||||
FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin"))
|
FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin"))
|
||||||
InAppWebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "InAppWebViewFlutterPlugin"))
|
InAppWebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "InAppWebViewFlutterPlugin"))
|
||||||
FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin"))
|
FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin"))
|
||||||
|
@ -681,10 +681,10 @@ packages:
|
|||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
name: file_picker
|
name: file_picker
|
||||||
sha256: "16dc141db5a2ccc6520ebb6a2eb5945b1b09e95085c021d9f914f8ded7f1465c"
|
sha256: f2d9f173c2c14635cc0e9b14c143c49ef30b4934e8d1d274d6206fcb0086a06f
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "8.1.4"
|
version: "10.3.3"
|
||||||
file_selector:
|
file_selector:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -41,7 +41,7 @@ dependencies:
|
|||||||
duration: ^3.0.12
|
duration: ^3.0.12
|
||||||
encrypt: ^5.0.3
|
encrypt: ^5.0.3
|
||||||
envied: ^1.0.0
|
envied: ^1.0.0
|
||||||
file_picker: 8.1.4
|
file_picker: 10.3.3
|
||||||
file_selector: ^1.0.3
|
file_selector: ^1.0.3
|
||||||
fluentui_system_icons: ^1.1.234
|
fluentui_system_icons: ^1.1.234
|
||||||
flutter:
|
flutter:
|
||||||
|
Loading…
Reference in New Issue
Block a user