From e6658a6026554285ec627c623a70778144bb7613 Mon Sep 17 00:00:00 2001 From: Winston Lowe Date: Thu, 12 Mar 2026 09:29:46 -0700 Subject: [PATCH] Migrate storage keys to scoped keys across multiple store classes --- lib/screens/channels_screen.dart | 2 ++ lib/screens/community_qr_scanner_screen.dart | 5 +++++ lib/storage/channel_message_store.dart | 5 +---- lib/storage/channel_order_store.dart | 3 ++- lib/storage/channel_settings_store.dart | 2 +- lib/storage/channel_store.dart | 5 +---- lib/storage/community_store.dart | 6 ++---- lib/storage/contact_group_store.dart | 5 +---- lib/storage/contact_store.dart | 3 --- lib/storage/message_store.dart | 4 +--- lib/storage/unread_store.dart | 5 +---- 11 files changed, 17 insertions(+), 28 deletions(-) diff --git a/lib/screens/channels_screen.dart b/lib/screens/channels_screen.dart index 00820ed..b2fd765 100644 --- a/lib/screens/channels_screen.dart +++ b/lib/screens/channels_screen.dart @@ -54,6 +54,8 @@ class _ChannelsScreenState extends State @override void initState() { super.initState(); + final connector = context.read(); + _communityStore.setPublicKeyHex = connector.selfPublicKeyHex; WidgetsBinding.instance.addPostFrameCallback((_) { context.read().getChannels(); _loadCommunities(); diff --git a/lib/screens/community_qr_scanner_screen.dart b/lib/screens/community_qr_scanner_screen.dart index 9f8602d..6852dfa 100644 --- a/lib/screens/community_qr_scanner_screen.dart +++ b/lib/screens/community_qr_scanner_screen.dart @@ -51,6 +51,9 @@ class _CommunityQrScannerScreenState extends State { _isProcessing = true; }); + final connector = context.read(); + _communityStore.setPublicKeyHex = connector.selfPublicKeyHex; + try { // Parse the community data final community = Community.fromQrData(const Uuid().v4(), data); @@ -209,6 +212,8 @@ class _CommunityQrScannerScreenState extends State { bool addPublicChannel, ) async { // Save community to local storage + final connector = context.read(); + _communityStore.setPublicKeyHex = connector.selfPublicKeyHex; await _communityStore.addCommunity(community); // Optionally add the community public channel to the device diff --git a/lib/storage/channel_message_store.dart b/lib/storage/channel_message_store.dart index 50d13f7..769570f 100644 --- a/lib/storage/channel_message_store.dart +++ b/lib/storage/channel_message_store.dart @@ -48,7 +48,7 @@ class ChannelMessageStore { final key = '$keyFor$channelIndex'; final oldKey = '$_keyPrefix$channelIndex'; - String? jsonString = prefs.getString(oldKey); + String? jsonString = prefs.getString(key); if (jsonString == null || jsonString.isEmpty) { // Attempt migration from legacy unscoped key on first load final legacyJsonString = prefs.getString(oldKey); @@ -61,9 +61,6 @@ class ChannelMessageStore { jsonString = legacyJsonString; } } - if (jsonString == null || jsonString.isEmpty) { - jsonString = prefs.getString(keyFor); - } if (jsonString == null || jsonString.isEmpty) { return []; } diff --git a/lib/storage/channel_order_store.dart b/lib/storage/channel_order_store.dart index 48a80f2..75cf298 100644 --- a/lib/storage/channel_order_store.dart +++ b/lib/storage/channel_order_store.dart @@ -26,7 +26,7 @@ class ChannelOrderStore { return []; } final prefs = PrefsManager.instance; - String? jsonString = prefs.getString(_keyPrefix); + String? jsonString = prefs.getString(keyFor); if (jsonString == null || jsonString.isEmpty) { // Attempt migration from legacy unscoped key on first load final legacyJsonString = prefs.getString(_keyPrefix); @@ -42,6 +42,7 @@ class ChannelOrderStore { if (jsonString == null || jsonString.isEmpty) { return []; } + try { final decoded = jsonDecode(jsonString); if (decoded is List) { diff --git a/lib/storage/channel_settings_store.dart b/lib/storage/channel_settings_store.dart index 3fb00eb..3b639cd 100644 --- a/lib/storage/channel_settings_store.dart +++ b/lib/storage/channel_settings_store.dart @@ -20,7 +20,7 @@ class ChannelSettingsStore { final prefs = PrefsManager.instance; final key = '$keyFor$channelIndex'; final oldKey = '$_keyPrefix$channelIndex'; - bool? enabled = prefs.getBool(oldKey); + bool? enabled = prefs.getBool(key); if (enabled == null) { // Attempt migration from legacy unscoped key on first load enabled = prefs.getBool(oldKey); diff --git a/lib/storage/channel_store.dart b/lib/storage/channel_store.dart index 775398e..1d9eac5 100644 --- a/lib/storage/channel_store.dart +++ b/lib/storage/channel_store.dart @@ -19,7 +19,7 @@ class ChannelStore { return []; } final prefs = PrefsManager.instance; - String? jsonString = prefs.getString(_keyPrefix); + String? jsonString = prefs.getString(keyFor); if (jsonString == null || jsonString.isEmpty) { // Attempt migration from legacy unscoped key on first load final legacyJsonString = prefs.getString(_keyPrefix); @@ -33,9 +33,6 @@ class ChannelStore { } } - if (jsonString == null || jsonString.isEmpty) { - jsonString = prefs.getString(keyFor); - } if (jsonString == null || jsonString.isEmpty) { return []; } diff --git a/lib/storage/community_store.dart b/lib/storage/community_store.dart index 6df859a..8283cdb 100644 --- a/lib/storage/community_store.dart +++ b/lib/storage/community_store.dart @@ -25,7 +25,7 @@ class CommunityStore { return []; } final prefs = PrefsManager.instance; - String? jsonString = prefs.getString(_keyPrefix); + String? jsonString = prefs.getString(keyFor); if (jsonString == null || jsonString.isEmpty) { // Attempt migration from legacy unscoped key on first load final legacyJsonString = prefs.getString(_keyPrefix); @@ -38,9 +38,7 @@ class CommunityStore { jsonString = legacyJsonString; } } - if (jsonString == null || jsonString.isEmpty) { - jsonString = prefs.getString(keyFor); - } + if (jsonString == null || jsonString.isEmpty) { return []; } diff --git a/lib/storage/contact_group_store.dart b/lib/storage/contact_group_store.dart index 986bfdd..5993c55 100644 --- a/lib/storage/contact_group_store.dart +++ b/lib/storage/contact_group_store.dart @@ -18,7 +18,7 @@ class ContactGroupStore { return []; } final prefs = PrefsManager.instance; - String? jsonString = prefs.getString(_keyPrefix); + String? jsonString = prefs.getString(keyFor); if (jsonString == null || jsonString.isEmpty) { // Attempt migration from legacy unscoped key on first load final legacyJsonString = prefs.getString(_keyPrefix); @@ -31,9 +31,6 @@ class ContactGroupStore { jsonString = legacyJsonString; } } - if (jsonString == null || jsonString.isEmpty) { - jsonString = prefs.getString(keyFor); - } if (jsonString == null || jsonString.isEmpty) { return []; } diff --git a/lib/storage/contact_store.dart b/lib/storage/contact_store.dart index a4e2f0d..8f9e84d 100644 --- a/lib/storage/contact_store.dart +++ b/lib/storage/contact_store.dart @@ -33,9 +33,6 @@ class ContactStore { jsonString = legacyJsonString; } } - if (jsonString == null || jsonString.isEmpty) { - jsonString = prefs.getString(keyFor); - } if (jsonString == null || jsonString.isEmpty) { return []; } diff --git a/lib/storage/message_store.dart b/lib/storage/message_store.dart index 9a39e3f..722fd07 100644 --- a/lib/storage/message_store.dart +++ b/lib/storage/message_store.dart @@ -49,9 +49,7 @@ class MessageStore { jsonString = legacyJsonString; } } - if (jsonString == null || jsonString.isEmpty) { - jsonString = prefs.getString(keyFor); - } + if (jsonString == null || jsonString.isEmpty) { return []; } diff --git a/lib/storage/unread_store.dart b/lib/storage/unread_store.dart index d46fb41..eb68898 100644 --- a/lib/storage/unread_store.dart +++ b/lib/storage/unread_store.dart @@ -32,7 +32,7 @@ class UnreadStore { return {}; } final prefs = PrefsManager.instance; - String? jsonString = prefs.getString(_keyPrefix); + String? jsonString = prefs.getString(keyFor); if (jsonString == null || jsonString.isEmpty) { // Attempt migration from legacy unscoped key on first load final legacyJsonString = prefs.getString(_keyPrefix); @@ -45,9 +45,6 @@ class UnreadStore { jsonString = legacyJsonString; } } - if (jsonString == null || jsonString.isEmpty) { - jsonString = prefs.getString(keyFor); - } if (jsonString == null || jsonString.isEmpty) { return {}; }