From 864cbfa9068f5bb285336ca73ab2551204e62044 Mon Sep 17 00:00:00 2001 From: Christian Pauly Date: Sun, 20 Sep 2020 10:35:25 +0200 Subject: [PATCH] fix: Hotfix ignored user list --- lib/src/client.dart | 22 ++++++++++------------ test/client_test.dart | 4 +++- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/lib/src/client.dart b/lib/src/client.dart index ebd85a6..58f3492 100644 --- a/lib/src/client.dart +++ b/lib/src/client.dart @@ -1529,9 +1529,9 @@ sort order of ${prevState.sortOrder}. This should never happen...'''); /// A list of mxids of users who are ignored. List get ignoredUsers => (accountData .containsKey('m.ignored_user_list') && - accountData['m.ignored_user_list'].content['ignored_users'] is List) + accountData['m.ignored_user_list'].content['ignored_users'] is Map) ? List.from( - accountData['m.ignored_user_list'].content['ignored_users']) + accountData['m.ignored_user_list'].content['ignored_users'].keys) : []; /// Ignore another user. This will clear the local cached messages to @@ -1540,11 +1540,10 @@ sort order of ${prevState.sortOrder}. This should never happen...'''); if (!userId.isValidMatrixId) { throw Exception('$userId is not a valid mxid!'); } - await setAccountData( - userID, - 'm.ignored_user_list', - {'ignored_users': ignoredUsers..add(userId)}, - ); + await setAccountData(userID, 'm.ignored_user_list', { + 'ignored_users': Map.fromEntries( + (ignoredUsers..add(userId)).map((key) => MapEntry(key, {}))), + }); await clearLocalCachedMessages(); return; } @@ -1558,11 +1557,10 @@ sort order of ${prevState.sortOrder}. This should never happen...'''); if (!ignoredUsers.contains(userId)) { throw Exception('$userId is not in the ignore list!'); } - await setAccountData( - userID, - 'm.ignored_user_list', - {'ignored_users': ignoredUsers..remove(userId)}, - ); + await setAccountData(userID, 'm.ignored_user_list', { + 'ignored_users': Map.fromEntries( + (ignoredUsers..remove(userId)).map((key) => MapEntry(key, {}))), + }); await clearLocalCachedMessages(); return; } diff --git a/test/client_test.dart b/test/client_test.dart index ce67a9d..f1a13f4 100644 --- a/test/client_test.dart +++ b/test/client_test.dart @@ -425,7 +425,9 @@ void main() { expect(matrix.ignoredUsers, []); matrix.accountData['m.ignored_user_list'] = BasicEvent(type: 'm.ignored_user_list', content: { - 'ignored_users': ['@charley:stupid.abc'] + 'ignored_users': { + '@charley:stupid.abc': {}, + }, }); expect(matrix.ignoredUsers, ['@charley:stupid.abc']); });