From a37697f7be3c0c860aeb98d2436ac8a4d4eac613 Mon Sep 17 00:00:00 2001 From: Ming Ming Date: Sat, 9 Oct 2021 16:42:18 +0800 Subject: [PATCH] (Web) Allow sharing as links --- lib/share_handler.dart | 2 +- lib/widget/album_browser.dart | 17 +++++++---------- lib/widget/dynamic_album_browser.dart | 17 +++++++---------- lib/widget/home_photos.dart | 17 +++++++---------- lib/widget/person_browser.dart | 17 +++++++---------- lib/widget/share_method_dialog.dart | 18 ++++++++++-------- lib/widget/viewer.dart | 17 +++++++---------- 7 files changed, 46 insertions(+), 59 deletions(-) diff --git a/lib/share_handler.dart b/lib/share_handler.dart index 8bda6e2f..ea601cca 100644 --- a/lib/share_handler.dart +++ b/lib/share_handler.dart @@ -37,7 +37,6 @@ class ShareHandler { }); Future shareFiles(Account account, List files) async { - assert(platform_k.isAndroid); try { final method = await _askShareMethod(); if (method == null) { @@ -69,6 +68,7 @@ class ShareHandler { } Future _shareAsFile(Account account, List files) async { + assert(platform_k.isAndroid); final controller = StreamController(); showDialog( context: context, diff --git a/lib/widget/album_browser.dart b/lib/widget/album_browser.dart index 4f9a91fd..b8bcfc7a 100644 --- a/lib/widget/album_browser.dart +++ b/lib/widget/album_browser.dart @@ -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/list_extension.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/session_storage.dart'; import 'package:nc_photos/share_handler.dart'; @@ -248,14 +247,13 @@ class _AlbumBrowserState extends State Widget _buildSelectionAppBar(BuildContext context) { return buildSelectionAppBar(context, [ - if (platform_k.isAndroid) - IconButton( - icon: const Icon(Icons.share), - tooltip: L10n.global().shareTooltip, - onPressed: () { - _onSelectionSharePressed(context); - }, - ), + IconButton( + icon: const Icon(Icons.share), + tooltip: L10n.global().shareTooltip, + onPressed: () { + _onSelectionSharePressed(context); + }, + ), IconButton( icon: const Icon(Icons.remove), tooltip: L10n.global().removeSelectedFromAlbumTooltip, @@ -336,7 +334,6 @@ class _AlbumBrowserState extends State } void _onSelectionSharePressed(BuildContext context) { - assert(platform_k.isAndroid); final selected = selectedListItems .whereType<_FileListItem>() .map((e) => e.file) diff --git a/lib/widget/dynamic_album_browser.dart b/lib/widget/dynamic_album_browser.dart index 82e20bbd..de7f8b0d 100644 --- a/lib/widget/dynamic_album_browser.dart +++ b/lib/widget/dynamic_album_browser.dart @@ -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/k.dart' as k; 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/share_handler.dart'; import 'package:nc_photos/snack_bar_manager.dart'; @@ -258,14 +257,13 @@ class _DynamicAlbumBrowserState extends State Widget _buildSelectionAppBar(BuildContext context) { return buildSelectionAppBar(context, [ - if (platform_k.isAndroid) - IconButton( - icon: const Icon(Icons.share), - tooltip: L10n.global().shareTooltip, - onPressed: () { - _onSelectionSharePressed(context); - }, - ), + IconButton( + icon: const Icon(Icons.share), + tooltip: L10n.global().shareTooltip, + onPressed: () { + _onSelectionSharePressed(context); + }, + ), PopupMenuButton<_SelectionMenuOption>( tooltip: MaterialLocalizations.of(context).moreButtonTooltip, itemBuilder: (context) => [ @@ -389,7 +387,6 @@ class _DynamicAlbumBrowserState extends State } void _onSelectionSharePressed(BuildContext context) { - assert(platform_k.isAndroid); final selected = selectedListItems .whereType<_FileListItem>() .map((e) => e.file) diff --git a/lib/widget/home_photos.dart b/lib/widget/home_photos.dart index 462c09ed..3642575c 100644 --- a/lib/widget/home_photos.dart +++ b/lib/widget/home_photos.dart @@ -26,7 +26,6 @@ import 'package:nc_photos/iterable_extension.dart'; import 'package:nc_photos/k.dart' as k; import 'package:nc_photos/metadata_task_manager.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/primitive.dart'; import 'package:nc_photos/share_handler.dart'; @@ -186,14 +185,13 @@ class _HomePhotosState extends State }); }, actions: [ - if (platform_k.isAndroid) - IconButton( - icon: const Icon(Icons.share), - tooltip: L10n.global().shareTooltip, - onPressed: () { - _onSelectionSharePressed(context); - }, - ), + IconButton( + icon: const Icon(Icons.share), + tooltip: L10n.global().shareTooltip, + onPressed: () { + _onSelectionSharePressed(context); + }, + ), IconButton( icon: const Icon(Icons.playlist_add), tooltip: L10n.global().addToAlbumTooltip, @@ -387,7 +385,6 @@ class _HomePhotosState extends State } void _onSelectionSharePressed(BuildContext context) { - assert(platform_k.isAndroid); final selected = selectedListItems .whereType<_FileListItem>() .map((e) => e.file) diff --git a/lib/widget/person_browser.dart b/lib/widget/person_browser.dart index 7f5c2383..9d384d73 100644 --- a/lib/widget/person_browser.dart +++ b/lib/widget/person_browser.dart @@ -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/k.dart' as k; 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/share_handler.dart'; import 'package:nc_photos/snack_bar_manager.dart'; @@ -262,14 +261,13 @@ class _PersonBrowserState extends State }); }, actions: [ - if (platform_k.isAndroid) - IconButton( - icon: const Icon(Icons.share), - tooltip: L10n.global().shareTooltip, - onPressed: () { - _onSelectionSharePressed(context); - }, - ), + IconButton( + icon: const Icon(Icons.share), + tooltip: L10n.global().shareTooltip, + onPressed: () { + _onSelectionSharePressed(context); + }, + ), IconButton( icon: const Icon(Icons.playlist_add), tooltip: L10n.global().addToAlbumTooltip, @@ -339,7 +337,6 @@ class _PersonBrowserState extends State } void _onSelectionSharePressed(BuildContext context) { - assert(platform_k.isAndroid); final selected = selectedListItems.whereType<_ListItem>().map((e) => e.file).toList(); ShareHandler( diff --git a/lib/widget/share_method_dialog.dart b/lib/widget/share_method_dialog.dart index 986850ad..0413e88c 100644 --- a/lib/widget/share_method_dialog.dart +++ b/lib/widget/share_method_dialog.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:nc_photos/app_localizations.dart'; +import 'package:nc_photos/platform/k.dart' as platform_k; enum ShareMethod { file, @@ -18,15 +19,16 @@ class ShareMethodDialog extends StatelessWidget { return SimpleDialog( title: Text(L10n.global().shareMethodDialogTitle), children: [ - SimpleDialogOption( - child: ListTile( - title: Text(L10n.global().shareMethodFileTitle), - subtitle: Text(L10n.global().shareMethodFileDescription), + if (platform_k.isAndroid) + SimpleDialogOption( + child: ListTile( + title: Text(L10n.global().shareMethodFileTitle), + subtitle: Text(L10n.global().shareMethodFileDescription), + ), + onPressed: () { + Navigator.of(context).pop(ShareMethod.file); + }, ), - onPressed: () { - Navigator.of(context).pop(ShareMethod.file); - }, - ), SimpleDialogOption( child: ListTile( title: Text(L10n.global().shareMethodPublicLinkTitle), diff --git a/lib/widget/viewer.dart b/lib/widget/viewer.dart index 42b0b499..7a1ee29a 100644 --- a/lib/widget/viewer.dart +++ b/lib/widget/viewer.dart @@ -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/exception_util.dart' as exception_util; 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/share_handler.dart'; import 'package:nc_photos/snack_bar_manager.dart'; @@ -183,15 +182,14 @@ class _ViewerState extends State : const Duration(milliseconds: 1), child: ViewerBottomAppBar( children: [ - if (platform_k.isAndroid) - IconButton( - icon: Icon( - Icons.share_outlined, - color: Colors.white.withOpacity(.87), - ), - tooltip: L10n.global().shareTooltip, - onPressed: () => _onSharePressed(context), + IconButton( + icon: Icon( + Icons.share_outlined, + color: Colors.white.withOpacity(.87), ), + tooltip: L10n.global().shareTooltip, + onPressed: () => _onSharePressed(context), + ), IconButton( icon: Icon( Icons.download_outlined, @@ -433,7 +431,6 @@ class _ViewerState extends State } void _onSharePressed(BuildContext context) { - assert(platform_k.isAndroid); final file = widget.streamFiles[_viewerController.currentPage]; ShareHandler( context: context,