tuskyapp / Tusky

An Android client for the microblogging server Mastodon
https://tusky.app
GNU General Public License v3.0
2.46k stars 389 forks source link

Discuss: Changes to the "scheduling statuses" UX #3037

Closed nikclayton closed 2 weeks ago

nikclayton commented 1 year ago

Notes on scheduled status flow

I've been looking at the user flow for scheduling a status to be posted, and have written some recommendations here.

These are separate to the existing issues:

Posting this here since the individual points are comingled (i.e., each para / bullet point would not correspond to a separate PR), so it makes discussion easier. Once there's consensus on which (if any) changes to make they can be broken out in to separate issues and PRs written.

Creating a scheduled post

When a new status is being written and has been scheduled (i.e., the user has clicked the clock icon to schedule it, but is still editing it), the "Toot" button button should change to "Schedule". This makes it clear that it's going to be scheduled and not posted (but see also https://github.com/tuskyapp/Tusky/issues/2704)

It's possible to schedule a post for a time in the past (select today's date on the calendar, then select some time earlier in the day in the clock).

There's no user notification after scheduling a status, you're dropped back to the timeline. A toast to confirm that it's happened, or a snackbar with options (Open the scheduled status? Go to the list of scheduled statuses? Undo it? Go back to editing it?) would be helpful.

Viewing scheduled posts

Opening the navigation drawer, the "Scheduled posts" menu item should show how many posts are currently scheduled (possibly as a badge on the icon).

Managing scheduled posts

Title of the screen is "Scheduled posts". The UI uses "Toots" or "Toot" elsewhere. So either change this to "Scheduled toots", or change "toot" and variations to "post" elsewhere in the app.

The statuses in the list don't look like actual statuses (no avatar, username, content warning if it's set, etc). Arguably some of that is redundant (it'll always be the account's username and avatar), but this would make this list of statuses look like the other lists in the app.

The icon to delete a scheduled post is a diagonal cross. It should probably be the trash can icon.

You have to tap the icon to edit the status. Probably tapping the whole row (except the delete icon) should open the status for editing. This would then be consistent with all the other places you can interact with a status by tapping it.

There's no indication when the status will be posted. Suggest either:

  1. The bottom of each status includes the scheduled date and time for the post, or
  2. The list of statuses is grouped by day, with a heading in the list for each day. Then the statuses show what time that day they will be posted, sorted by scheduled time.
    • Either way, the list of statuses should be sorted by posting time, soonest to post first.

connyduck commented 1 year ago

Title of the screen is "Scheduled posts". The UI uses "Toots" or "Toot" elsewhere. So either change this to "Scheduled toots", or change "toot" and variations to "post" elsewhere in the app.

actually it should be post everywhere? 🤔 https://github.com/tuskyapp/Tusky/pull/2396

Either way, the list of statuses should be sorted by posting time, soonest to post first.

Yes, but it is paginated so in order to sort it clientside we would need to load all pages first.

The bottom of each status includes the scheduled date and time for the post

I would put it on the top, but either way is good at least as it is shown.

Opening the navigation drawer, the "Scheduled posts" menu item should show how many posts are currently scheduled (possibly as a badge on the icon).

I don't think that is possible as it is not exposed through the api, we would need to load all pages first and that is a bad idea for performance just to display a number.

"Toot" button button should change to "Schedule"

Yes, but there is VERY limited space and I am sure there will be languages where the text will overflow the button

You have to tap the icon to edit the status. Probably tapping the whole row (except the delete icon) should open the status for editing. This would then be consistent with all the other places you can interact with a status by tapping it.

yes

nikclayton commented 1 year ago

I'm working on this over in https://github.com/nikclayton/Tusky/tree/scheduled-show-time. I'll prep a PR when done, but if you want to look at the individual commits:

nikclayton commented 1 year ago

Note to self: There's a lot of overlap between the UX for managing drafts and the UX for managing scheduled posts. Suspect there's an opportunity to consolidate code and views to simplify things.

da2x commented 1 year ago

Hi. I don’t have any problems with using the post scheduling interface. However, I struggle too keep track of what is going live when from the Scheduled posts page/view.

I’d love to see the scheduled publication time displayed above each post in this list. The list of posts should also be sorted by the scheduled publication time. Whichever post is going live first should always be displayed at the top, followed by the next one to go live, and so on. Currently, the most-recently created post is displayed first, followed by the second-most-recently, and so on.

Thank you for your time and for the great app!