diff --git a/lib/config_provider.dart b/lib/config_provider.dart index 4ad0615..f472390 100644 --- a/lib/config_provider.dart +++ b/lib/config_provider.dart @@ -54,6 +54,7 @@ class ConfigKey { static const String showflashback1WeekAgo = "showflashback1WeekAgo"; static const String showflashbackGoodDay = "showflashbackGoodDay"; static const String showflashbackRandomDay = "showflashbackRandomDay"; + static const String hideImagesInGallery = "hideImagesInGallery"; // Secure Configuration Values static const String requirePassword = "requirePassword"; static const String biometricUnlock = "biometricUnlock"; @@ -118,6 +119,7 @@ class ConfigProvider with ChangeNotifier { ConfigKey.showflashback1WeekAgo: true, ConfigKey.showflashbackGoodDay: true, ConfigKey.showflashbackRandomDay: true, + ConfigKey.hideImagesInGallery: false, }; final Map _secureConfig = { diff --git a/lib/l10n/generated/app_localizations.dart b/lib/l10n/generated/app_localizations.dart index 853fe96..da04b83 100644 --- a/lib/l10n/generated/app_localizations.dart +++ b/lib/l10n/generated/app_localizations.dart @@ -482,6 +482,12 @@ abstract class AppLocalizations { /// **'Gallery View Layout'** String get settingsGalleryViewLayout; + /// No description provided for @settingsHideImagesInGallery. + /// + /// In en, this message translates to: + /// **'Hide Images In Gallery'** + String get settingsHideImagesInGallery; + /// No description provided for @viewLayoutList. /// /// In en, this message translates to: diff --git a/lib/l10n/generated/app_localizations_ar.dart b/lib/l10n/generated/app_localizations_ar.dart index 8d92a1e..06fbd55 100644 --- a/lib/l10n/generated/app_localizations_ar.dart +++ b/lib/l10n/generated/app_localizations_ar.dart @@ -252,6 +252,9 @@ class AppLocalizationsAr extends AppLocalizations { @override String get settingsGalleryViewLayout => 'طريقة عرض الصور'; + @override + String get settingsHideImagesInGallery => 'Hide Images In Gallery'; + @override String get viewLayoutList => 'قائمة'; diff --git a/lib/l10n/generated/app_localizations_cs.dart b/lib/l10n/generated/app_localizations_cs.dart index 44d469c..72ee537 100644 --- a/lib/l10n/generated/app_localizations_cs.dart +++ b/lib/l10n/generated/app_localizations_cs.dart @@ -247,6 +247,9 @@ class AppLocalizationsCs extends AppLocalizations { @override String get settingsGalleryViewLayout => 'Rozložení zobrazení galerie'; + @override + String get settingsHideImagesInGallery => 'Hide Images In Gallery'; + @override String get viewLayoutList => 'Seznam'; diff --git a/lib/l10n/generated/app_localizations_da.dart b/lib/l10n/generated/app_localizations_da.dart index 6140889..15043d8 100644 --- a/lib/l10n/generated/app_localizations_da.dart +++ b/lib/l10n/generated/app_localizations_da.dart @@ -245,6 +245,9 @@ class AppLocalizationsDa extends AppLocalizations { @override String get settingsGalleryViewLayout => 'Gallery View Layout'; + @override + String get settingsHideImagesInGallery => 'Hide Images In Gallery'; + @override String get viewLayoutList => 'List'; diff --git a/lib/l10n/generated/app_localizations_de.dart b/lib/l10n/generated/app_localizations_de.dart index 8428965..7c67563 100644 --- a/lib/l10n/generated/app_localizations_de.dart +++ b/lib/l10n/generated/app_localizations_de.dart @@ -247,6 +247,9 @@ class AppLocalizationsDe extends AppLocalizations { @override String get settingsGalleryViewLayout => 'Galerieansichts-Layout'; + @override + String get settingsHideImagesInGallery => 'Hide Images In Gallery'; + @override String get viewLayoutList => 'Liste'; diff --git a/lib/l10n/generated/app_localizations_en.dart b/lib/l10n/generated/app_localizations_en.dart index 74965ce..35af669 100644 --- a/lib/l10n/generated/app_localizations_en.dart +++ b/lib/l10n/generated/app_localizations_en.dart @@ -247,6 +247,9 @@ class AppLocalizationsEn extends AppLocalizations { @override String get settingsGalleryViewLayout => 'Gallery View Layout'; + @override + String get settingsHideImagesInGallery => 'Hide Images In Gallery'; + @override String get viewLayoutList => 'List'; diff --git a/lib/l10n/generated/app_localizations_es.dart b/lib/l10n/generated/app_localizations_es.dart index 6f7afa1..002ea4b 100644 --- a/lib/l10n/generated/app_localizations_es.dart +++ b/lib/l10n/generated/app_localizations_es.dart @@ -248,6 +248,9 @@ class AppLocalizationsEs extends AppLocalizations { @override String get settingsGalleryViewLayout => 'Vista de Galería'; + @override + String get settingsHideImagesInGallery => 'Hide Images In Gallery'; + @override String get viewLayoutList => 'Lista'; diff --git a/lib/l10n/generated/app_localizations_fa.dart b/lib/l10n/generated/app_localizations_fa.dart index 3b93a1c..a34e27b 100644 --- a/lib/l10n/generated/app_localizations_fa.dart +++ b/lib/l10n/generated/app_localizations_fa.dart @@ -246,6 +246,9 @@ class AppLocalizationsFa extends AppLocalizations { @override String get settingsGalleryViewLayout => 'Gallery View Layout'; + @override + String get settingsHideImagesInGallery => 'Hide Images In Gallery'; + @override String get viewLayoutList => 'فهرست'; diff --git a/lib/l10n/generated/app_localizations_fi.dart b/lib/l10n/generated/app_localizations_fi.dart index 00384e0..76282b4 100644 --- a/lib/l10n/generated/app_localizations_fi.dart +++ b/lib/l10n/generated/app_localizations_fi.dart @@ -248,6 +248,9 @@ class AppLocalizationsFi extends AppLocalizations { @override String get settingsGalleryViewLayout => 'Gallery View Layout'; + @override + String get settingsHideImagesInGallery => 'Hide Images In Gallery'; + @override String get viewLayoutList => 'List'; diff --git a/lib/l10n/generated/app_localizations_fr.dart b/lib/l10n/generated/app_localizations_fr.dart index 2a9bc54..4414e0d 100644 --- a/lib/l10n/generated/app_localizations_fr.dart +++ b/lib/l10n/generated/app_localizations_fr.dart @@ -251,6 +251,9 @@ class AppLocalizationsFr extends AppLocalizations { @override String get settingsGalleryViewLayout => 'Disposition de la gallerie'; + @override + String get settingsHideImagesInGallery => 'Hide Images In Gallery'; + @override String get viewLayoutList => 'Liste'; diff --git a/lib/l10n/generated/app_localizations_he.dart b/lib/l10n/generated/app_localizations_he.dart index cf41d94..947f51b 100644 --- a/lib/l10n/generated/app_localizations_he.dart +++ b/lib/l10n/generated/app_localizations_he.dart @@ -245,6 +245,9 @@ class AppLocalizationsHe extends AppLocalizations { @override String get settingsGalleryViewLayout => 'Gallery View Layout'; + @override + String get settingsHideImagesInGallery => 'Hide Images In Gallery'; + @override String get viewLayoutList => 'List'; diff --git a/lib/l10n/generated/app_localizations_id.dart b/lib/l10n/generated/app_localizations_id.dart index 9eb97e4..d291fcb 100644 --- a/lib/l10n/generated/app_localizations_id.dart +++ b/lib/l10n/generated/app_localizations_id.dart @@ -247,6 +247,9 @@ class AppLocalizationsId extends AppLocalizations { @override String get settingsGalleryViewLayout => 'Gallery View Layout'; + @override + String get settingsHideImagesInGallery => 'Hide Images In Gallery'; + @override String get viewLayoutList => 'List'; diff --git a/lib/l10n/generated/app_localizations_it.dart b/lib/l10n/generated/app_localizations_it.dart index 6517953..841b654 100644 --- a/lib/l10n/generated/app_localizations_it.dart +++ b/lib/l10n/generated/app_localizations_it.dart @@ -251,6 +251,9 @@ class AppLocalizationsIt extends AppLocalizations { @override String get settingsGalleryViewLayout => 'Layout visualizzazione Galleria'; + @override + String get settingsHideImagesInGallery => 'Hide Images In Gallery'; + @override String get viewLayoutList => 'Elenco'; diff --git a/lib/l10n/generated/app_localizations_ja.dart b/lib/l10n/generated/app_localizations_ja.dart index 1d4c142..0dc61ea 100644 --- a/lib/l10n/generated/app_localizations_ja.dart +++ b/lib/l10n/generated/app_localizations_ja.dart @@ -245,6 +245,9 @@ class AppLocalizationsJa extends AppLocalizations { @override String get settingsGalleryViewLayout => 'Gallery View Layout'; + @override + String get settingsHideImagesInGallery => 'Hide Images In Gallery'; + @override String get viewLayoutList => 'リスト'; diff --git a/lib/l10n/generated/app_localizations_nl.dart b/lib/l10n/generated/app_localizations_nl.dart index 3b09ca4..3881731 100644 --- a/lib/l10n/generated/app_localizations_nl.dart +++ b/lib/l10n/generated/app_localizations_nl.dart @@ -250,6 +250,9 @@ class AppLocalizationsNl extends AppLocalizations { @override String get settingsGalleryViewLayout => 'Gallery View Layout'; + @override + String get settingsHideImagesInGallery => 'Hide Images In Gallery'; + @override String get viewLayoutList => 'List'; diff --git a/lib/l10n/generated/app_localizations_oc.dart b/lib/l10n/generated/app_localizations_oc.dart index 24190a5..39ee559 100644 --- a/lib/l10n/generated/app_localizations_oc.dart +++ b/lib/l10n/generated/app_localizations_oc.dart @@ -248,6 +248,9 @@ class AppLocalizationsOc extends AppLocalizations { @override String get settingsGalleryViewLayout => 'Gallery View Layout'; + @override + String get settingsHideImagesInGallery => 'Hide Images In Gallery'; + @override String get viewLayoutList => 'List'; diff --git a/lib/l10n/generated/app_localizations_pl.dart b/lib/l10n/generated/app_localizations_pl.dart index f2683fb..cca762c 100644 --- a/lib/l10n/generated/app_localizations_pl.dart +++ b/lib/l10n/generated/app_localizations_pl.dart @@ -247,6 +247,9 @@ class AppLocalizationsPl extends AppLocalizations { @override String get settingsGalleryViewLayout => 'Widok galerii'; + @override + String get settingsHideImagesInGallery => 'Hide Images In Gallery'; + @override String get viewLayoutList => 'Lista'; diff --git a/lib/l10n/generated/app_localizations_pt.dart b/lib/l10n/generated/app_localizations_pt.dart index 023f5f2..292bb40 100644 --- a/lib/l10n/generated/app_localizations_pt.dart +++ b/lib/l10n/generated/app_localizations_pt.dart @@ -248,6 +248,9 @@ class AppLocalizationsPt extends AppLocalizations { @override String get settingsGalleryViewLayout => 'Gallery View Layout'; + @override + String get settingsHideImagesInGallery => 'Hide Images In Gallery'; + @override String get viewLayoutList => 'List'; diff --git a/lib/l10n/generated/app_localizations_ru.dart b/lib/l10n/generated/app_localizations_ru.dart index 271d511..94c9cc6 100644 --- a/lib/l10n/generated/app_localizations_ru.dart +++ b/lib/l10n/generated/app_localizations_ru.dart @@ -253,6 +253,9 @@ class AppLocalizationsRu extends AppLocalizations { @override String get settingsGalleryViewLayout => 'Отображение галереи'; + @override + String get settingsHideImagesInGallery => 'Hide Images In Gallery'; + @override String get viewLayoutList => 'Список'; diff --git a/lib/l10n/generated/app_localizations_tr.dart b/lib/l10n/generated/app_localizations_tr.dart index 35e3eec..e645fa2 100644 --- a/lib/l10n/generated/app_localizations_tr.dart +++ b/lib/l10n/generated/app_localizations_tr.dart @@ -247,6 +247,9 @@ class AppLocalizationsTr extends AppLocalizations { @override String get settingsGalleryViewLayout => 'Gallery View Layout'; + @override + String get settingsHideImagesInGallery => 'Hide Images In Gallery'; + @override String get viewLayoutList => 'List'; diff --git a/lib/l10n/generated/app_localizations_uk.dart b/lib/l10n/generated/app_localizations_uk.dart index 990c53f..27b753d 100644 --- a/lib/l10n/generated/app_localizations_uk.dart +++ b/lib/l10n/generated/app_localizations_uk.dart @@ -253,6 +253,9 @@ class AppLocalizationsUk extends AppLocalizations { @override String get settingsGalleryViewLayout => 'Макет перегляду галереї'; + @override + String get settingsHideImagesInGallery => 'Hide Images In Gallery'; + @override String get viewLayoutList => 'Список'; diff --git a/lib/l10n/generated/app_localizations_vi.dart b/lib/l10n/generated/app_localizations_vi.dart index 857e674..bf12b96 100644 --- a/lib/l10n/generated/app_localizations_vi.dart +++ b/lib/l10n/generated/app_localizations_vi.dart @@ -248,6 +248,9 @@ class AppLocalizationsVi extends AppLocalizations { @override String get settingsGalleryViewLayout => 'Gallery View Layout'; + @override + String get settingsHideImagesInGallery => 'Hide Images In Gallery'; + @override String get viewLayoutList => 'List'; diff --git a/lib/l10n/generated/app_localizations_zh.dart b/lib/l10n/generated/app_localizations_zh.dart index 6342e69..24cfd2b 100644 --- a/lib/l10n/generated/app_localizations_zh.dart +++ b/lib/l10n/generated/app_localizations_zh.dart @@ -245,6 +245,9 @@ class AppLocalizationsZh extends AppLocalizations { @override String get settingsGalleryViewLayout => '迹忆页视图布局'; + @override + String get settingsHideImagesInGallery => 'Hide Images In Gallery'; + @override String get viewLayoutList => '列表'; diff --git a/lib/l10n/intl_en.arb b/lib/l10n/intl_en.arb index e8f7728..9859b49 100644 --- a/lib/l10n/intl_en.arb +++ b/lib/l10n/intl_en.arb @@ -113,6 +113,8 @@ "@settingsFlashbacksViewLayout": {}, "settingsGalleryViewLayout": "Gallery View Layout", "@settingsGalleryViewLayout": {}, + "settingsHideImagesInGallery": "Hide Images In Gallery", + "@settingsHideImagesInGallery": {}, "viewLayoutList": "List", "@viewLayoutList": {}, "viewLayoutGrid": "Grid", diff --git a/lib/pages/gallery_page.dart b/lib/pages/gallery_page.dart index be1d4ef..fe5d70f 100644 --- a/lib/pages/gallery_page.dart +++ b/lib/pages/gallery_page.dart @@ -251,6 +251,7 @@ class _GalleryPageState extends State Widget buildEntries( BuildContext context, bool listView, List entries) { final entryImagesProvider = Provider.of(context); + final configProvider = Provider.of(context); return entries.isEmpty ? Center( child: Text( @@ -282,10 +283,16 @@ class _GalleryPageState extends State child: listView ? LargeEntryCardWidget( entry: entry, - images: entryImagesProvider.getForEntry(entry)) + images: entryImagesProvider.getForEntry(entry), + hideImage: + configProvider.get(ConfigKey.hideImagesInGallery), + ) : EntryCardWidget( entry: entry, - images: entryImagesProvider.getForEntry(entry)), + images: entryImagesProvider.getForEntry(entry), + hideImage: + configProvider.get(ConfigKey.hideImagesInGallery), + ), ); }, ); diff --git a/lib/pages/settings/appearance_settings.dart b/lib/pages/settings/appearance_settings.dart index df89646..54081a7 100644 --- a/lib/pages/settings/appearance_settings.dart +++ b/lib/pages/settings/appearance_settings.dart @@ -276,8 +276,14 @@ class _AppearanceSettingsPageState extends State { } }), ), + SettingsToggle( + title: AppLocalizations.of(context)!.settingsHideImagesInGallery, + settingsKey: ConfigKey.hideImagesInGallery, + onChanged: (value) { + configProvider.set(ConfigKey.hideImagesInGallery, value); + }), Padding( - padding: const EdgeInsets.only(top: 16.0, left: 16.0), + padding: const EdgeInsets.only(top: 16.0, left: 16.0, right: 16.0), child: Text( AppLocalizations.of(context)!.settingsChangeMoodIcons, style: TextStyle(fontSize: 16, fontWeight: FontWeight.w500), diff --git a/lib/widgets/entry_card_widget.dart b/lib/widgets/entry_card_widget.dart index 1ac59e3..cadad3c 100644 --- a/lib/widgets/entry_card_widget.dart +++ b/lib/widgets/entry_card_widget.dart @@ -9,16 +9,17 @@ import 'package:markdown_widget/markdown_widget.dart'; import 'local_image_loader.dart'; class EntryCardWidget extends StatelessWidget { - const EntryCardWidget({ - super.key, - this.title, - required this.entry, - required this.images, - }); + const EntryCardWidget( + {super.key, + this.title, + required this.entry, + required this.images, + this.hideImage = false}); final Entry entry; final String? title; final List images; + final bool hideImage; @override Widget build(BuildContext context) { @@ -40,7 +41,7 @@ class EntryCardWidget extends StatelessWidget { alignment: Alignment.topRight, clipBehavior: Clip.antiAlias, children: [ - (images.isNotEmpty) + (images.isNotEmpty && !hideImage) ? LocalImageLoader( imagePath: images.first.imgPath, ) @@ -69,7 +70,7 @@ class EntryCardWidget extends StatelessWidget { color: theme.disabledColor, fontSize: 16), ), ), - if (images.length > 1) + if (images.length > 1 && !hideImage) Positioned( top: 0, right: 0, diff --git a/lib/widgets/large_entry_card_widget.dart b/lib/widgets/large_entry_card_widget.dart index 7cd8a73..54a3e73 100644 --- a/lib/widgets/large_entry_card_widget.dart +++ b/lib/widgets/large_entry_card_widget.dart @@ -9,16 +9,17 @@ import 'package:markdown_widget/markdown_widget.dart'; import 'local_image_loader.dart'; class LargeEntryCardWidget extends StatelessWidget { - const LargeEntryCardWidget({ - super.key, - this.title, - required this.entry, - required this.images, - }); + const LargeEntryCardWidget( + {super.key, + this.title, + required this.entry, + required this.images, + this.hideImage = false}); final Entry entry; final List images; final String? title; + final bool hideImage; @override Widget build(BuildContext context) { @@ -33,7 +34,7 @@ class LargeEntryCardWidget extends StatelessWidget { mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ - if (images.isNotEmpty) + if (images.isNotEmpty && !hideImage) Expanded( child: Stack( fit: StackFit.expand,