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