From b20b599ce4c3a049579801f9ec199bbe4e8ae8bd Mon Sep 17 00:00:00 2001 From: krille-chan Date: Sun, 5 May 2024 14:17:12 +0200 Subject: [PATCH] chore: Follow up search --- assets/l10n/intl_en.arb | 2 +- lib/pages/chat/events/message_content.dart | 5 +--- lib/pages/chat/events/video_player.dart | 28 +++++++++++-------- .../chat_search/chat_search_images_tab.dart | 20 +++++++------ lib/pages/chat_search/chat_search_view.dart | 2 +- 5 files changed, 32 insertions(+), 25 deletions(-) diff --git a/assets/l10n/intl_en.arb b/assets/l10n/intl_en.arb index 09d28fe2d..cad529e89 100644 --- a/assets/l10n/intl_en.arb +++ b/assets/l10n/intl_en.arb @@ -2540,7 +2540,7 @@ "chat": {} } }, - "photos": "Photos", + "gallery": "Gallery", "files": "Files", "databaseBuildErrorBody": "Unable to build the SQlite database. The app tries to use the legacy database for now. Please report this error to the developers at {url}. The error message is: {error}", "@databaseBuildErrorBody": { diff --git a/lib/pages/chat/events/message_content.dart b/lib/pages/chat/events/message_content.dart index 9d8f6003c..24c768f2d 100644 --- a/lib/pages/chat/events/message_content.dart +++ b/lib/pages/chat/events/message_content.dart @@ -155,10 +155,7 @@ class MessageContent extends StatelessWidget { } return MessageDownloadContent(event, textColor); case MessageTypes.Video: - if (PlatformInfos.isMobile || PlatformInfos.isWeb) { - return EventVideoPlayer(event); - } - return MessageDownloadContent(event, textColor); + return EventVideoPlayer(event); case MessageTypes.File: return MessageDownloadContent(event, textColor); diff --git a/lib/pages/chat/events/video_player.dart b/lib/pages/chat/events/video_player.dart index 66e50b783..2cdbbc84c 100644 --- a/lib/pages/chat/events/video_player.dart +++ b/lib/pages/chat/events/video_player.dart @@ -10,9 +10,11 @@ import 'package:path_provider/path_provider.dart'; import 'package:universal_html/html.dart' as html; import 'package:video_player/video_player.dart'; +import 'package:fluffychat/config/app_config.dart'; import 'package:fluffychat/pages/chat/events/image_bubble.dart'; import 'package:fluffychat/utils/localized_exception_extension.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/event_extension.dart'; +import 'package:fluffychat/utils/platform_infos.dart'; import 'package:fluffychat/widgets/blur_hash.dart'; import '../../../utils/error_reporter.dart'; @@ -31,6 +33,10 @@ class EventVideoPlayerState extends State { File? _tmpFile; void _downloadAction() async { + if (PlatformInfos.isDesktop) { + widget.event.saveFile(context); + return; + } setState(() => _isDownloading = true); try { final videoFile = await widget.event.downloadAndDecryptAttachment(); @@ -98,6 +104,7 @@ class EventVideoPlayerState extends State { final chewieManager = _chewieManager; return Material( color: Colors.black, + borderRadius: BorderRadius.circular(AppConfig.borderRadius), child: SizedBox( height: 300, child: chewieManager != null @@ -114,9 +121,10 @@ class EventVideoPlayerState extends State { else BlurHash(blurhash: blurHash, width: 300, height: 300), Center( - child: OutlinedButton.icon( - style: OutlinedButton.styleFrom( - backgroundColor: Theme.of(context).colorScheme.surface, + child: IconButton( + style: IconButton.styleFrom( + backgroundColor: + Theme.of(context).colorScheme.background, ), icon: _isDownloading ? const SizedBox( @@ -126,14 +134,12 @@ class EventVideoPlayerState extends State { strokeWidth: 2, ), ) - : const Icon(Icons.download_outlined), - label: Text( - _isDownloading - ? L10n.of(context)!.loadingPleaseWait - : L10n.of(context)!.videoWithSize( - widget.event.sizeString ?? '?MB', - ), - ), + : const Icon(Icons.play_circle_outlined), + tooltip: _isDownloading + ? L10n.of(context)!.loadingPleaseWait + : L10n.of(context)!.videoWithSize( + widget.event.sizeString ?? '?MB', + ), onPressed: _isDownloading ? null : _downloadAction, ), ), diff --git a/lib/pages/chat_search/chat_search_images_tab.dart b/lib/pages/chat_search/chat_search_images_tab.dart index 9c99ade8e..e48e5c464 100644 --- a/lib/pages/chat_search/chat_search_images_tab.dart +++ b/lib/pages/chat_search/chat_search_images_tab.dart @@ -5,6 +5,7 @@ import 'package:intl/intl.dart'; import 'package:matrix/matrix.dart'; import 'package:fluffychat/pages/chat/events/image_bubble.dart'; +import 'package:fluffychat/pages/chat/events/video_player.dart'; import 'package:fluffychat/utils/matrix_sdk_extensions/matrix_locals.dart'; class ChatSearchImagesTab extends StatelessWidget { @@ -146,14 +147,17 @@ class ChatSearchImagesTab extends StatelessWidget { crossAxisSpacing: padding, padding: const EdgeInsets.all(padding), crossAxisCount: 3, - children: monthEvents - .map( - (event) => ImageBubble( - event, - fit: BoxFit.cover, - ), - ) - .toList(), + children: monthEvents.map( + (event) { + if (event.messageType == MessageTypes.Video) { + return EventVideoPlayer(event); + } + return ImageBubble( + event, + fit: BoxFit.cover, + ); + }, + ).toList(), ), ], ); diff --git a/lib/pages/chat_search/chat_search_view.dart b/lib/pages/chat_search/chat_search_view.dart index dccdf3c66..e08f25a2b 100644 --- a/lib/pages/chat_search/chat_search_view.dart +++ b/lib/pages/chat_search/chat_search_view.dart @@ -66,7 +66,7 @@ class ChatSearchView extends StatelessWidget { controller: controller.tabController, tabs: [ Tab(child: Text(L10n.of(context)!.messages)), - Tab(child: Text(L10n.of(context)!.photos)), + Tab(child: Text(L10n.of(context)!.gallery)), Tab(child: Text(L10n.of(context)!.files)), ], ),