@@ -63,7 +63,11 @@ class ChannelListCore extends StatefulWidget {
|
||||
required this.loadingBuilder,
|
||||
required this.listBuilder,
|
||||
this.filter,
|
||||
this.options,
|
||||
this.state = true,
|
||||
this.watch = true,
|
||||
this.presence = false,
|
||||
this.memberLimit,
|
||||
this.messageLimit,
|
||||
this.sort,
|
||||
this.pagination = const PaginationParams(
|
||||
limit: 25,
|
||||
@@ -94,11 +98,11 @@ class ChannelListCore extends StatefulWidget {
|
||||
/// You can also filter other built-in channel fields.
|
||||
final Filter? filter;
|
||||
|
||||
/// Query channels options.
|
||||
///
|
||||
/// state: if true returns the Channel state
|
||||
/// watch: if true listen to changes to this Channel in real time.
|
||||
final Map<String, dynamic>? options;
|
||||
// bool state = true,
|
||||
// bool watch = true,
|
||||
// bool presence = false,
|
||||
// int? memberLimit,
|
||||
// int? messageLimit,
|
||||
|
||||
/// The sorting used for the channels matching the filters.
|
||||
/// Sorting is based on field and direction, multiple sorting options can be
|
||||
@@ -107,6 +111,17 @@ class ChannelListCore extends StatefulWidget {
|
||||
/// _at or member_count. Direction can be ascending or descending.
|
||||
final List<SortOption<ChannelModel>>? sort;
|
||||
|
||||
/// If true returns the Channel state
|
||||
final bool state;
|
||||
|
||||
/// If true listen to changes to this Channel in real time.
|
||||
final bool watch;
|
||||
|
||||
final bool presence;
|
||||
|
||||
final int? memberLimit;
|
||||
final int? messageLimit;
|
||||
|
||||
/// Pagination parameters
|
||||
/// limit: the number of channels to return (max is 30)
|
||||
/// offset: the offset (max is 1000)
|
||||
@@ -149,18 +164,26 @@ class ChannelListCoreState extends State<ChannelListCore> {
|
||||
Future<void> loadData() => _channelsBloc.queryChannels(
|
||||
filter: widget.filter,
|
||||
sortOptions: widget.sort,
|
||||
state: widget.state,
|
||||
watch: widget.watch,
|
||||
presence: widget.presence,
|
||||
memberLimit: widget.memberLimit,
|
||||
messageLimit: widget.messageLimit,
|
||||
paginationParams: widget.pagination,
|
||||
options: widget.options,
|
||||
);
|
||||
|
||||
/// Fetches more channels with updated pagination and updates the widget
|
||||
Future<void> paginateData() => _channelsBloc.queryChannels(
|
||||
filter: widget.filter,
|
||||
sortOptions: widget.sort,
|
||||
state: widget.state,
|
||||
watch: widget.watch,
|
||||
presence: widget.presence,
|
||||
memberLimit: widget.memberLimit,
|
||||
messageLimit: widget.messageLimit,
|
||||
paginationParams: widget.pagination.copyWith(
|
||||
offset: _channelsBloc.channels?.length ?? 0,
|
||||
),
|
||||
options: widget.options,
|
||||
);
|
||||
|
||||
StreamSubscription<Event>? _subscription;
|
||||
@@ -200,7 +223,11 @@ class ChannelListCoreState extends State<ChannelListCore> {
|
||||
|
||||
if (widget.filter?.toString() != oldWidget.filter?.toString() ||
|
||||
jsonEncode(widget.sort) != jsonEncode(oldWidget.sort) ||
|
||||
widget.options?.toString() != oldWidget.options?.toString() ||
|
||||
widget.state != oldWidget.state ||
|
||||
widget.watch != oldWidget.watch ||
|
||||
widget.presence != oldWidget.presence ||
|
||||
widget.messageLimit != oldWidget.messageLimit ||
|
||||
widget.memberLimit != oldWidget.memberLimit ||
|
||||
widget.pagination.toJson().toString() !=
|
||||
oldWidget.pagination.toJson().toString()) {
|
||||
loadData();
|
||||
|
||||
@@ -95,8 +95,13 @@ class ChannelsBlocState extends State<ChannelsBloc>
|
||||
Future<void> queryChannels({
|
||||
Filter? filter,
|
||||
List<SortOption<ChannelModel>>? sortOptions,
|
||||
bool state = true,
|
||||
bool watch = true,
|
||||
bool presence = false,
|
||||
int? memberLimit,
|
||||
int? messageLimit,
|
||||
bool waitForConnect = true,
|
||||
PaginationParams paginationParams = const PaginationParams(limit: 30),
|
||||
Map<String, dynamic>? options,
|
||||
}) async {
|
||||
final client = _streamChatCoreState!.client;
|
||||
|
||||
@@ -117,7 +122,12 @@ class ChannelsBlocState extends State<ChannelsBloc>
|
||||
await for (final channels in client.queryChannels(
|
||||
filter: filter,
|
||||
sort: sortOptions,
|
||||
options: options,
|
||||
state: state,
|
||||
watch: watch,
|
||||
presence: presence,
|
||||
memberLimit: memberLimit,
|
||||
messageLimit: messageLimit,
|
||||
waitForConnect: waitForConnect,
|
||||
paginationParams: paginationParams,
|
||||
)) {
|
||||
newChannels = channels;
|
||||
|
||||
@@ -109,7 +109,7 @@ class StreamChatCoreState extends State<StreamChatCore>
|
||||
if (user != null) {
|
||||
if (state == AppLifecycleState.paused) {
|
||||
if (widget.onBackgroundEventReceived == null) {
|
||||
client.disconnect();
|
||||
client.closeConnection();
|
||||
return;
|
||||
}
|
||||
_eventSubscription = client.on().listen(
|
||||
@@ -118,7 +118,7 @@ class StreamChatCoreState extends State<StreamChatCore>
|
||||
|
||||
void onTimerComplete() {
|
||||
_eventSubscription?.cancel();
|
||||
client.disconnect();
|
||||
client.closeConnection();
|
||||
}
|
||||
|
||||
_disconnectTimer = Timer(widget.backgroundKeepAlive, onTimerComplete);
|
||||
@@ -128,7 +128,7 @@ class StreamChatCoreState extends State<StreamChatCore>
|
||||
_disconnectTimer?.cancel();
|
||||
} else {
|
||||
if (client.wsConnectionStatus == ConnectionStatus.disconnected) {
|
||||
client.connect();
|
||||
client.openConnection();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,8 +63,8 @@ class UserListCore extends StatefulWidget {
|
||||
required this.listBuilder,
|
||||
Key? key,
|
||||
this.filter,
|
||||
this.options,
|
||||
this.sort,
|
||||
this.presence,
|
||||
this.pagination,
|
||||
this.groupAlphabetically = false,
|
||||
this.userListController,
|
||||
@@ -92,18 +92,15 @@ class UserListCore extends StatefulWidget {
|
||||
/// You can also filter other built-in channel fields.
|
||||
final Filter? filter;
|
||||
|
||||
/// Query channels options.
|
||||
///
|
||||
/// state: if true returns the Channel state
|
||||
/// watch: if true listen to changes to this Channel in real time.
|
||||
final Map<String, dynamic>? options;
|
||||
|
||||
/// The sorting used for the channels matching the filters.
|
||||
/// Sorting is based on field and direction, multiple sorting options can be
|
||||
/// provided. You can sort based on last_updated, last_message_at, updated_at,
|
||||
/// created_at or member_count. Direction can be ascending or descending.
|
||||
final List<SortOption>? sort;
|
||||
|
||||
///
|
||||
final bool? presence;
|
||||
|
||||
/// Pagination parameters
|
||||
/// limit: the number of users to return (max is 30)
|
||||
/// offset: the offset (max is 1000)
|
||||
@@ -186,22 +183,22 @@ class UserListCoreState extends State<UserListCore>
|
||||
},
|
||||
);
|
||||
|
||||
// ignore: public_member_api_docs
|
||||
/// Fetches initial users and updates the widget
|
||||
Future<void> loadData() => _usersBloc!.queryUsers(
|
||||
filter: widget.filter,
|
||||
sort: widget.sort,
|
||||
presence: widget.presence,
|
||||
pagination: widget.pagination,
|
||||
options: widget.options,
|
||||
);
|
||||
|
||||
// ignore: public_member_api_docs
|
||||
/// Fetches more users with updated pagination and updates the widget
|
||||
Future<void> paginateData() => _usersBloc!.queryUsers(
|
||||
filter: widget.filter,
|
||||
sort: widget.sort,
|
||||
presence: widget.presence,
|
||||
pagination: widget.pagination!.copyWith(
|
||||
offset: _usersBloc!.users?.length ?? 0,
|
||||
),
|
||||
options: widget.options,
|
||||
);
|
||||
|
||||
@override
|
||||
@@ -209,7 +206,7 @@ class UserListCoreState extends State<UserListCore>
|
||||
super.didUpdateWidget(oldWidget);
|
||||
if (widget.filter?.toString() != oldWidget.filter?.toString() ||
|
||||
jsonEncode(widget.sort) != jsonEncode(oldWidget.sort) ||
|
||||
widget.options?.toString() != oldWidget.options?.toString() ||
|
||||
widget.presence != oldWidget.presence ||
|
||||
widget.pagination?.toJson().toString() !=
|
||||
oldWidget.pagination?.toJson().toString()) {
|
||||
loadData();
|
||||
|
||||
@@ -63,7 +63,7 @@ class UsersBlocState extends State<UsersBloc>
|
||||
Future<void> queryUsers({
|
||||
Filter? filter,
|
||||
List<SortOption>? sort,
|
||||
Map<String, dynamic>? options,
|
||||
bool? presence,
|
||||
PaginationParams? pagination,
|
||||
}) async {
|
||||
final client = _streamChatCore.client;
|
||||
@@ -82,7 +82,7 @@ class UsersBlocState extends State<UsersBloc>
|
||||
final usersResponse = await client.queryUsers(
|
||||
filter: filter,
|
||||
sort: sort,
|
||||
options: options,
|
||||
presence: presence,
|
||||
pagination: pagination,
|
||||
);
|
||||
|
||||
|
||||
@@ -17,6 +17,10 @@ dependencies:
|
||||
rxdart: ^0.26.0
|
||||
stream_chat: ^2.0.0-nullsafety.1
|
||||
|
||||
dependency_overrides:
|
||||
stream_chat:
|
||||
path: ../stream_chat
|
||||
|
||||
dev_dependencies:
|
||||
fake_async: ^1.2.0
|
||||
flutter_test:
|
||||
|
||||
@@ -142,7 +142,11 @@ void main() {
|
||||
when(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: pagination,
|
||||
)).thenThrow(error);
|
||||
|
||||
@@ -162,7 +166,11 @@ void main() {
|
||||
verify(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: pagination,
|
||||
)).called(1);
|
||||
},
|
||||
@@ -191,7 +199,11 @@ void main() {
|
||||
when(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: pagination,
|
||||
)).thenAnswer((_) => Stream.value(channels));
|
||||
|
||||
@@ -211,7 +223,11 @@ void main() {
|
||||
verify(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: pagination,
|
||||
)).called(1);
|
||||
},
|
||||
@@ -240,7 +256,11 @@ void main() {
|
||||
when(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: pagination,
|
||||
)).thenAnswer((_) => Stream.value(channels));
|
||||
|
||||
@@ -260,7 +280,11 @@ void main() {
|
||||
verify(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: pagination,
|
||||
)).called(1);
|
||||
},
|
||||
@@ -297,7 +321,11 @@ void main() {
|
||||
when(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: pagination,
|
||||
)).thenAnswer((_) => Stream.value(channels));
|
||||
|
||||
@@ -321,7 +349,11 @@ void main() {
|
||||
verify(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: pagination,
|
||||
)).called(1);
|
||||
|
||||
@@ -335,7 +367,11 @@ void main() {
|
||||
when(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: updatedPagination,
|
||||
)).thenAnswer((_) => Stream.value(paginatedChannels));
|
||||
|
||||
@@ -355,7 +391,11 @@ void main() {
|
||||
verify(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: updatedPagination,
|
||||
)).called(1);
|
||||
},
|
||||
@@ -396,7 +436,11 @@ void main() {
|
||||
when(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: pagination,
|
||||
)).thenAnswer((_) => Stream.value(channels));
|
||||
|
||||
@@ -424,7 +468,11 @@ void main() {
|
||||
verify(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: pagination,
|
||||
)).called(1);
|
||||
|
||||
@@ -436,7 +484,11 @@ void main() {
|
||||
when(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: updatedPagination,
|
||||
)).thenAnswer((_) => Stream.value(updatedChannels));
|
||||
|
||||
@@ -451,7 +503,11 @@ void main() {
|
||||
verify(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: updatedPagination,
|
||||
)).called(1);
|
||||
},
|
||||
|
||||
@@ -114,7 +114,11 @@ void main() {
|
||||
when(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: any(named: 'paginationParams'),
|
||||
)).thenAnswer(
|
||||
(_) => Stream.fromIterable([offlineChannels, onlineChannels]),
|
||||
@@ -133,7 +137,11 @@ void main() {
|
||||
verify(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: any(named: 'paginationParams'),
|
||||
)).called(1);
|
||||
},
|
||||
@@ -176,7 +184,11 @@ void main() {
|
||||
when(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: any(named: 'paginationParams'),
|
||||
)).thenThrow(error);
|
||||
|
||||
@@ -190,7 +202,11 @@ void main() {
|
||||
verify(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: any(named: 'paginationParams'),
|
||||
)).called(1);
|
||||
},
|
||||
@@ -228,7 +244,11 @@ void main() {
|
||||
when(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: any(named: 'paginationParams'),
|
||||
)).thenAnswer((_) => Stream.value(channels));
|
||||
|
||||
@@ -245,7 +265,11 @@ void main() {
|
||||
verify(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: any(named: 'paginationParams'),
|
||||
)).called(1);
|
||||
|
||||
@@ -257,7 +281,11 @@ void main() {
|
||||
when(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: paginationParams,
|
||||
)).thenAnswer(
|
||||
(_) => Stream.value(newChannels),
|
||||
@@ -279,7 +307,11 @@ void main() {
|
||||
verify(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: paginationParams,
|
||||
)).called(1);
|
||||
},
|
||||
@@ -320,7 +352,11 @@ void main() {
|
||||
when(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: paginationParams,
|
||||
)).thenAnswer((_) => Stream.value(channels));
|
||||
|
||||
@@ -336,7 +372,11 @@ void main() {
|
||||
verify(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: paginationParams,
|
||||
)).called(1);
|
||||
|
||||
@@ -345,7 +385,11 @@ void main() {
|
||||
when(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: paginationParams,
|
||||
)).thenThrow(error);
|
||||
|
||||
@@ -359,7 +403,11 @@ void main() {
|
||||
verify(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: paginationParams,
|
||||
)).called(1);
|
||||
},
|
||||
@@ -404,7 +452,11 @@ void main() {
|
||||
when(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: any(named: 'paginationParams'),
|
||||
)).thenAnswer(
|
||||
(_) => Stream.value(channels),
|
||||
@@ -415,7 +467,11 @@ void main() {
|
||||
verify(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: any(named: 'paginationParams'),
|
||||
)).called(1);
|
||||
|
||||
@@ -476,7 +532,11 @@ void main() {
|
||||
when(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: any(named: 'paginationParams'),
|
||||
)).thenAnswer(
|
||||
(_) => Stream.value(channels),
|
||||
@@ -487,11 +547,16 @@ void main() {
|
||||
verify(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: any(named: 'paginationParams'),
|
||||
)).called(1);
|
||||
|
||||
final channelDeletedOrNotificationRemovedEvent = Event(
|
||||
type: EventType.channelDeleted,
|
||||
channel: EventChannel(
|
||||
cid: channels.first.cid!,
|
||||
updatedAt: DateTime.now(),
|
||||
@@ -557,7 +622,11 @@ void main() {
|
||||
when(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: any(named: 'paginationParams'),
|
||||
)).thenAnswer(
|
||||
(_) => Stream.value(channels),
|
||||
@@ -568,7 +637,11 @@ void main() {
|
||||
verify(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: any(named: 'paginationParams'),
|
||||
)).called(1);
|
||||
|
||||
@@ -648,7 +721,11 @@ void main() {
|
||||
when(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: any(named: 'paginationParams'),
|
||||
)).thenAnswer(
|
||||
(_) => Stream.value(channels),
|
||||
@@ -659,7 +736,11 @@ void main() {
|
||||
verify(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: any(named: 'paginationParams'),
|
||||
)).called(1);
|
||||
|
||||
@@ -735,7 +816,11 @@ void main() {
|
||||
when(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: any(named: 'paginationParams'),
|
||||
)).thenAnswer(
|
||||
(_) => Stream.value(channels),
|
||||
@@ -746,7 +831,11 @@ void main() {
|
||||
verify(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: any(named: 'paginationParams'),
|
||||
)).called(1);
|
||||
|
||||
@@ -813,7 +902,11 @@ void main() {
|
||||
when(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: any(named: 'paginationParams'),
|
||||
)).thenAnswer(
|
||||
(_) => Stream.value(channels),
|
||||
@@ -824,7 +917,11 @@ void main() {
|
||||
verify(() => mockClient.queryChannels(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
state: any(named: 'state'),
|
||||
watch: any(named: 'watch'),
|
||||
presence: any(named: 'presence'),
|
||||
memberLimit: any(named: 'memberLimit'),
|
||||
messageLimit: any(named: 'messageLimit'),
|
||||
paginationParams: any(named: 'paginationParams'),
|
||||
)).called(1);
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ void main() {
|
||||
);
|
||||
|
||||
testWidgets(
|
||||
'didChangeAppLifecycleState should call client.disconnect() and return '
|
||||
'didChangeAppLifecycleState should call client.closeConnection and return '
|
||||
'if onBackgroundEventReceived is null and the widget lifestyle changes to '
|
||||
'AppLifecycleState.paused',
|
||||
(tester) async {
|
||||
@@ -69,7 +69,7 @@ void main() {
|
||||
expect(find.byKey(streamChatCoreKey), findsOneWidget);
|
||||
expect(find.byKey(childKey), findsOneWidget);
|
||||
|
||||
when(() => mockClient.disconnect()).thenAnswer((_) async {
|
||||
when(() => mockClient.closeConnection()).thenAnswer((_) async {
|
||||
return;
|
||||
});
|
||||
|
||||
@@ -79,7 +79,7 @@ void main() {
|
||||
|
||||
streamChatCoreState.didChangeAppLifecycleState(AppLifecycleState.paused);
|
||||
|
||||
verify(() => mockClient.disconnect()).called(1);
|
||||
verify(() => mockClient.closeConnection()).called(1);
|
||||
},
|
||||
);
|
||||
|
||||
@@ -107,9 +107,9 @@ void main() {
|
||||
expect(find.byKey(streamChatCoreKey), findsOneWidget);
|
||||
expect(find.byKey(childKey), findsOneWidget);
|
||||
|
||||
final event = Event();
|
||||
final event = Event(type: EventType.any);
|
||||
when(() => mockClient.on()).thenAnswer((_) => Stream.value(event));
|
||||
when(() => mockClient.disconnect()).thenAnswer((_) async {
|
||||
when(() => mockClient.closeConnection()).thenAnswer((_) async {
|
||||
return;
|
||||
});
|
||||
|
||||
@@ -126,7 +126,7 @@ void main() {
|
||||
|
||||
await Future.delayed(backgroundKeepAlive);
|
||||
|
||||
verify(() => mockClient.disconnect()).called(1);
|
||||
verify(() => mockClient.closeConnection()).called(1);
|
||||
verifyNever(() => mockOnBackgroundEventReceived.call(event));
|
||||
});
|
||||
},
|
||||
@@ -156,7 +156,7 @@ void main() {
|
||||
expect(find.byKey(streamChatCoreKey), findsOneWidget);
|
||||
expect(find.byKey(childKey), findsOneWidget);
|
||||
|
||||
final event = Event();
|
||||
final event = Event(type: EventType.any);
|
||||
when(() => mockClient.on()).thenAnswer((_) => Stream.value(event));
|
||||
|
||||
final streamChatCoreState = tester.state<StreamChatCoreState>(
|
||||
@@ -198,10 +198,10 @@ void main() {
|
||||
expect(find.byKey(streamChatCoreKey), findsOneWidget);
|
||||
expect(find.byKey(childKey), findsOneWidget);
|
||||
|
||||
final event = Event();
|
||||
final event = Event(type: EventType.any);
|
||||
when(() => mockClient.on()).thenAnswer((_) => Stream.value(event));
|
||||
when(() => mockClient.connect()).thenAnswer((_) async => event);
|
||||
when(mockClient.disconnect).thenAnswer((_) async => null);
|
||||
when(() => mockClient.openConnection()).thenAnswer((_) async => event);
|
||||
when(() => mockClient.closeConnection()).thenAnswer((_) async => null);
|
||||
when(() => mockClient.wsConnectionStatus)
|
||||
.thenReturn(ConnectionStatus.disconnected);
|
||||
|
||||
@@ -217,7 +217,7 @@ void main() {
|
||||
streamChatCoreState
|
||||
.didChangeAppLifecycleState(AppLifecycleState.resumed);
|
||||
|
||||
verify(() => mockClient.connect()).called(1);
|
||||
verify(() => mockClient.openConnection()).called(1);
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
@@ -134,7 +134,7 @@ void main() {
|
||||
when(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: any(named: 'pagination'),
|
||||
)).thenThrow(error);
|
||||
|
||||
@@ -154,7 +154,7 @@ void main() {
|
||||
verify(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: any(named: 'pagination'),
|
||||
)).called(1);
|
||||
},
|
||||
@@ -179,7 +179,7 @@ void main() {
|
||||
when(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: any(named: 'pagination'),
|
||||
)).thenAnswer((_) async => QueryUsersResponse()..users = users);
|
||||
|
||||
@@ -199,7 +199,7 @@ void main() {
|
||||
verify(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: any(named: 'pagination'),
|
||||
)).called(1);
|
||||
},
|
||||
@@ -224,7 +224,7 @@ void main() {
|
||||
when(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: any(named: 'pagination'),
|
||||
)).thenAnswer((_) async => QueryUsersResponse()..users = users);
|
||||
|
||||
@@ -244,7 +244,7 @@ void main() {
|
||||
verify(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: any(named: 'pagination'),
|
||||
)).called(1);
|
||||
},
|
||||
@@ -283,7 +283,7 @@ void main() {
|
||||
when(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: any(named: 'pagination'),
|
||||
)).thenAnswer((_) async => QueryUsersResponse()..users = users);
|
||||
|
||||
@@ -310,7 +310,7 @@ void main() {
|
||||
verify(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: any(named: 'pagination'),
|
||||
)).called(1);
|
||||
},
|
||||
@@ -352,7 +352,7 @@ void main() {
|
||||
when(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: any(named: 'pagination'),
|
||||
)).thenAnswer((_) async => QueryUsersResponse()..users = users);
|
||||
|
||||
@@ -379,7 +379,7 @@ void main() {
|
||||
verify(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: any(named: 'pagination'),
|
||||
)).called(1);
|
||||
|
||||
@@ -393,7 +393,7 @@ void main() {
|
||||
when(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: updatedPagination,
|
||||
))
|
||||
.thenAnswer(
|
||||
@@ -411,7 +411,7 @@ void main() {
|
||||
verify(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: updatedPagination,
|
||||
)).called(1);
|
||||
},
|
||||
@@ -457,7 +457,7 @@ void main() {
|
||||
when(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: any(named: 'pagination'),
|
||||
)).thenAnswer((_) async => QueryUsersResponse()..users = users);
|
||||
|
||||
@@ -488,7 +488,7 @@ void main() {
|
||||
verify(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: any(named: 'pagination'),
|
||||
)).called(1);
|
||||
|
||||
@@ -500,7 +500,7 @@ void main() {
|
||||
when(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: updatedPagination,
|
||||
))
|
||||
.thenAnswer((_) async => QueryUsersResponse()..users = updatedUsers);
|
||||
@@ -515,7 +515,7 @@ void main() {
|
||||
verify(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: updatedPagination,
|
||||
)).called(1);
|
||||
},
|
||||
|
||||
@@ -72,7 +72,7 @@ void main() {
|
||||
when(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: any(named: 'pagination'),
|
||||
)).thenAnswer((_) async => QueryUsersResponse()..users = users);
|
||||
|
||||
@@ -86,7 +86,7 @@ void main() {
|
||||
verify(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: any(named: 'pagination'),
|
||||
)).called(1);
|
||||
},
|
||||
@@ -121,7 +121,7 @@ void main() {
|
||||
when(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: any(named: 'pagination'),
|
||||
)).thenThrow(error);
|
||||
|
||||
@@ -135,7 +135,7 @@ void main() {
|
||||
verify(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: any(named: 'pagination'),
|
||||
)).called(1);
|
||||
},
|
||||
@@ -171,7 +171,7 @@ void main() {
|
||||
when(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: any(named: 'pagination'),
|
||||
)).thenAnswer((_) async => QueryUsersResponse()..users = users);
|
||||
|
||||
@@ -185,7 +185,7 @@ void main() {
|
||||
verify(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: any(named: 'pagination'),
|
||||
)).called(1);
|
||||
|
||||
@@ -196,7 +196,7 @@ void main() {
|
||||
when(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: pagination,
|
||||
))
|
||||
.thenAnswer(
|
||||
@@ -218,7 +218,7 @@ void main() {
|
||||
verify(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: pagination,
|
||||
)).called(1);
|
||||
},
|
||||
@@ -254,7 +254,7 @@ void main() {
|
||||
when(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: any(named: 'pagination'),
|
||||
)).thenAnswer((_) async => QueryUsersResponse()..users = users);
|
||||
|
||||
@@ -268,7 +268,7 @@ void main() {
|
||||
verify(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: any(named: 'pagination'),
|
||||
)).called(1);
|
||||
|
||||
@@ -280,7 +280,7 @@ void main() {
|
||||
when(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: pagination,
|
||||
)).thenThrow(error);
|
||||
|
||||
@@ -294,7 +294,7 @@ void main() {
|
||||
verify(() => mockClient.queryUsers(
|
||||
filter: any(named: 'filter'),
|
||||
sort: any(named: 'sort'),
|
||||
options: any(named: 'options'),
|
||||
presence: any(named: 'presence'),
|
||||
pagination: pagination,
|
||||
)).called(1);
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user