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