From cf74379934564433fe2fa7e080241f2307640e97 Mon Sep 17 00:00:00 2001 From: Taksh Date: Sun, 8 Nov 2026 12:18:33 +0530 Subject: [PATCH] Keep a geohash block after the process restarts. SharedPreferences was storing the live block set, so a later add never got written. --- .../main/java/com/bitchat/android/ui/DataManager.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/bitchat/android/ui/DataManager.kt b/app/src/main/java/com/bitchat/android/ui/DataManager.kt index 9d1512f69..2d6fe1e10 100644 --- a/app/src/main/java/com/bitchat/android/ui/DataManager.kt +++ b/app/src/main/java/com/bitchat/android/ui/DataManager.kt @@ -233,16 +233,18 @@ class DataManager(private val context: Context) { fun loadGeohashBlockedUsers() { val savedGeohashBlockedUsers = prefs.getStringSet("geohash_blocked_users", emptySet()) ?: emptySet() _geohashBlockedUsers.clear() - _geohashBlockedUsers.addAll(savedGeohashBlockedUsers) + _geohashBlockedUsers.addAll(savedGeohashBlockedUsers.map { it.lowercase() }) } fun saveGeohashBlockedUsers() { - prefs.edit().putStringSet("geohash_blocked_users", _geohashBlockedUsers).apply() + // Copy first. putStringSet keeps the set instance, so later adds would + // mutate the stored set and SharedPreferences would skip the write. + prefs.edit().putStringSet("geohash_blocked_users", HashSet(_geohashBlockedUsers)).apply() } @Synchronized fun addGeohashBlockedUser(pubkeyHex: String) { - _geohashBlockedUsers.add(pubkeyHex) + _geohashBlockedUsers.add(pubkeyHex.lowercase()) saveGeohashBlockedUsers() } @@ -254,7 +256,7 @@ class DataManager(private val context: Context) { @Synchronized fun isGeohashUserBlocked(pubkeyHex: String): Boolean { - return _geohashBlockedUsers.contains(pubkeyHex) + return _geohashBlockedUsers.contains(pubkeyHex.lowercase()) } // MARK: - Emergency Clear