From fbc5924ace9f59f800745e875085b481d80eb15f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ku=C3=9Fowski?= Date: Sun, 26 Oct 2025 08:06:29 +0100 Subject: [PATCH 1/2] chore: Make store getter type safe --- lib/config/setting_keys.dart | 54 ++++++++++++++++++++++++++++++++---- 1 file changed, 49 insertions(+), 5 deletions(-) diff --git a/lib/config/setting_keys.dart b/lib/config/setting_keys.dart index 8533b8846..926cdadd2 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'; @@ -125,25 +125,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); } From 1ac19682d266117ab68a8505334d1c0fde616774 Mon Sep 17 00:00:00 2001 From: Frank Paul Silye Date: Mon, 27 Oct 2025 06:36:39 +0100 Subject: [PATCH 2/2] =?UTF-8?q?chore(translations):=20Translated=20using?= =?UTF-8?q?=20Weblate=20(Norwegian=20Bokm=C3=A5l)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Currently translated at 90.8% (721 of 794 strings) Translation: FluffyChat/Translations Translate-URL: https://hosted.weblate.org/projects/fluffychat/translations/nb_NO/ --- lib/l10n/intl_nb.arb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/l10n/intl_nb.arb b/lib/l10n/intl_nb.arb index 8ed066e51..3fb48adc7 100644 --- a/lib/l10n/intl_nb.arb +++ b/lib/l10n/intl_nb.arb @@ -3207,5 +3207,9 @@ "notificationRuleRoomOneToOneDescription": "Varsler brukeren om meldinger i én-til-én-rom.", "@notificationRuleRoomOneToOneDescription": {}, "notificationRuleJitsiDescription": "Varsler brukeren om hendelser i Jitsi-widgeten.", - "@notificationRuleJitsiDescription": {} + "@notificationRuleJitsiDescription": {}, + "customReaction": "Egendefinert reaksjon", + "@customReaction": {}, + "pause": "Pause", + "@pause": {} }