From 7435d38d7b5aa51265784c038d8b489cc0d9b603 Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Mon, 5 Oct 2020 17:43:56 +0300 Subject: [PATCH] ChatsFragment: fix list not rendering sometimes --- .../com/keylesspalace/tusky/fragment/ChatsFragment.kt | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/fragment/ChatsFragment.kt b/app/src/main/java/com/keylesspalace/tusky/fragment/ChatsFragment.kt index a3107454..78c267d1 100644 --- a/app/src/main/java/com/keylesspalace/tusky/fragment/ChatsFragment.kt +++ b/app/src/main/java/com/keylesspalace/tusky/fragment/ChatsFragment.kt @@ -13,6 +13,7 @@ import androidx.lifecycle.Lifecycle import androidx.preference.PreferenceManager import androidx.recyclerview.widget.* import androidx.swiperefreshlayout.widget.SwipeRefreshLayout.OnRefreshListener +import at.connyduck.sparkbutton.helpers.Utils import com.keylesspalace.tusky.BottomSheetActivity import com.keylesspalace.tusky.PostLookupFallbackBehavior import com.keylesspalace.tusky.R @@ -95,8 +96,13 @@ class ChatsFragment : BaseFragment(), Injectable, RefreshableFragment, Reselecta if (isAdded) { Log.d(TAG, "onInserted"); adapter.notifyItemRangeInserted(position, count) - if (position == 0 && context != null) { - recyclerView.scrollToPosition(0) + // scroll up when new items at the top are loaded while being in the first position + // https://github.com/tuskyapp/Tusky/pull/1905#issuecomment-677819724 + if (position == 0 && context != null && adapter.itemCount != count) { + if (isSwipeToRefreshEnabled) + recyclerView.scrollBy(0, Utils.dpToPx(context!!, -30)); + else + recyclerView.scrollToPosition(0); } } }