From 24f45ce9bd005bbfd268d2fb6ac6cfd297800591 Mon Sep 17 00:00:00 2001 From: otsmr Date: Mon, 29 Dec 2025 23:24:14 +0100 Subject: [PATCH] move storing of the images into the mediafile service --- .../mediafiles/mediafile.service.dart | 9 ++++++ .../save_to_gallery.dart | 32 +------------------ lib/src/views/chats/media_viewer.view.dart | 12 ------- 3 files changed, 10 insertions(+), 43 deletions(-) diff --git a/lib/src/services/mediafiles/mediafile.service.dart b/lib/src/services/mediafiles/mediafile.service.dart index 1288ea6..632d67a 100644 --- a/lib/src/services/mediafiles/mediafile.service.dart +++ b/lib/src/services/mediafiles/mediafile.service.dart @@ -218,6 +218,15 @@ class MediaFileService { } if (tempPath.existsSync()) { await tempPath.copy(storedPath.path); + if (gUser.storeMediaFilesInGallery) { + if (mediaFile.type == MediaType.video) { + await saveVideoToGallery(storedPath.path); + } else { + await saveImageToGallery( + storedPath.readAsBytesSync(), + ); + } + } } else { Log.error( 'Could not store image neither as ${tempPath.path} does not exists.', diff --git a/lib/src/views/camera/camera_preview_components/save_to_gallery.dart b/lib/src/views/camera/camera_preview_components/save_to_gallery.dart index 89071d8..2b20fae 100644 --- a/lib/src/views/camera/camera_preview_components/save_to_gallery.dart +++ b/lib/src/views/camera/camera_preview_components/save_to_gallery.dart @@ -2,10 +2,7 @@ import 'dart:async'; import 'dart:typed_data'; import 'package:flutter/material.dart'; import 'package:font_awesome_flutter/font_awesome_flutter.dart'; -import 'package:twonly/globals.dart'; -import 'package:twonly/src/database/tables/mediafiles.table.dart'; import 'package:twonly/src/services/mediafiles/mediafile.service.dart'; -import 'package:twonly/src/utils/log.dart'; import 'package:twonly/src/utils/misc.dart'; class SaveToGalleryButton extends StatefulWidget { @@ -48,37 +45,10 @@ class SaveToGalleryButtonState extends State { }); await widget.storeImageAsOriginal(); - - String? res; - - final storedMediaPath = widget.mediaService.storedPath; - await widget.mediaService.storeMediaFile(); - if (gUser.storeMediaFilesInGallery) { - if (widget.mediaService.mediaFile.type == MediaType.video) { - res = await saveVideoToGallery(storedMediaPath.path); - } else { - res = await saveImageToGallery( - storedMediaPath.readAsBytesSync(), - ); - } - } - - if (res == null) { - setState(() { - _imageSaved = true; - }); - } else if (mounted && context.mounted) { - Log.error('Could not store media file in the gallery.'); - ScaffoldMessenger.of(context).showSnackBar( - SnackBar( - content: Text(res), - duration: const Duration(seconds: 3), - ), - ); - } setState(() { + _imageSaved = true; _imageSaving = false; }); }, diff --git a/lib/src/views/chats/media_viewer.view.dart b/lib/src/views/chats/media_viewer.view.dart index 5396397..cb2afac 100644 --- a/lib/src/views/chats/media_viewer.view.dart +++ b/lib/src/views/chats/media_viewer.view.dart @@ -357,18 +357,6 @@ class _MediaViewerViewState extends State { ); setState(() { imageSaved = true; - }); - - if (gUser.storeMediaFilesInGallery) { - if (currentMedia!.mediaFile.type == MediaType.video) { - await saveVideoToGallery(currentMedia!.storedPath.path); - } else if (currentMedia!.mediaFile.type == MediaType.image || - currentMedia!.mediaFile.type == MediaType.gif) { - final imageBytes = await currentMedia!.storedPath.readAsBytes(); - await saveImageToGallery(imageBytes); - } - } - setState(() { imageSaving = false; }); }