mirror of
https://gitlab.com/nkming2/nc-photos.git
synced 2025-03-10 17:28:56 +01:00
(Web) Allow sharing as links
This commit is contained in:
parent
5e100d1586
commit
a37697f7be
7 changed files with 46 additions and 59 deletions
|
@ -37,7 +37,6 @@ class ShareHandler {
|
||||||
});
|
});
|
||||||
|
|
||||||
Future<void> shareFiles(Account account, List<File> files) async {
|
Future<void> shareFiles(Account account, List<File> files) async {
|
||||||
assert(platform_k.isAndroid);
|
|
||||||
try {
|
try {
|
||||||
final method = await _askShareMethod();
|
final method = await _askShareMethod();
|
||||||
if (method == null) {
|
if (method == null) {
|
||||||
|
@ -69,6 +68,7 @@ class ShareHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _shareAsFile(Account account, List<File> files) async {
|
Future<void> _shareAsFile(Account account, List<File> files) async {
|
||||||
|
assert(platform_k.isAndroid);
|
||||||
final controller = StreamController<String>();
|
final controller = StreamController<String>();
|
||||||
showDialog(
|
showDialog(
|
||||||
context: context,
|
context: context,
|
||||||
|
|
|
@ -18,7 +18,6 @@ import 'package:nc_photos/exception_util.dart' as exception_util;
|
||||||
import 'package:nc_photos/k.dart' as k;
|
import 'package:nc_photos/k.dart' as k;
|
||||||
import 'package:nc_photos/list_extension.dart';
|
import 'package:nc_photos/list_extension.dart';
|
||||||
import 'package:nc_photos/or_null.dart';
|
import 'package:nc_photos/or_null.dart';
|
||||||
import 'package:nc_photos/platform/k.dart' as platform_k;
|
|
||||||
import 'package:nc_photos/pref.dart';
|
import 'package:nc_photos/pref.dart';
|
||||||
import 'package:nc_photos/session_storage.dart';
|
import 'package:nc_photos/session_storage.dart';
|
||||||
import 'package:nc_photos/share_handler.dart';
|
import 'package:nc_photos/share_handler.dart';
|
||||||
|
@ -248,7 +247,6 @@ class _AlbumBrowserState extends State<AlbumBrowser>
|
||||||
|
|
||||||
Widget _buildSelectionAppBar(BuildContext context) {
|
Widget _buildSelectionAppBar(BuildContext context) {
|
||||||
return buildSelectionAppBar(context, [
|
return buildSelectionAppBar(context, [
|
||||||
if (platform_k.isAndroid)
|
|
||||||
IconButton(
|
IconButton(
|
||||||
icon: const Icon(Icons.share),
|
icon: const Icon(Icons.share),
|
||||||
tooltip: L10n.global().shareTooltip,
|
tooltip: L10n.global().shareTooltip,
|
||||||
|
@ -336,7 +334,6 @@ class _AlbumBrowserState extends State<AlbumBrowser>
|
||||||
}
|
}
|
||||||
|
|
||||||
void _onSelectionSharePressed(BuildContext context) {
|
void _onSelectionSharePressed(BuildContext context) {
|
||||||
assert(platform_k.isAndroid);
|
|
||||||
final selected = selectedListItems
|
final selected = selectedListItems
|
||||||
.whereType<_FileListItem>()
|
.whereType<_FileListItem>()
|
||||||
.map((e) => e.file)
|
.map((e) => e.file)
|
||||||
|
|
|
@ -21,7 +21,6 @@ import 'package:nc_photos/exception_util.dart' as exception_util;
|
||||||
import 'package:nc_photos/iterable_extension.dart';
|
import 'package:nc_photos/iterable_extension.dart';
|
||||||
import 'package:nc_photos/k.dart' as k;
|
import 'package:nc_photos/k.dart' as k;
|
||||||
import 'package:nc_photos/or_null.dart';
|
import 'package:nc_photos/or_null.dart';
|
||||||
import 'package:nc_photos/platform/k.dart' as platform_k;
|
|
||||||
import 'package:nc_photos/pref.dart';
|
import 'package:nc_photos/pref.dart';
|
||||||
import 'package:nc_photos/share_handler.dart';
|
import 'package:nc_photos/share_handler.dart';
|
||||||
import 'package:nc_photos/snack_bar_manager.dart';
|
import 'package:nc_photos/snack_bar_manager.dart';
|
||||||
|
@ -258,7 +257,6 @@ class _DynamicAlbumBrowserState extends State<DynamicAlbumBrowser>
|
||||||
|
|
||||||
Widget _buildSelectionAppBar(BuildContext context) {
|
Widget _buildSelectionAppBar(BuildContext context) {
|
||||||
return buildSelectionAppBar(context, [
|
return buildSelectionAppBar(context, [
|
||||||
if (platform_k.isAndroid)
|
|
||||||
IconButton(
|
IconButton(
|
||||||
icon: const Icon(Icons.share),
|
icon: const Icon(Icons.share),
|
||||||
tooltip: L10n.global().shareTooltip,
|
tooltip: L10n.global().shareTooltip,
|
||||||
|
@ -389,7 +387,6 @@ class _DynamicAlbumBrowserState extends State<DynamicAlbumBrowser>
|
||||||
}
|
}
|
||||||
|
|
||||||
void _onSelectionSharePressed(BuildContext context) {
|
void _onSelectionSharePressed(BuildContext context) {
|
||||||
assert(platform_k.isAndroid);
|
|
||||||
final selected = selectedListItems
|
final selected = selectedListItems
|
||||||
.whereType<_FileListItem>()
|
.whereType<_FileListItem>()
|
||||||
.map((e) => e.file)
|
.map((e) => e.file)
|
||||||
|
|
|
@ -26,7 +26,6 @@ import 'package:nc_photos/iterable_extension.dart';
|
||||||
import 'package:nc_photos/k.dart' as k;
|
import 'package:nc_photos/k.dart' as k;
|
||||||
import 'package:nc_photos/metadata_task_manager.dart';
|
import 'package:nc_photos/metadata_task_manager.dart';
|
||||||
import 'package:nc_photos/notified_action.dart';
|
import 'package:nc_photos/notified_action.dart';
|
||||||
import 'package:nc_photos/platform/k.dart' as platform_k;
|
|
||||||
import 'package:nc_photos/pref.dart';
|
import 'package:nc_photos/pref.dart';
|
||||||
import 'package:nc_photos/primitive.dart';
|
import 'package:nc_photos/primitive.dart';
|
||||||
import 'package:nc_photos/share_handler.dart';
|
import 'package:nc_photos/share_handler.dart';
|
||||||
|
@ -186,7 +185,6 @@ class _HomePhotosState extends State<HomePhotos>
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
actions: [
|
actions: [
|
||||||
if (platform_k.isAndroid)
|
|
||||||
IconButton(
|
IconButton(
|
||||||
icon: const Icon(Icons.share),
|
icon: const Icon(Icons.share),
|
||||||
tooltip: L10n.global().shareTooltip,
|
tooltip: L10n.global().shareTooltip,
|
||||||
|
@ -387,7 +385,6 @@ class _HomePhotosState extends State<HomePhotos>
|
||||||
}
|
}
|
||||||
|
|
||||||
void _onSelectionSharePressed(BuildContext context) {
|
void _onSelectionSharePressed(BuildContext context) {
|
||||||
assert(platform_k.isAndroid);
|
|
||||||
final selected = selectedListItems
|
final selected = selectedListItems
|
||||||
.whereType<_FileListItem>()
|
.whereType<_FileListItem>()
|
||||||
.map((e) => e.file)
|
.map((e) => e.file)
|
||||||
|
|
|
@ -25,7 +25,6 @@ import 'package:nc_photos/exception_util.dart' as exception_util;
|
||||||
import 'package:nc_photos/iterable_extension.dart';
|
import 'package:nc_photos/iterable_extension.dart';
|
||||||
import 'package:nc_photos/k.dart' as k;
|
import 'package:nc_photos/k.dart' as k;
|
||||||
import 'package:nc_photos/notified_action.dart';
|
import 'package:nc_photos/notified_action.dart';
|
||||||
import 'package:nc_photos/platform/k.dart' as platform_k;
|
|
||||||
import 'package:nc_photos/pref.dart';
|
import 'package:nc_photos/pref.dart';
|
||||||
import 'package:nc_photos/share_handler.dart';
|
import 'package:nc_photos/share_handler.dart';
|
||||||
import 'package:nc_photos/snack_bar_manager.dart';
|
import 'package:nc_photos/snack_bar_manager.dart';
|
||||||
|
@ -262,7 +261,6 @@ class _PersonBrowserState extends State<PersonBrowser>
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
actions: [
|
actions: [
|
||||||
if (platform_k.isAndroid)
|
|
||||||
IconButton(
|
IconButton(
|
||||||
icon: const Icon(Icons.share),
|
icon: const Icon(Icons.share),
|
||||||
tooltip: L10n.global().shareTooltip,
|
tooltip: L10n.global().shareTooltip,
|
||||||
|
@ -339,7 +337,6 @@ class _PersonBrowserState extends State<PersonBrowser>
|
||||||
}
|
}
|
||||||
|
|
||||||
void _onSelectionSharePressed(BuildContext context) {
|
void _onSelectionSharePressed(BuildContext context) {
|
||||||
assert(platform_k.isAndroid);
|
|
||||||
final selected =
|
final selected =
|
||||||
selectedListItems.whereType<_ListItem>().map((e) => e.file).toList();
|
selectedListItems.whereType<_ListItem>().map((e) => e.file).toList();
|
||||||
ShareHandler(
|
ShareHandler(
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/widgets.dart';
|
import 'package:flutter/widgets.dart';
|
||||||
import 'package:nc_photos/app_localizations.dart';
|
import 'package:nc_photos/app_localizations.dart';
|
||||||
|
import 'package:nc_photos/platform/k.dart' as platform_k;
|
||||||
|
|
||||||
enum ShareMethod {
|
enum ShareMethod {
|
||||||
file,
|
file,
|
||||||
|
@ -18,6 +19,7 @@ class ShareMethodDialog extends StatelessWidget {
|
||||||
return SimpleDialog(
|
return SimpleDialog(
|
||||||
title: Text(L10n.global().shareMethodDialogTitle),
|
title: Text(L10n.global().shareMethodDialogTitle),
|
||||||
children: [
|
children: [
|
||||||
|
if (platform_k.isAndroid)
|
||||||
SimpleDialogOption(
|
SimpleDialogOption(
|
||||||
child: ListTile(
|
child: ListTile(
|
||||||
title: Text(L10n.global().shareMethodFileTitle),
|
title: Text(L10n.global().shareMethodFileTitle),
|
||||||
|
|
|
@ -16,7 +16,6 @@ import 'package:nc_photos/entity/file/data_source.dart';
|
||||||
import 'package:nc_photos/entity/file_util.dart' as file_util;
|
import 'package:nc_photos/entity/file_util.dart' as file_util;
|
||||||
import 'package:nc_photos/exception_util.dart' as exception_util;
|
import 'package:nc_photos/exception_util.dart' as exception_util;
|
||||||
import 'package:nc_photos/k.dart' as k;
|
import 'package:nc_photos/k.dart' as k;
|
||||||
import 'package:nc_photos/platform/k.dart' as platform_k;
|
|
||||||
import 'package:nc_photos/pref.dart';
|
import 'package:nc_photos/pref.dart';
|
||||||
import 'package:nc_photos/share_handler.dart';
|
import 'package:nc_photos/share_handler.dart';
|
||||||
import 'package:nc_photos/snack_bar_manager.dart';
|
import 'package:nc_photos/snack_bar_manager.dart';
|
||||||
|
@ -183,7 +182,6 @@ class _ViewerState extends State<Viewer>
|
||||||
: const Duration(milliseconds: 1),
|
: const Duration(milliseconds: 1),
|
||||||
child: ViewerBottomAppBar(
|
child: ViewerBottomAppBar(
|
||||||
children: [
|
children: [
|
||||||
if (platform_k.isAndroid)
|
|
||||||
IconButton(
|
IconButton(
|
||||||
icon: Icon(
|
icon: Icon(
|
||||||
Icons.share_outlined,
|
Icons.share_outlined,
|
||||||
|
@ -433,7 +431,6 @@ class _ViewerState extends State<Viewer>
|
||||||
}
|
}
|
||||||
|
|
||||||
void _onSharePressed(BuildContext context) {
|
void _onSharePressed(BuildContext context) {
|
||||||
assert(platform_k.isAndroid);
|
|
||||||
final file = widget.streamFiles[_viewerController.currentPage];
|
final file = widget.streamFiles[_viewerController.currentPage];
|
||||||
ShareHandler(
|
ShareHandler(
|
||||||
context: context,
|
context: context,
|
||||||
|
|
Loading…
Reference in a new issue