Skip to content

Conversation

@chucker
Copy link
Owner

@chucker chucker commented Nov 25, 2022

API seems mostly done. Client integration mostly isn't.

This feature ("markers") will sync your reading position across clients.

In other words:

  1. scroll through the timeline on one device (which supports markers)
  2. switch to a different device (whose client also that supports markers)
  3. you'll be at the same position as you were on the first device, rather than at the top (or somewhere random)

This is a lot like Tweet Marker back in the day.

@chucker chucker changed the title Switch MastodonKit to markers branch Sync timeline state across devices Nov 25, 2022
@chucker
Copy link
Owner Author

chucker commented Nov 26, 2022

We need to either implement this in ListViewController, or do it separately in both TimelineViewController (for the home timeline) and NotificationListViewController (for… you know).

@chucker
Copy link
Owner Author

chucker commented Mar 18, 2023

No implementation for notifications at this point. I'm not sure that's an important use case.

For the home timeline, the basics are there: it can jump to another point when something else (you, on a different device/app) set the marker, and it can save a new point as the new marker. I also wrote down some design thoughts at https://github.com/chucker/Mastonaut/blob/main/designs/timeline-sync.md. We don't quite have that behavior yet. I think I should change it:

  • While the timeline is key (frontmost), periodically set the marker.
  • When it resigns key, immediately set the marker.
  • When it isn't, do nothing.
  • When it becomes key again, read the marker. If needed, fetch additional toots. Jump to the toot from the marker.

Beyond that, there's the problem of how other clients behave, since the API doesn't actually prescribe this. Critically, the default web client has a behavior that is IMHO wrong. As soon as you open it, it sets the marker to the newest toot, which means as soon as you switch back to Mastonaut, it, too, will jump to the top of the timeline.

@chucker chucker mentioned this pull request Apr 10, 2023
3 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants