Skip to content

Instantly share code, notes, and snippets.

class LiveStreamActivity : AppCompatActivity(R.layout.activity_main) {
private val adapter = MessagesListAdapter()
private val messageListSmoothScroller by lazy {
object : LinearSmoothScroller(this) {
val MILLISECONDS_PER_INCH = 400f
override fun calculateSpeedPerPixel(displayMetrics: DisplayMetrics?): Float {
return MILLISECONDS_PER_INCH / displayMetrics!!.densityDpi
}
private fun updateMessagesList(messages: List<Message>) {
adapter.submitList(messages)
adapter.notifyDataSetChanged()
val scrollTarget = adapter.itemCount
messageListSmoothScroller.targetPosition = scrollTarget
messagesList.layoutManager?.startSmoothScroll(messageListSmoothScroller)
}
@samiuelson
samiuelson / ChannelFragment.kt
Created November 13, 2020 18:10
Customize Stream Android single message viewholder
class ChannelFragment : Fragment() {
//...
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
binding.messageListView.setMessageViewHolderFactory(MyCustomMessageViewHolderFactory())
}
}