diff --git a/app/src/main/java/app/fedilab/android/client/entities/app/StatusCache.java b/app/src/main/java/app/fedilab/android/client/entities/app/StatusCache.java index 7d5e3fed..c51b3bb8 100644 --- a/app/src/main/java/app/fedilab/android/client/entities/app/StatusCache.java +++ b/app/src/main/java/app/fedilab/android/client/entities/app/StatusCache.java @@ -652,6 +652,7 @@ public class StatusCache { List statusList = new ArrayList<>(); while (c.moveToNext()) { Status status = convertCursorToStatus(c); + status.cached = true; statusList.add(status); } //Close the cursor @@ -674,6 +675,7 @@ public class StatusCache { List notificationList = new ArrayList<>(); while (c.moveToNext()) { Notification notification = convertCursorToNotification(c); + notification.cached = true; notificationList.add(notification); } //Close the cursor @@ -697,6 +699,7 @@ public class StatusCache { List conversationList = new ArrayList<>(); while (c.moveToNext()) { Conversation conversation = convertCursorToConversation(c); + conversation.cached = true; conversationList.add(conversation); } //Close the cursor diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java index 598e4d54..8d58fa05 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/timeline/FragmentMastodonTimeline.java @@ -425,8 +425,6 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. mLayoutManager.setOrientation(LinearLayoutManager.VERTICAL); binding.recyclerView.setLayoutManager(mLayoutManager); binding.recyclerView.setAdapter(statusAdapter); - //Fetching new messages - route(DIRECTION.FETCH_NEW, true); if (searchCache == null && timelineType != Timeline.TimeLineEnum.TREND_MESSAGE) { binding.recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { @@ -461,6 +459,10 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. } } }); + //For home (first tab) we fetch new messages + if (timelineType == Timeline.TimeLineEnum.HOME) { + route(DIRECTION.FETCH_NEW, true); + } } } @@ -576,11 +578,16 @@ public class FragmentMastodonTimeline extends Fragment implements StatusAdapter. } SharedPreferences sharedpreferences = PreferenceManager.getDefaultSharedPreferences(requireActivity()); boolean useCache = sharedpreferences.getBoolean(getString(R.string.SET_USE_CACHE), true); - if (useCache && direction != DIRECTION.SCROLL_TOP && direction != DIRECTION.FETCH_NEW) { - getCachedStatus(direction, fetchingMissing, timelineParams); - } else { - getLiveStatus(direction, fetchingMissing, timelineParams, status); - } + + Handler handler = new Handler(); + //The action for fetching new messages is delayed for other timelines than HOME + handler.postDelayed(() -> { + if (useCache && direction != DIRECTION.SCROLL_TOP && direction != DIRECTION.FETCH_NEW) { + getCachedStatus(direction, fetchingMissing, timelineParams); + } else { + getLiveStatus(direction, fetchingMissing, timelineParams, status); + } + }, timelineType == Timeline.TimeLineEnum.HOME ? 0 : 1000); } diff --git a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/TimelinesVM.java b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/TimelinesVM.java index b34655e3..fa3199bc 100644 --- a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/TimelinesVM.java +++ b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/TimelinesVM.java @@ -461,7 +461,6 @@ public class TimelinesVM extends AndroidViewModel { List notPresentStatuses = new ArrayList<>(); for (Status status : statuses.statuses) { if (!timelineStatuses.contains(status)) { - status.cached = true; notPresentStatuses.add(status); } }