diff --git a/lib/src/localization/generated/app_localizations.dart b/lib/src/localization/generated/app_localizations.dart index f27f2307..2c1c777b 100644 --- a/lib/src/localization/generated/app_localizations.dart +++ b/lib/src/localization/generated/app_localizations.dart @@ -4273,6 +4273,18 @@ abstract class AppLocalizations { /// In en, this message translates to: /// **'All memories are up to date.'** String get settingsStorageSyncUpToDate; + + /// No description provided for @restoreLostFlames. + /// + /// In en, this message translates to: + /// **'Restore your {count} lost flames'** + String restoreLostFlames(int count); + + /// No description provided for @settingsShowRestoreFlameTitle. + /// + /// In en, this message translates to: + /// **'Show flame restore warning'** + String get settingsShowRestoreFlameTitle; } class _AppLocalizationsDelegate diff --git a/lib/src/localization/generated/app_localizations_de.dart b/lib/src/localization/generated/app_localizations_de.dart index c558af8e..3503fd9a 100644 --- a/lib/src/localization/generated/app_localizations_de.dart +++ b/lib/src/localization/generated/app_localizations_de.dart @@ -2475,4 +2475,13 @@ class AppLocalizationsDe extends AppLocalizations { @override String get settingsStorageSyncUpToDate => 'Alle Memories sind auf dem neuesten Stand.'; + + @override + String restoreLostFlames(int count) { + return 'Stelle deine $count verlorenen Flammen wieder her'; + } + + @override + String get settingsShowRestoreFlameTitle => + 'Hinweis zur Flammen-Wiederherstellung anzeigen'; } diff --git a/lib/src/localization/generated/app_localizations_en.dart b/lib/src/localization/generated/app_localizations_en.dart index 08afd8c0..5e63baae 100644 --- a/lib/src/localization/generated/app_localizations_en.dart +++ b/lib/src/localization/generated/app_localizations_en.dart @@ -2453,4 +2453,12 @@ class AppLocalizationsEn extends AppLocalizations { @override String get settingsStorageSyncUpToDate => 'All memories are up to date.'; + + @override + String restoreLostFlames(int count) { + return 'Restore your $count lost flames'; + } + + @override + String get settingsShowRestoreFlameTitle => 'Show flame restore warning'; } diff --git a/lib/src/localization/translations b/lib/src/localization/translations index 34c835db..c5f554b3 160000 --- a/lib/src/localization/translations +++ b/lib/src/localization/translations @@ -1 +1 @@ -Subproject commit 34c835db2de08af962b39fb79ec11341b8847926 +Subproject commit c5f554b36deab290c091ae46b3af1255f74c6b98 diff --git a/lib/src/model/json/userdata.model.dart b/lib/src/model/json/userdata.model.dart index 8c3e3fe0..e451447a 100644 --- a/lib/src/model/json/userdata.model.dart +++ b/lib/src/model/json/userdata.model.dart @@ -93,6 +93,9 @@ class UserData { @JsonKey(defaultValue: true) bool typingIndicators = true; + @JsonKey(defaultValue: true) + bool showRestoreFlame = true; + String? myBestFriendGroupId; DateTime? signalLastSignedPreKeyUpdated; diff --git a/lib/src/model/json/userdata.model.g.dart b/lib/src/model/json/userdata.model.g.dart index cf2b4b9f..ccb08cc9 100644 --- a/lib/src/model/json/userdata.model.g.dart +++ b/lib/src/model/json/userdata.model.g.dart @@ -60,6 +60,7 @@ UserData _$UserDataFromJson(Map json) => ..autoStoreAllSendUnlimitedMediaFiles = json['autoStoreAllSendUnlimitedMediaFiles'] as bool? ?? false ..typingIndicators = json['typingIndicators'] as bool? ?? true + ..showRestoreFlame = json['showRestoreFlame'] as bool? ?? true ..myBestFriendGroupId = json['myBestFriendGroupId'] as String? ..signalLastSignedPreKeyUpdated = json['signalLastSignedPreKeyUpdated'] == null @@ -151,6 +152,7 @@ Map _$UserDataToJson(UserData instance) => { 'autoStoreAllSendUnlimitedMediaFiles': instance.autoStoreAllSendUnlimitedMediaFiles, 'typingIndicators': instance.typingIndicators, + 'showRestoreFlame': instance.showRestoreFlame, 'myBestFriendGroupId': instance.myBestFriendGroupId, 'signalLastSignedPreKeyUpdated': instance.signalLastSignedPreKeyUpdated ?.toIso8601String(), diff --git a/lib/src/visual/views/contact/contact_components/restore_flame.comp.dart b/lib/src/visual/views/contact/contact_components/restore_flame.comp.dart index d512eefd..980045a4 100644 --- a/lib/src/visual/views/contact/contact_components/restore_flame.comp.dart +++ b/lib/src/visual/views/contact/contact_components/restore_flame.comp.dart @@ -107,6 +107,9 @@ class _RestoreFlameCompState extends State { @override Widget build(BuildContext context) { + if (!userService.currentUser.showRestoreFlame) { + return const SizedBox.shrink(); + } if (_group == null || !isItPossibleToRestoreFlames(_group!)) { return Container(); } @@ -115,7 +118,7 @@ class _RestoreFlameCompState extends State { contentPadding: const EdgeInsets.symmetric(horizontal: 16), onTap: _restoreFlames, title: Text( - 'Restore your ${_group!.maxFlameCounter} lost flames', + context.lang.restoreLostFlames(_group!.maxFlameCounter), style: const TextStyle(fontWeight: FontWeight.w500), ), trailing: const SizedBox( @@ -134,7 +137,7 @@ class _RestoreFlameCompState extends State { emoji: '🔥', ), ), - text: 'Restore your ${_group!.maxFlameCounter} lost flames', + text: context.lang.restoreLostFlames(_group!.maxFlameCounter), ); } } diff --git a/lib/src/visual/views/settings/chat/chat_settings.view.dart b/lib/src/visual/views/settings/chat/chat_settings.view.dart index f9ebc006..19bd8d06 100644 --- a/lib/src/visual/views/settings/chat/chat_settings.view.dart +++ b/lib/src/visual/views/settings/chat/chat_settings.view.dart @@ -24,6 +24,12 @@ class _ChatSettingsViewState extends State { }); } + Future setShowRestoreFlame(bool value) async { + await UserService.update((u) { + u.showRestoreFlame = value; + }); + } + @override Widget build(BuildContext context) { return Scaffold( @@ -55,6 +61,13 @@ class _ChatSettingsViewState extends State { .automaticallyMarkEqualMediaFilesAsOpened, onChanged: setAutomaticallyMarkEqualMediaFilesAsOpened, ), + SwitchListTile.adaptive( + title: Text( + context.lang.settingsShowRestoreFlameTitle, + ), + value: userService.currentUser.showRestoreFlame, + onChanged: setShowRestoreFlame, + ), ], ); },