Commit f9c3393c authored by Thomas's avatar Thomas
Browse files

Some improvements with timelines

parent 50f9cb2b
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -652,6 +652,7 @@ public class StatusCache {
        List<Status> 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<Notification> 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<Conversation> conversationList = new ArrayList<>();
        while (c.moveToNext()) {
            Conversation conversation = convertCursorToConversation(c);
            conversation.cached = true;
            conversationList.add(conversation);
        }
        //Close the cursor
+14 −7
Original line number Diff line number Diff line
@@ -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);

        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);

    }

+0 −1
Original line number Diff line number Diff line
@@ -461,7 +461,6 @@ public class TimelinesVM extends AndroidViewModel {
                        List<Status> notPresentStatuses = new ArrayList<>();
                        for (Status status : statuses.statuses) {
                            if (!timelineStatuses.contains(status)) {
                                status.cached = true;
                                notPresentStatuses.add(status);
                            }
                        }