Line data Source code
1 : import 'package:matrix/matrix.dart';
2 :
3 : extension SyncUpdateItemCount on SyncUpdate {
4 31 : int get itemCount {
5 : var count = 0;
6 93 : count += accountData?.length ?? 0;
7 124 : count += deviceLists?.changed?.length ?? 0;
8 124 : count += deviceLists?.left?.length ?? 0;
9 93 : count += toDevice?.length ?? 0;
10 93 : count += presence?.length ?? 0;
11 62 : count += _joinRoomsItemCount;
12 62 : count += _inviteRoomsItemCount;
13 62 : count += _leaveRoomsItemCount;
14 : return count;
15 : }
16 :
17 31 : int get _joinRoomsItemCount =>
18 124 : rooms?.join?.values.fold<int>(
19 : 0,
20 31 : (prev, room) =>
21 31 : prev +
22 93 : (room.accountData?.length ?? 0) +
23 93 : (room.state?.length ?? 0) +
24 93 : (room.timeline?.events?.length ?? 0),
25 : ) ??
26 : 0;
27 :
28 31 : int get _inviteRoomsItemCount =>
29 124 : rooms?.invite?.values.fold<int>(
30 : 0,
31 124 : (prev, room) => prev + (room.inviteState?.length ?? 0),
32 : ) ??
33 : 0;
34 :
35 31 : int get _leaveRoomsItemCount =>
36 124 : rooms?.leave?.values.fold<int>(
37 : 0,
38 31 : (prev, room) =>
39 31 : prev +
40 93 : (room.accountData?.length ?? 0) +
41 93 : (room.state?.length ?? 0) +
42 93 : (room.timeline?.events?.length ?? 0),
43 : ) ??
44 : 0;
45 : }
|