Tuba icon indicating copy to clipboard operation
Tuba copied to clipboard

[ER] Add option to not automatically scroll to the top when new posts are added

Open tclementdev opened this issue 2 months ago • 8 comments

Describe the request

It would be great to have an option to not automatically scroll to the top when new entries are added such that we can continue reading where we left off.

Checks

tclementdev avatar Dec 06 '25 20:12 tclementdev

Thanks for the suggestion!

It doesn't (or at least shouldn't, if it does it's a bug) "scroll to the top" on new posts. The current behavior is to instantly add new posts on the top if the scroll position is near the top but if you scroll down a bit further, new posts will be held back and only added when you scroll to the top again, keeping the current scrolling position as is.

Let me know if that's not the case or you have some other behavior in mind and I'll re-open this!

GeopJr avatar Dec 06 '25 20:12 GeopJr

Maybe I didn't explain it right: my request here was to add an option to not maintain the scrolled to top position when new entries are added. The way it works now forces me to scroll down and hunt for the last entry I have read to be able to continue reading where I left off.

tclementdev avatar Dec 06 '25 20:12 tclementdev

Do you mean like, between restarts of tuba? (that would be a duplicate of #1105)

Otherwise, the behavior is this:

  • when I'm near the top, new posts get added
  • when I scroll down a bit new post are not getting added
  • when I scroll back up new posts are getting added

so if you are reading something just open it or scroll down a bit

https://github.com/user-attachments/assets/0bfd8dc4-eb87-4b64-86d0-e9362ae97196

GeopJr avatar Dec 06 '25 20:12 GeopJr

Not between restarts. What I mean is I'm reading the timeline upwards and reach the top and I'm done reading, then I go do other things in other apps, then some time later I come back to Tuba and it's now scrolled to the top with many new entries. I then need to hunt down which one I read last in order to position the timeline to where I left off so I can continue reading new entries chronologically. Instead I'd expect new entries to be added on top but scroll position to be maintained so that when I come back I can just start scrolling upward and continue reading the new stuff.

tclementdev avatar Dec 06 '25 21:12 tclementdev

Thanks for the explanation! My suggestion is to just scroll down a bit I guess though it might not work perfectly for your workflow. An option for this feels a bit excessive. Though FWIW, this is the behavior the Mastodon web client has as well.

GeopJr avatar Dec 06 '25 21:12 GeopJr

Actually I'm surprised, as much as I can remember all twitter/mastodon apps I tested before maintain scroll position. So what's the typical usage behavior in Tuba then, do people read downward in reverse chronological order until reaching a post they recognize having already read, and then they scroll back to the top, and repeat that. Or do they hunt down the last post they have read and read upward like I'm doing. I feel like neither of these usage behavior are right. Is there another way I'm missing?

tclementdev avatar Dec 06 '25 22:12 tclementdev

I mean partially this is somewhat of a limitation with the ListBox (extremely long story short you can search the repo for, ListBox is what we use for timelines currently and we need to move to ListView which is a recycler view (creates and destroys posts as you scroll instead of having everything in it exist at all times), but its complicated and requires major rewrites I don't have the time for at the moment), where new additions to it move the scroll position and the only way to keep it at place without stopping adding items at the top would be to constantly measure new items and move the scroll position accordingly to make it seem like it stays in place (not worth the performance hit and it would be messy if the user was scrolling at the same time) (a ListView would always stay in place regardless).


I can only speak for myself I guess, once you follow a large enough amount of active people, you kinda give up on the whole "reading everything thing" and just scroll down until you get bored or see something you remember seeing. If there are new post by then, you go to the top and do the same.


To be fair, Tuba's threshold is somewhat bigger than "the topmost" but here's Mastodon web for example

  • while a the topmost scroll position, it's always "scrolled at the top"
  • if i scroll even a pixel down, it keeps the scroll position like you want

https://github.com/user-attachments/assets/cb547250-5545-4169-9021-78dfc52c5438

GeopJr avatar Dec 06 '25 22:12 GeopJr

Thank you for the explanation. I admit I never used the web site, I used several twitter clients back in the day and more recently have been using Mona. Indeed I may have a different usage behavior than others in that I purposefully keep my 'Following' list small enough such that I can read everything.

I see the Mastodon web site has an option called "Slow mode" described as "Hide timeline updates behind a click instead of automatically scrolling the feed" so that looks like something that may work for me. Though I would definitely prefer it to automatically tell me whether there is new content rather than me having to click.

tclementdev avatar Dec 06 '25 22:12 tclementdev