mirror of
https://github.com/nextcloud/talk-android
synced 2025-07-04 19:39:47 +01:00
ChatView scrolling fix
When returning to a chat window from the conversation info screen the focus will stay at the bottom of the page, i.e. the most recent. Signed-off-by: Daniel Bailey <daniel.bailey@grappleIT.co.uk>
This commit is contained in:
parent
56b553a690
commit
669ed1789e
@ -29,7 +29,6 @@ import android.content.Intent
|
|||||||
import android.content.res.Resources
|
import android.content.res.Resources
|
||||||
import android.graphics.PorterDuff
|
import android.graphics.PorterDuff
|
||||||
import android.graphics.drawable.ColorDrawable
|
import android.graphics.drawable.ColorDrawable
|
||||||
import android.graphics.drawable.Drawable
|
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.text.Editable
|
import android.text.Editable
|
||||||
@ -49,7 +48,6 @@ import androidx.recyclerview.widget.RecyclerView
|
|||||||
import coil.ImageLoader
|
import coil.ImageLoader
|
||||||
import coil.api.load
|
import coil.api.load
|
||||||
import coil.api.loadAny
|
import coil.api.loadAny
|
||||||
import coil.target.Target
|
|
||||||
import coil.transform.CircleCropTransformation
|
import coil.transform.CircleCropTransformation
|
||||||
import com.bluelinelabs.conductor.RouterTransaction
|
import com.bluelinelabs.conductor.RouterTransaction
|
||||||
import com.bluelinelabs.conductor.archlifecycle.ControllerLifecycleOwner
|
import com.bluelinelabs.conductor.archlifecycle.ControllerLifecycleOwner
|
||||||
@ -71,13 +69,14 @@ import com.nextcloud.talk.newarch.local.models.getMaxMessageLength
|
|||||||
import com.nextcloud.talk.newarch.local.models.toUserEntity
|
import com.nextcloud.talk.newarch.local.models.toUserEntity
|
||||||
import com.nextcloud.talk.newarch.mvvm.BaseView
|
import com.nextcloud.talk.newarch.mvvm.BaseView
|
||||||
import com.nextcloud.talk.newarch.mvvm.ext.initRecyclerView
|
import com.nextcloud.talk.newarch.mvvm.ext.initRecyclerView
|
||||||
import com.nextcloud.talk.newarch.utils.swipe.ChatMessageSwipeCallback
|
|
||||||
import com.nextcloud.talk.newarch.utils.Images
|
|
||||||
import com.nextcloud.talk.newarch.utils.NetworkComponents
|
import com.nextcloud.talk.newarch.utils.NetworkComponents
|
||||||
|
import com.nextcloud.talk.newarch.utils.swipe.ChatMessageSwipeCallback
|
||||||
import com.nextcloud.talk.newarch.utils.swipe.ChatMessageSwipeInterface
|
import com.nextcloud.talk.newarch.utils.swipe.ChatMessageSwipeInterface
|
||||||
import com.nextcloud.talk.presenters.MentionAutocompletePresenter
|
import com.nextcloud.talk.presenters.MentionAutocompletePresenter
|
||||||
import com.nextcloud.talk.utils.*
|
|
||||||
import com.nextcloud.talk.utils.AccountUtils.canWeOpenFilesApp
|
import com.nextcloud.talk.utils.AccountUtils.canWeOpenFilesApp
|
||||||
|
import com.nextcloud.talk.utils.DateUtils
|
||||||
|
import com.nextcloud.talk.utils.DrawableUtils
|
||||||
|
import com.nextcloud.talk.utils.MagicCharPolicy
|
||||||
import com.nextcloud.talk.utils.bundle.BundleKeys
|
import com.nextcloud.talk.utils.bundle.BundleKeys
|
||||||
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ACCOUNT
|
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_ACCOUNT
|
||||||
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_BROWSER_TYPE
|
import com.nextcloud.talk.utils.bundle.BundleKeys.KEY_BROWSER_TYPE
|
||||||
@ -153,6 +152,10 @@ class ChatView(private val bundle: Bundle) : BaseView(), ImageLoaderInterface {
|
|||||||
super.onItemRangeInserted(positionStart, itemCount)
|
super.onItemRangeInserted(positionStart, itemCount)
|
||||||
val layoutManager = view.messagesRecyclerView.layoutManager as LinearLayoutManager
|
val layoutManager = view.messagesRecyclerView.layoutManager as LinearLayoutManager
|
||||||
|
|
||||||
|
if (layoutManager.findLastVisibleItemPosition() == RecyclerView.NO_POSITION) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if (layoutManager.findLastVisibleItemPosition() == positionStart - 1) {
|
if (layoutManager.findLastVisibleItemPosition() == positionStart - 1) {
|
||||||
view.messagesRecyclerView.post {
|
view.messagesRecyclerView.post {
|
||||||
view.messagesRecyclerView.smoothScrollToPosition(positionStart + 1)
|
view.messagesRecyclerView.smoothScrollToPosition(positionStart + 1)
|
||||||
|
Loading…
Reference in New Issue
Block a user