feat: Add setting to disable map tab for battery savings

Add a new "Disable Map" toggle in settings that allows users to hide
the map tab entirely. This is useful for scenarios where the map is
not needed and battery conservation is a priority.

Changes:
- Add disableMap and disableMapDescription localized strings (all languages)
- Add isMapEnabled state to AppProvider with persistence
- Update HomeScreen to dynamically adjust tab count based on setting
- Make onNavigateToMap optional in MessagesTab and ContactsTab
- Add toggle switch in Settings screen under Interface section
This commit is contained in:
Janez Troha
2025-12-04 18:33:00 +01:00
parent 53aa8e57e2
commit 3e2e4aa4d9
19 changed files with 258 additions and 30 deletions

View File

@@ -217,6 +217,16 @@
"description": "Beschreibung für die Einstellung des einfachen Modus"
},
"disableMap": "Karte deaktivieren",
"@disableMap": {
"description": "Einstellung zum Deaktivieren des Karten-Tabs"
},
"disableMapDescription": "Karten-Tab ausblenden, um Akku zu sparen",
"@disableMapDescription": {
"description": "Beschreibung für die Einstellung zum Deaktivieren der Karte"
},
"language": "Sprache",
"@language": {
"description": "Beschriftung der Spracheinstellung"

View File

@@ -217,6 +217,16 @@
"description": "Description for simple mode setting"
},
"disableMap": "Disable Map",
"@disableMap": {
"description": "Setting to disable the map tab"
},
"disableMapDescription": "Hide the map tab to reduce battery usage",
"@disableMapDescription": {
"description": "Description for disable map setting"
},
"language": "Language",
"@language": {
"description": "Language setting label"

View File

@@ -217,6 +217,16 @@
"description": "Descripción de la configuración del modo simple"
},
"disableMap": "Desactivar mapa",
"@disableMap": {
"description": "Configuración para desactivar la pestaña del mapa"
},
"disableMapDescription": "Ocultar la pestaña del mapa para reducir el uso de batería",
"@disableMapDescription": {
"description": "Descripción de la configuración para desactivar el mapa"
},
"language": "Idioma",
"@language": {
"description": "Etiqueta de la configuración de idioma"

View File

@@ -217,6 +217,16 @@
"description": "Description du paramètre du mode simple"
},
"disableMap": "Désactiver la carte",
"@disableMap": {
"description": "Paramètre pour désactiver l'onglet carte"
},
"disableMapDescription": "Masquer l'onglet carte pour réduire la consommation de batterie",
"@disableMapDescription": {
"description": "Description du paramètre pour désactiver la carte"
},
"language": "Langue",
"@language": {
"description": "Libellé du paramètre de langue"

View File

@@ -79,6 +79,10 @@
"simpleModeDescription": "Sakrij nevažne informacije u porukama i kontaktima",
"disableMap": "Onemogući kartu",
"disableMapDescription": "Sakrij karticu karte za uštedu baterije",
"language": "Jezik",
"chooseLanguage": "Odaberite jezik",

View File

@@ -217,6 +217,16 @@
"description": "Descrizione per l'impostazione della modalità semplice"
},
"disableMap": "Disabilita mappa",
"@disableMap": {
"description": "Impostazione per disabilitare la scheda mappa"
},
"disableMapDescription": "Nascondi la scheda mappa per ridurre il consumo della batteria",
"@disableMapDescription": {
"description": "Descrizione per l'impostazione di disabilitazione mappa"
},
"language": "Lingua",
"@language": {
"description": "Etichetta impostazione lingua"

View File

@@ -342,6 +342,18 @@ abstract class AppLocalizations {
/// **'Hide non-essential information in messages and contacts'**
String get simpleModeDescription;
/// Setting to disable the map tab
///
/// In en, this message translates to:
/// **'Disable Map'**
String get disableMap;
/// Description for disable map setting
///
/// In en, this message translates to:
/// **'Hide the map tab to reduce battery usage'**
String get disableMapDescription;
/// Language setting label
///
/// In en, this message translates to:

View File

@@ -137,6 +137,13 @@ class AppLocalizationsDe extends AppLocalizations {
String get simpleModeDescription =>
'Nicht wesentliche Informationen in Nachrichten und Kontakten ausblenden';
@override
String get disableMap => 'Karte deaktivieren';
@override
String get disableMapDescription =>
'Karten-Tab ausblenden, um Akku zu sparen';
@override
String get language => 'Sprache';

View File

@@ -136,6 +136,13 @@ class AppLocalizationsEn extends AppLocalizations {
String get simpleModeDescription =>
'Hide non-essential information in messages and contacts';
@override
String get disableMap => 'Disable Map';
@override
String get disableMapDescription =>
'Hide the map tab to reduce battery usage';
@override
String get language => 'Language';

View File

@@ -136,6 +136,13 @@ class AppLocalizationsEs extends AppLocalizations {
String get simpleModeDescription =>
'Ocultar información no esencial en mensajes y contactos';
@override
String get disableMap => 'Desactivar mapa';
@override
String get disableMapDescription =>
'Ocultar la pestaña del mapa para reducir el uso de batería';
@override
String get language => 'Idioma';

View File

@@ -137,6 +137,13 @@ class AppLocalizationsFr extends AppLocalizations {
String get simpleModeDescription =>
'Masquer les informations non essentielles dans les messages et les contacts';
@override
String get disableMap => 'Désactiver la carte';
@override
String get disableMapDescription =>
'Masquer l\'onglet carte pour réduire la consommation de batterie';
@override
String get language => 'Langue';

View File

@@ -136,6 +136,12 @@ class AppLocalizationsHr extends AppLocalizations {
String get simpleModeDescription =>
'Sakrij nevažne informacije u porukama i kontaktima';
@override
String get disableMap => 'Onemogući kartu';
@override
String get disableMapDescription => 'Sakrij karticu karte za uštedu baterije';
@override
String get language => 'Jezik';

View File

@@ -136,6 +136,13 @@ class AppLocalizationsIt extends AppLocalizations {
String get simpleModeDescription =>
'Nascondi informazioni non essenziali nei messaggi e contatti';
@override
String get disableMap => 'Disabilita mappa';
@override
String get disableMapDescription =>
'Nascondi la scheda mappa per ridurre il consumo della batteria';
@override
String get language => 'Lingua';

View File

@@ -136,6 +136,13 @@ class AppLocalizationsSl extends AppLocalizations {
String get simpleModeDescription =>
'Skrij nepomembne informacije v sporočilih in kontaktih';
@override
String get disableMap => 'Onemogoči zemljevid';
@override
String get disableMapDescription =>
'Skrij zavihek z zemljevidom za varčevanje z baterijo';
@override
String get language => 'Jezik';

View File

@@ -79,6 +79,10 @@
"simpleModeDescription": "Skrij nepomembne informacije v sporočilih in kontaktih",
"disableMap": "Onemogoči zemljevid",
"disableMapDescription": "Skrij zavihek z zemljevidom za varčevanje z baterijo",
"language": "Jezik",
"chooseLanguage": "Izberite jezik",