initVM method
Implementation
Future<void> initVM() async {
log("initVM");
var accessToken = Provider.of<UserVM>(
NavigationService.navigatorKey.currentContext!,
listen: false)
.accessToken;
await channelRepoImp.initRepo(accessToken);
await channelRepoImp.listenToChannel((messages) {
///get channel where channel id == new message channelId
var channel = _amityChannelList.firstWhere((amityMessage) =>
amityMessage.channelId == messages.messages?[0].channelId);
log("${channel.channelId} got new message from ${messages.messages![0].userId}");
channel.lastActivity = messages.messages![0].createdAt;
channel.setLatestMessage(
messages.messages![0].data!.text ?? "Not Text message: 📷");
if (messages.messages![0].userId !=
AmityCoreClient.getCurrentUser().userId) {
///add unread count by 1
channel.setUnreadCount(channel.unreadCount + 1);
}
//move channel to the top
_amityChannelList.remove(channel);
_amityChannelList.insert(0, channel);
notifyListeners();
});
await channelRepoImp.listenToChannelList((channel) {
_amityChannelList.insert(0, channel);
notifyListeners();
});
await refreshChannels();
}