sayHello method
Future<void>
sayHello(
- String friendId,
- Message message, {
- Profile? profile,
- ChatSilentNotification? notification,
- OnChatPageOpeningCallback<
Object?> ? callback, - VerifyToSendMessage? verifyToSend,
- OnDeniedToSendMessage? onDeniedToSend,
Implementation
Future<void> sayHello(
String friendId,
Message message, {
Profile? profile,
ChatSilentNotification? notification,
OnChatPageOpeningCallback? callback,
VerifyToSendMessage? verifyToSend,
OnDeniedToSendMessage? onDeniedToSend,
}) async {
try {
if (profile != null && profile.id.isNotEmpty) {
mappedProfiles[profile.id] = profile;
}
final target = await createOrGetThread([friendId]);
if (target.isEmpty) return;
if (verifyToSend != null && !verifyToSend(target)) {
onDeniedToSend?.call(target);
return;
}
final mgr = managerForRoom(target);
await mgr.send(
message,
verifyToSend: verifyToSend,
onDeniedToSend: onDeniedToSend,
notification: notification,
);
if (callback != null) {
mgr.connect();
try {
await callback(mgr);
} finally {
mgr.disconnect();
}
}
} catch (e, st) {
errorReporter.report(
e,
stackTrace: st,
source: 'RoomManager.sayHello',
context: {'friendId': friendId},
);
}
}