Как получить количество неиспользованных сообщений
Здравствуйте, я интегрирую Twilio на Android, и мне нужно отобразить счетчик неиспользованных сообщений с именем канала ниже, это мой фрагмент кода, но каждый раз, когда я получаю счет ноль (0), пожалуйста, помогите мне
channel.getUnconsumedMessagesCount(new CallbackListener<Long>() {
@Override
public void onSuccess(Long aLong) {
unreadCountTextView.setText(String.valueOf(aLong));
}
});
2 ответа
Twilio разработчик евангелист здесь.
Похоже, вам может потребоваться установить горизонт потребления на канале - чат не делает этого автоматически для вас. Из документов наConsumption Horizon
, "Если для пользователя не настроен горизонт потребления на канале, получение неиспользованных сообщений всегда будет возвращать 0."
Согласно новому Twilio Conversation API, прослушиватель прогресса больше не работает, поэтому вы можете рассчитать количество следующим образом:
Этот код будет работать, если у вас есть только один канал или несколько каналов, поэтому он будет возвращать количество всех неизрасходованных сообщений разговора.
Котлин:
lifecycleScope.launch {
val messageChannel = Channel<Int>()
val allChannels = (get my conversation from conversationClient)
allChannels?.let { item ->
item.forEach { channel ->
// Get unconsummed message count
channel.getUnreadMessagesCount { count ->
count?.let { no ->
launch {messageChannel.send(no.toInt())}
}
}
}
//Observe channel to assure that above callbacks returned data
var msgsCount = 0
val messageReceive = launch {
repeat(item.size) {
msgsCount += messageChannel.receive()
}
}
messageReceive.join()
log.i("Total message count", msgsCount)
}
}