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