From 35644dd7a2acfca4e3bafdff09ad2ca20f9980ba Mon Sep 17 00:00:00 2001 From: Konrad Pozniak Date: Fri, 21 Aug 2020 18:51:05 +0200 Subject: [PATCH] fix notifications sometimes not rendering (#1905) * fix notifications sometimes not rendering * fix empty timeline fragment as well * add link to github issue as explanation --- .../keylesspalace/tusky/fragment/NotificationsFragment.java | 5 +++-- .../com/keylesspalace/tusky/fragment/TimelineFragment.java | 4 +++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/keylesspalace/tusky/fragment/NotificationsFragment.java b/app/src/main/java/com/keylesspalace/tusky/fragment/NotificationsFragment.java index feabe041..3d420fb1 100644 --- a/app/src/main/java/com/keylesspalace/tusky/fragment/NotificationsFragment.java +++ b/app/src/main/java/com/keylesspalace/tusky/fragment/NotificationsFragment.java @@ -75,7 +75,6 @@ import com.keylesspalace.tusky.util.ListUtils; import com.keylesspalace.tusky.util.NotificationTypeConverterKt; import com.keylesspalace.tusky.util.PairedList; import com.keylesspalace.tusky.util.StatusDisplayOptions; -import com.keylesspalace.tusky.util.ThemeUtils; import com.keylesspalace.tusky.util.ViewDataUtils; import com.keylesspalace.tusky.view.BackgroundMessageView; import com.keylesspalace.tusky.view.EndlessOnScrollListener; @@ -1275,7 +1274,9 @@ public class NotificationsFragment extends SFragment implements if (isAdded()) { adapter.notifyItemRangeInserted(position, count); Context context = getContext(); - if (position == 0 && context != null) { + // scroll up when new items at the top are loaded while being at the start + // https://github.com/tuskyapp/Tusky/pull/1905#issuecomment-677819724 + if (position == 0 && context != null && adapter.getItemCount() != count) { recyclerView.scrollBy(0, Utils.dpToPx(context, -30)); } } diff --git a/app/src/main/java/com/keylesspalace/tusky/fragment/TimelineFragment.java b/app/src/main/java/com/keylesspalace/tusky/fragment/TimelineFragment.java index 7aeb2325..a1e6213b 100644 --- a/app/src/main/java/com/keylesspalace/tusky/fragment/TimelineFragment.java +++ b/app/src/main/java/com/keylesspalace/tusky/fragment/TimelineFragment.java @@ -1448,7 +1448,9 @@ public class TimelineFragment extends SFragment implements if (isAdded()) { adapter.notifyItemRangeInserted(position, count); Context context = getContext(); - if (position == 0 && context != null) { + // 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.getItemCount() != count) { if (isSwipeToRefreshEnabled) recyclerView.scrollBy(0, Utils.dpToPx(context, -30)); else