1-й Рустам
2-я Галина
3-й Эдуард
4-й Яков
5-я Карина
Объяснение:
Всего 5 бегунов.
Бегун Номер по финишированию
Рустам r≠2
Эдуард e=r+2
Яков a≠1
Галина g≠1; g≠5
Карина k=a+1
e=r+2 ⇒ r≤5-2=3 ⇒ ( r=1 и e=3 ) или ( r=3 и e=5 )
g≠1; g≠5 ⇒ g=2 или g=3 или g=4
k=a+1 и a≠1 ⇒ a≤5-1=4 ⇒ ( a=2 и k=3 ) или (a=3 и k=4 ) или ( a=4 и k=5 )
Только Рустам может быть на 1 месте. Значит Эдуард 3-й. Поскольку 3 место занято, то вариантов ( a=2 и k=3 ) или (a=3 и k=4 ) не может быть. Значит Яков 4-й и Карина 5-я. Осталось свободное только 2-е место, значит Галина на 2-м.
ответ:Для начала в onCreate() уберите эту строку:
chatContainer.clear()
Нет смысла чистить только созданный пустой список. Дальше я бы вам советовал следующим образом. Для начала при объявлении адаптера не нужно сразу ему передавать список:
lateinit var adapter: RecyclerChatAdapter
Дальше как только ваш список заполнен вы это проверяете в цикле и инициализируете адаптер:
when {
documentSnapshot != null -> {
for (dc in documentSnapshot.documentChanges) {
when (dc.type) {
DocumentChange.Type.ADDED -> {
val chat = dc.document.toObject(Chat::class.java)
chatContainer.add(chat) // Добавление данных в Recycler
if(chatContainer.size == documentSnapshot.documentChanges)
{
adapter = RecyclerChatAdapter(chatContainer)
}
}
}
}
}
}
и дальше сеттинг адаптера как и было у вас в вашем примере. Так же второй вариант как решить вашу проблему, но не уверен что получится, можно в цикле там где вы выводите сообщение в лог обновлять адаптер:
for (i in chatContainer) {
adapter.notifyDataSetChanged()
}