Download Link Web

This commit is contained in:
2025-11-10 17:16:52 +01:00
parent 047bce9610
commit 2628ae138a
@@ -3,6 +3,8 @@ import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter/widgets.dart' as widgets;
import 'package:flutter/services.dart';
import 'package:flutter/foundation.dart';
import '../../../core/status.dart';
import '../../movies/presentation/widgets/status_chip.dart';
import '../data/series_repository.dart';
@@ -17,6 +19,22 @@ import '../../../core/config.dart';
import '../../../core/async_utils.dart';
import 'widgets/overlay_scrollbar.dart';
Future<void> openDownloadPath(BuildContext context, String path) async {
final ok = await openFolder(path);
if (ok) return;
final messenger = ScaffoldMessenger.of(context);
if (kIsWeb) {
await Clipboard.setData(ClipboardData(text: path));
messenger.showSnackBar(
const SnackBar(content: Text('Im Web nicht möglich Pfad wurde kopiert')),
);
} else {
messenger.showSnackBar(
const SnackBar(content: Text('Pfad kann nicht geöffnet werden')),
);
}
}
class SeriesListScreen extends ConsumerStatefulWidget {
const SeriesListScreen({super.key});
@@ -564,10 +582,7 @@ class _SeriesListScreenState extends ConsumerState<SeriesListScreen> {
onPressed: () async {
final messenger = ScaffoldMessenger.of(context);
if (downloadPath != null && downloadPath.isNotEmpty) {
final ok = await openFolder(downloadPath);
if (!ok) {
messenger.showSnackBar(const SnackBar(content: Text('Pfad kann nicht geöffnet werden')));
}
await openDownloadPath(context, downloadPath);
} else {
messenger.showSnackBar(const SnackBar(content: Text('Kein Download Path vorhanden')));
}
@@ -700,7 +715,11 @@ class _SeriesListScreenState extends ConsumerState<SeriesListScreen> {
child: const Text('open download path'),
onPressed: () async {
final messenger = ScaffoldMessenger.of(context);
if (downloadPath != null && downloadPath.isNotEmpty) { final ok = await openFolder(downloadPath); if (!ok) { messenger.showSnackBar(const SnackBar(content: Text('Pfad kann nicht geöffnet werden')));} } else { messenger.showSnackBar(const SnackBar(content: Text('Kein Download Path vorhanden')));}
if (downloadPath != null && downloadPath.isNotEmpty) {
await openDownloadPath(context, downloadPath);
} else {
messenger.showSnackBar(const SnackBar(content: Text('Kein Download Path vorhanden')));
}
},
),
],
@@ -759,7 +778,14 @@ class _SeriesListScreenState extends ConsumerState<SeriesListScreen> {
),
MenuItemButton(
child: const Text('open download path'),
onPressed: () async { final messenger = ScaffoldMessenger.of(context); if (downloadPath != null && downloadPath.isNotEmpty) { final ok = await openFolder(downloadPath); if (!ok) { messenger.showSnackBar(const SnackBar(content: Text('Pfad kann nicht geöffnet werden')));} } else { messenger.showSnackBar(const SnackBar(content: Text('Kein Download Path vorhanden')));} },
onPressed: () async {
final messenger = ScaffoldMessenger.of(context);
if (downloadPath != null && downloadPath.isNotEmpty) {
await openDownloadPath(context, downloadPath);
} else {
messenger.showSnackBar(const SnackBar(content: Text('Kein Download Path vorhanden')));
}
},
),
],
builder: (ctx, controller, child) => GestureDetector(
@@ -1221,12 +1247,7 @@ class _SeriesListScreenState extends ConsumerState<SeriesListScreen> {
final messenger = ScaffoldMessenger.of(context);
final dp = downloadPath;
if (dp != null && dp.isNotEmpty) {
final ok = await openFolder(dp);
if (!ok) {
messenger.showSnackBar(
const SnackBar(content: Text('Pfad kann nicht geöffnet werden')),
);
}
await openDownloadPath(context, dp);
} else {
messenger.showSnackBar(
const SnackBar(content: Text('Kein Download Path vorhanden')),
@@ -1270,12 +1291,7 @@ class _SeriesListScreenState extends ConsumerState<SeriesListScreen> {
final messenger = ScaffoldMessenger.of(context);
final dp = downloadPath;
if (dp != null && dp.isNotEmpty) {
final ok = await openFolder(dp);
if (!ok) {
messenger.showSnackBar(
const SnackBar(content: Text('Pfad kann nicht geöffnet werden')),
);
}
await openDownloadPath(context, dp);
} else {
messenger.showSnackBar(
const SnackBar(content: Text('Kein Download Path vorhanden')),
@@ -1608,14 +1624,11 @@ extension _SeriesContextMenu on SeriesListScreen {
}
}
Future<void> openDownload() async {
Future<void> openDownload() async {
final messenger = ScaffoldMessenger.of(context);
final dp = downloadPath;
if (dp != null && dp.isNotEmpty) {
final ok = await openFolder(dp);
if (!ok) {
messenger.showSnackBar(const SnackBar(content: Text('Pfad kann nicht geöffnet werden')));
}
await openDownloadPath(context, dp);
} else {
messenger.showSnackBar(const SnackBar(content: Text('Kein Download Path vorhanden')));
}