Skip to content
Snippets Groups Projects
Verified Commit 6d8c45b5 authored by Janne Mareike Koschinski's avatar Janne Mareike Koschinski
Browse files

Fixes #100

parent 02480299
No related branches found
No related tags found
No related merge requests found
......@@ -163,6 +163,9 @@ class ChatlineFragment : ServiceBoundFragment() {
messageHistory.adapter = messageHistoryAdapter
viewModel.recentlySentMessages.toLiveData()
.observe(this, Observer(messageHistoryAdapter::submitList))
messageHistoryAdapter.setOnUpdateFinishedListener {
messageHistory.scrollToPosition(0)
}
fun send() {
if (chatline.safeText.isNotBlank()) {
......
......@@ -24,11 +24,11 @@ import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
import butterknife.BindView
import butterknife.ButterKnife
import de.kuschku.quasseldroid.R
import de.kuschku.quasseldroid.util.lists.ListAdapter
class MessageHistoryAdapter : ListAdapter<CharSequence, MessageHistoryAdapter.MessageViewHolder>(
object : DiffUtil.ItemCallback<CharSequence>() {
......@@ -39,17 +39,26 @@ class MessageHistoryAdapter : ListAdapter<CharSequence, MessageHistoryAdapter.Me
oldItem == newItem
}) {
private var clickListener: ((CharSequence) -> Unit)? = null
private var updateFinishedListener: (() -> Unit)? = null
fun setOnItemClickListener(listener: (CharSequence) -> Unit) {
fun setOnItemClickListener(listener: ((CharSequence) -> Unit)?) {
this.clickListener = listener
}
fun setOnUpdateFinishedListener(listener: (() -> Unit)?) {
this.updateFinishedListener = listener
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) =
MessageViewHolder(
LayoutInflater.from(parent.context).inflate(R.layout.widget_history_message, parent, false),
clickListener = clickListener
)
override fun onUpdateFinished(list: List<CharSequence>) {
updateFinishedListener?.invoke()
}
override fun onBindViewHolder(holder: MessageViewHolder, position: Int) =
holder.bind(getItem(position))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment