diff --git a/lib/config/setting_keys.dart b/lib/config/setting_keys.dart index 58a81ca29..e6ac34e8c 100644 --- a/lib/config/setting_keys.dart +++ b/lib/config/setting_keys.dart @@ -1,8 +1,8 @@ import 'dart:convert'; -import 'package:async/async.dart'; import 'package:flutter/foundation.dart'; +import 'package:async/async.dart'; import 'package:http/http.dart' as http; import 'package:matrix/matrix_api_lite/utils/logs.dart'; import 'package:shared_preferences/shared_preferences.dart'; @@ -142,25 +142,69 @@ enum AppSettings { } extension AppSettingsBoolExtension on AppSettings { - bool get value => AppSettings.store.getBool(key) ?? defaultValue; + bool get value { + final value = Result(() => AppSettings.store.getBool(key)); + final error = value.asError; + if (error != null) { + Logs().e( + 'Unable to fetch $key from storage. Removing entry...', + error.error, + error.stackTrace, + ); + } + return value.asValue?.value ?? defaultValue; + } Future setItem(bool value) => AppSettings.store.setBool(key, value); } extension AppSettingsStringExtension on AppSettings { - String get value => AppSettings.store.getString(key) ?? defaultValue; + String get value { + final value = Result(() => AppSettings.store.getString(key)); + final error = value.asError; + if (error != null) { + Logs().e( + 'Unable to fetch $key from storage. Removing entry...', + error.error, + error.stackTrace, + ); + } + return value.asValue?.value ?? defaultValue; + } Future setItem(String value) => AppSettings.store.setString(key, value); } extension AppSettingsIntExtension on AppSettings { - int get value => AppSettings.store.getInt(key) ?? defaultValue; + int get value { + final value = Result(() => AppSettings.store.getInt(key)); + final error = value.asError; + if (error != null) { + Logs().e( + 'Unable to fetch $key from storage. Removing entry...', + error.error, + error.stackTrace, + ); + } + return value.asValue?.value ?? defaultValue; + } Future setItem(int value) => AppSettings.store.setInt(key, value); } extension AppSettingsDoubleExtension on AppSettings { - double get value => AppSettings.store.getDouble(key) ?? defaultValue; + double get value { + final value = Result(() => AppSettings.store.getDouble(key)); + final error = value.asError; + if (error != null) { + Logs().e( + 'Unable to fetch $key from storage. Removing entry...', + error.error, + error.stackTrace, + ); + } + return value.asValue?.value ?? defaultValue; + } Future setItem(double value) => AppSettings.store.setDouble(key, value); } diff --git a/lib/l10n/intl_nb.arb b/lib/l10n/intl_nb.arb index bad5e73d1..7c6d2d979 100644 --- a/lib/l10n/intl_nb.arb +++ b/lib/l10n/intl_nb.arb @@ -3208,6 +3208,10 @@ "@notificationRuleRoomOneToOneDescription": {}, "notificationRuleJitsiDescription": "Varsler brukeren om hendelser i Jitsi-widgeten.", "@notificationRuleJitsiDescription": {}, + "customReaction": "Egendefinert reaksjon", + "@customReaction": {}, + "pause": "Pause", + "@pause": {}, "alwaysUse24HourFormat": "falsk", "commandHint_googly": "Send noen googly-øyne", "commandHint_cuddle": "Send en kose", @@ -3271,7 +3275,6 @@ "notificationRuleServerAclDescription": "Undertrykker varsler for server-ACL hendelser.", "youHaveKnocked": "Du har ringt på", "displayNavigationRail": "Vis navigasjonsstang på mobil", - "customReaction": "Egendefinert reaksjon", "writeAMessageLangCodes": "Skriv inn {l1} eller {l2}...", "requests": "Forespørsler", "holdForInfo": "Klikk og hold for ordinformasjon.", @@ -4688,10 +4691,6 @@ "type": "String", "placeholders": {} }, - "@customReaction": { - "type": "String", - "placeholders": {} - }, "@writeAMessageLangCodes": { "type": "String", "placeholders": {