-
-
Notifications
You must be signed in to change notification settings - Fork 390
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Timeline improvements #2788
Comments
Make it two options :
Depending on the sort order tusky could fill the gap in the same way. If you want newest on top, fill the gap backwards. If you want oldest on top have it get the next in line and work your way up to the newest toots. No matter how many toots you load on refresh, keep the old position and last read toot focussed. |
My desired user experience is:
EDIT: So, I think pretty much exactly what yoshimo wrote :) (plus »n unread toots« ;)). |
+1 for @Vilinthril |
If you add a counter of unread toots, it could jump to the newest toot if you tab it. |
I would like to add one wish, if I may: |
Yes, precisely! That was (part of) what I meant by “Either way, ideally, the app would “anchor” my position in the timeline/list at the last point I had read to and would silently load new toots on top of it, without jumping around while doing that.”, but thank you for clarifying if I had not made my point adequately. :) |
Related to that; without needing to tap "show more" of a long post either. |
Fun workaround if you read from bottom to top: move the "load more" button to the top, press it and immediately scroll down so that the load indicator is not visible anymore because it's hidden at the top -> tusky will add the items above it but keep the current position -> scroll back up the few lines to the next "load more" button and repeat until no more "load more" button... |
Just including the reasoning for a forward chronological order from my issue that has been merged into this one. I'm not entirely happy with having all the different timeline issues merged into one mega-issue, as it makes it more likely that one request will be left out of a PR that closes this issue, and also makes the effort required to address this issue a big hurdle to jump over: Corporate media has gotten us accustomed to algorithm-driven feeds where what's important is the latest trending things. We see the end of a conversation first, without the background, and tend to react, increasing drama and "engagement", rather than understanding and reasoned vision. On the other hand, when reading a history book, we tend to start at the early points of a timeline and track the changing situation as it unfolds over time, so we have an understanding of how we got to where we are. Some individual posts take up more than a screen, so to read the feed, we need to scroll up to the start of a post, then scroll down as we read it, then scroll all the way back up past it to get to the next post. Please, can we have an option to put the timelines in forward chronological order, to enhance understanding, reduce unnecessary drama, and reduce annoying back and forth scrolling? |
Been thinking about that, I'm not sure it's possible. I've got it down to the following two preferences. Note: I think these preferences can be implemented independently of one another. New pref: Timeline orderOptions are:
The current behaviour is "Reverse chronological" Note that New pref: "How to load statuses"Options are:
The current behaviour is "Load newest" (newest posts are loaded). To get a complete timeline the user has to click "Load more" repeatedly, and can then start reading. This is the "since_id" option to api/v1/timelines/home (https://docs.joinmastodon.org/methods/timelines/). "Load oldest" would load the oldest missing statuses first. To get a complete timeline the user would click "Load more", read the next N statuses, see a new "Load more" indicator, click that, and so on. I think, but have not tested, that this is the "min_id" option to api/v1/timelines/home. "Load all" would repeatedly load statuses until there are no more to fetch. The order doesn't matter. If the user refreshes the timeline (i.e,. has reached the end, and drags down to load more items) then all items are loaded. So in normal use the user would never see a "Load all" button. "Background" is like "Load all", but would also schedule a periodic work request (https://developer.android.com/topic/libraries/architecture/workmanager/how-to/define-work#schedule_periodic_work) to fetch new statuses. The minimum time between work is 15 minutes. Each one would behave like "Load all". Is it worth providing an option for the user to specify how many statuses to load? The current limit is 20, the API maximum value is 40. Maybe, maybe not? Once a "Load All" option is implemented a "Load N" variant is trivial. But it would require a third preference to allow the user to specify N. Is the additional UI complexity worth it? There's the separate issue of "Load more" positioning the timeline at the chronologically newest post. Irrespective of the user options that are set above, I think that's a bug. If the user has a gap in their timeline and they are loading more posts to fill it, they obviously want to start reading at the oldest post just loaded, not the newest. |
If no one else is working on it, I'll take a look at the "load more" bug next week. It keeps being reported, and I think fixing it is orthogonal to the other timeline issues reported here. |
how viable is it to keep track of where the user has been scrolling from, as the load more button is being shown on screen? are they coming from newer statuses, or older statuses? that could get rid of the need to have the option to set if load more button should load newer or older posts |
I need an issue to keep track of the "load more" bug and notes on solving it, so I'll use #2938 for that, instead of cluttering up this one. |
I've been griping a little about this on my timeline (https://mastodon.social/@bjst/109539421996041213) and I have some further thoughs: As a golden rule, the last-read-toot should only change when you view your last-read toot and scroll to the next newer toot. Not when viewing the top of your timeline, not when switching accounts, not when loading more toots. Think of the last-read-toot as a physical bookmark in a physical book. You are able to go back and forth in your book without moving your bookmark. It's the same with toots. The timeline is my book and I want to read it sequentially. Never assume I want to skip reading fourteen chapters of my book because I pressed a button somewhere without knowing the details of the implementation. Software should be safe to explore. Also, the concept of my last-read-toot or my-bookmark-in-the-timeline could be much more explicit. Why not show me the date? Show me the number of unread toots. It is currently very implicit, unspoken and ethereal. It doesn't necessarily have to be. |
The only reason this is a problem at all is this absurd reverse timeline inherited from corporate social media. If the default behaviour was to add new posts below the current position, and just scroll down to read things in order, no one would be confused. |
I disagree here. Newest first is better for new (or not logged in) visitors as with any news/activity page you want to present the most current Posts first. For the App however it would be great to have the option for any not loaded posts to be loaded from oldest missed to newest. As this makes scrolling up in the Timeline easier as apposed to having to scroll down then press show more and repeat until all posts have been loaded.
This is a option "Preferences -> Show absolute Time". Then you will get a timestamp for any Toot. |
Additionally / maybe another issue: Get rid of "Load more" altogether? Continuous scrolling? The only thing still needed would be a way to show "Loading more..." when the network reply is slow. |
Yes, I have that covered in #2788 (comment) |
Can be added an option to show how many unread toots? |
Regarding timeline position: There is a very old issue but with 70 upvotes: #89 And there seems to even be the possibility for syncing read position across different apps? |
@Lakoja -- for reading position please take at the proposal doc in #3271 (readable view: https://github.com/tuskyapp/Tusky/pull/3271/files?short_path=00bf4a9#diff-00bf4a9daa91c4a8e02c65bc5ed3fc84f92cab3e32f35bd8a9f277c778f12543). And just because I've written it up doesn't mean I have to be the one to implement it. If there's consensus that this is the approach we should take and you want to write the code, please do so. |
Just a simple option in settings for "keep position when loading new posts" would make me happy. |
Use "Preferences > Reading order" and set it to "Oldest first". |
It is tiring having to continuously tap |
Working on that as part of #3436 |
Completed? We have an option to have the timeline in the correct order, now? So that you read from the oldest posts down to the newer posts, rather than having it all backwards and constantly scrolling up, down, up, down, up, down? |
This issue is for collecting the various wishes users have about timelines. This way we can think about them together. Patching single issues will lead us nowhere.
Anything else?
A solution should ideally address all these needs without adding more than one additional setting.
The text was updated successfully, but these errors were encountered: