refactor: high-level loops
This commit is contained in:
parent
71fdd28a8a
commit
b4f755388a
|
|
@ -115,19 +115,11 @@ class CrossSigning {
|
|||
]);
|
||||
}
|
||||
|
||||
bool signable(List<SignableKey> keys) {
|
||||
for (final key in keys) {
|
||||
if (key is CrossSigningKey && key.usage.contains('master')) {
|
||||
return true;
|
||||
}
|
||||
if (key.userId == client.userID &&
|
||||
(key is DeviceKeys) &&
|
||||
key.identifier != client.deviceID) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
bool signable(List<SignableKey> keys) => keys.any((key) =>
|
||||
key is CrossSigningKey && key.usage.contains('master') ||
|
||||
key is DeviceKeys &&
|
||||
key.userId == client.userID &&
|
||||
key.identifier != client.deviceID);
|
||||
|
||||
Future<void> sign(List<SignableKey> keys) async {
|
||||
Uint8List selfSigningKey;
|
||||
|
|
|
|||
|
|
@ -42,9 +42,7 @@ class KeyVerificationManager {
|
|||
entriesToDispose.add(entry.key);
|
||||
}
|
||||
}
|
||||
for (final k in entriesToDispose) {
|
||||
_requests.remove(k);
|
||||
}
|
||||
entriesToDispose.forEach(_requests.remove);
|
||||
}
|
||||
|
||||
void addRequest(KeyVerification request) {
|
||||
|
|
|
|||
|
|
@ -74,18 +74,8 @@ enum KeyVerificationState {
|
|||
|
||||
enum KeyVerificationMethod { emoji, numbers }
|
||||
|
||||
List<String> _intersect(List<String> a, List<dynamic> b) {
|
||||
if (b == null || a == null) {
|
||||
return [];
|
||||
}
|
||||
final res = <String>[];
|
||||
for (final v in a) {
|
||||
if (b.contains(v)) {
|
||||
res.add(v);
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
List<String> _intersect(List<String> a, List<dynamic> b) =>
|
||||
(b == null || a == null) ? [] : a.where(b.contains).toList();
|
||||
|
||||
List<int> _bytesToInt(Uint8List bytes, int totalBits) {
|
||||
final ret = <int>[];
|
||||
|
|
|
|||
|
|
@ -249,13 +249,11 @@ class Client extends MatrixApi {
|
|||
if (accountData['m.direct'] != null &&
|
||||
accountData['m.direct'].content[userId] is List<dynamic> &&
|
||||
accountData['m.direct'].content[userId].length > 0) {
|
||||
final potentialRooms = <Room>{};
|
||||
for (final roomId in accountData['m.direct'].content[userId]) {
|
||||
final room = getRoomById(roomId);
|
||||
if (room != null && room.membership == Membership.join) {
|
||||
potentialRooms.add(room);
|
||||
}
|
||||
}
|
||||
final potentialRooms = accountData['m.direct']
|
||||
.content[userId]
|
||||
.cast<String>()
|
||||
.map(getRoomById)
|
||||
.where((room) => room != null && room.membership == Membership.join);
|
||||
if (potentialRooms.isNotEmpty) {
|
||||
return potentialRooms
|
||||
.fold(
|
||||
|
|
|
|||
|
|
@ -295,14 +295,11 @@ class Event extends MatrixEvent {
|
|||
/// Returns a list of [Receipt] instances for this event.
|
||||
List<Receipt> get receipts {
|
||||
if (!(room.roomAccountData.containsKey('m.receipt'))) return [];
|
||||
final receiptsList = <Receipt>[];
|
||||
for (final entry in room.roomAccountData['m.receipt'].content.entries) {
|
||||
if (entry.value['event_id'] == eventId) {
|
||||
receiptsList.add(Receipt(room.getUserByMXIDSync(entry.key),
|
||||
DateTime.fromMillisecondsSinceEpoch(entry.value['ts'])));
|
||||
}
|
||||
}
|
||||
return receiptsList;
|
||||
return room.roomAccountData['m.receipt'].content.entries
|
||||
.where((entry) => entry.value['event_id'] == eventId)
|
||||
.map((entry) => Receipt(room.getUserByMXIDSync(entry.key),
|
||||
DateTime.fromMillisecondsSinceEpoch(entry.value['ts'])))
|
||||
.toList();
|
||||
}
|
||||
|
||||
/// Removes this event if the status is < 1. This event will just be removed
|
||||
|
|
|
|||
|
|
@ -285,9 +285,8 @@ class Room {
|
|||
// perfect, it is only used for the room preview in the room list and sorting
|
||||
// said room list, so it should be good enough.
|
||||
var lastTime = DateTime.fromMillisecondsSinceEpoch(0);
|
||||
final lastEvents = <Event>[
|
||||
for (var type in client.roomPreviewLastEvents) getState(type)
|
||||
]..removeWhere((e) => e == null);
|
||||
final lastEvents =
|
||||
client.roomPreviewLastEvents.map(getState).where((e) => e != null);
|
||||
|
||||
var lastEvent = lastEvents.isEmpty
|
||||
? null
|
||||
|
|
@ -375,12 +374,10 @@ class Room {
|
|||
}
|
||||
}
|
||||
if (heroes.isNotEmpty) {
|
||||
var displayname = '';
|
||||
for (final hero in heroes) {
|
||||
if (hero.isEmpty) continue;
|
||||
displayname += getUserByMXIDSync(hero).calcDisplayname() + ', ';
|
||||
}
|
||||
return displayname.substring(0, displayname.length - 2);
|
||||
return heroes
|
||||
.where((hero) => hero.isNotEmpty)
|
||||
.map((hero) => getUserByMXIDSync(hero).calcDisplayname())
|
||||
.join(', ');
|
||||
}
|
||||
if (membership == Membership.invite &&
|
||||
getState(EventTypes.RoomMember, client.userID) != null) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue