From ff2de35d2842206bb87e87ef79fa977268ec09d0 Mon Sep 17 00:00:00 2001 From: Sorunome Date: Fri, 24 Jul 2020 14:53:06 +0200 Subject: [PATCH] test web --- lib/matrix_api/model/matrix_event.dart | 7 ++++--- lib/src/event.dart | 18 +++++++++++------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/lib/matrix_api/model/matrix_event.dart b/lib/matrix_api/model/matrix_event.dart index e70f8b5..0a20bf5 100644 --- a/lib/matrix_api/model/matrix_event.dart +++ b/lib/matrix_api/model/matrix_event.dart @@ -41,9 +41,10 @@ class MatrixEvent extends StrippedStateEvent { unsigned = json['unsigned'] != null ? Map.from(json['unsigned']) : null; - prevContent = json['prev_content'] != null - ? Map.from(json['prev_content']) - : null; + prevContent = + json.containsKey('prev_content') && json['prev_content'] != null + ? Map.from(json['prev_content']) + : null; redacts = json['redacts']; } diff --git a/lib/src/event.dart b/lib/src/event.dart index 1e55b22..154f090 100644 --- a/lib/src/event.dart +++ b/lib/src/event.dart @@ -93,7 +93,9 @@ class Event extends MatrixEvent { // into the unsigned block this.prevContent = prevContent != null && prevContent.isNotEmpty ? prevContent - : (unsigned != null && unsigned['prev_content'] is Map + : (unsigned != null && + unsigned.containsKey('prev_content') && + unsigned['prev_content'] is Map ? unsigned['prev_content'] : null); this.stateKey = stateKey; @@ -481,7 +483,8 @@ class Event extends MatrixEvent { final targetName = stateKeyUser.calcDisplayname(); // Has the membership changed? final newMembership = content['membership'] ?? ''; - final oldMembership = unsigned['prev_content'] is Map + final oldMembership = unsigned.containsKey('prev_content') && + unsigned['prev_content'] is Map ? unsigned['prev_content']['membership'] ?? '' : ''; if (newMembership != oldMembership) { @@ -518,15 +521,16 @@ class Event extends MatrixEvent { } } else if (newMembership == 'join') { final newAvatar = content['avatar_url'] ?? ''; - final oldAvatar = unsigned['prev_content'] is Map + final oldAvatar = unsigned.containsKey('prev_content') && + unsigned['prev_content'] is Map ? unsigned['prev_content']['avatar_url'] ?? '' : ''; final newDisplayname = content['displayname'] ?? ''; - final oldDisplayname = - unsigned['prev_content'] is Map - ? unsigned['prev_content']['displayname'] ?? '' - : ''; + final oldDisplayname = unsigned.containsKey('prev_content') && + unsigned['prev_content'] is Map + ? unsigned['prev_content']['displayname'] ?? '' + : ''; // Has the user avatar changed? if (newAvatar != oldAvatar) {