wordpress-mobile / WordPress-Android

WordPress for Android
http://android.wordpress.org
GNU General Public License v2.0
2.99k stars 1.33k forks source link

After changing Scheduled post back to Draft status, "Publish" button can cause confusion. #15617

Open mrfoxtalbot opened 2 years ago

mrfoxtalbot commented 2 years ago

Expected behavior

It should be possible to change the status of a scheduled post back to a draft.

Actual behavior

The post was published instead.

Steps to reproduce the behavior

  1. Create a new post and schedule it by giving it a future date
  2. Open the post in the mobile app and try to switch its status to draft
  3. Notice how it gets published

During one of my tests (not the one recorded below), I was able to switch the post to a draft by changing its date back to an older date, but this did not work consistently.

https://user-images.githubusercontent.com/4452464/143422107-c6f918f5-e764-4850-8ec4-987afa6a158e.mp4

Tested on [device], Android [version], WPAndroid [version]

App version: alpha-330 Device: One Plus Nord2 5G + OsygenOS V11.3

This is closely related to https://github.com/wordpress-mobile/WordPress-Android/issues/11393 and https://github.com/wordpress-mobile/WordPress-Android/issues/12344

zwarm commented 2 years ago

I am closing this issue, as I have tested the scenario and based on my findings, this appears to be the expected behavior. Following along with the video ...

  1. I created a new post and scheduled if for a date in the future.
  2. Navigates to the Scheduled posts tab
  3. Locates the post I created in step one and tapped the Edit button
  4. Tapped the overflow menu (3 dots) and selected "Post Settings"
  5. Note: The status is "Scheduled" and the Publish date is "Schedule for: {the future date selected in step 1}"
  6. Tapped Status & Visibility
  7. Selected "Draft" option and clicked OK
  8. Note: The primary action button on top changes from "Schedule" to "Publish". And the publish date remains.
  9. Tapped the publish button which launched the publish bottom sheet
  10. Note: The publish date says: Schedule for: {the future date selected in step 1}
  11. Tapped Publish Now
  12. The post was updated and remained on the "scheduled" list; the post hasn't been published.

If before tapping the Publish Now button, I had changed the published date to sometime in the past, then the publish date label changes to "publish on {date in the past}" and the post is actually published on the tap of Publish Now. This is shown in the video as well.

The app UI experience differs slightly from the web. On the web, when a scheduled post switches back to draft, there is a dialog that asks if you are sure you want to unschedule your post. The end result is that the post remains on the scheduled list; however, as with the app, if you change the published date to a date in the past, the post will get published immediately upon action tap.

cc: @thehenrybyrd

thehenrybyrd commented 2 years ago

@zwarm I agree with your assessment that this is the expected behavior, and will leave the issue closed for now. However, I wanted to clarify:

On the web, when a scheduled post switches back to draft, there is a dialog that asks if you are sure you want to unschedule your post.

In my testing, when I tap "ok" in response to this dialogue, the post does revert to draft status. At this point, it has a "save draft" button in addition to the "Schedule..." button. If I "save draft" and exit the post, it appears under Drafts as I expect.

@mrfoxtalbot I think what you're experiencing as unexpected here is that, in the app, when you've returned the post to "draft" status, you see a "Publish" button. Is that correct? This is the same behavior as when you originally make a draft - any new post initially has the "Publish" button, and to make it into a draft you can exit the post via <, or tap the kebab menu and "save". Then the post is saved as a draft and appears in the Draft list.

Given the limited screen space, I'm not sure adding a "save draft" button as in Calypso would be beneficial, but please let us know if we're misunderstanding the issue or you have another suggestion to make this more clear.

mrfoxtalbot commented 2 years ago

Thank you for looking into this @zwarm.

The post was updated and remained on the "scheduled" list; the post hasn't been published.

To clarify, I only changed the post date in the video because I noticed that just chancing the status to "draft" did not change the button from "Publish" to "Save to Draft". I get that it might be difficult or impractical to fix this on the mobile app, but I am not sure I would describe it as "expected behaviour".

To add a little bit more context, this is the real-life scenario where I was when I spotted this issue: I scheduled a post working from my computer but later decided it was not ready to be published yet, so I pulled my phone, and changed its status to "draft" with the intent of coming back to it later.

Given the current behaviour, rather than going back to being a draft, the post will actually get published immediately which is, arguably, the exact opposite of why I was aiming to do.

when you've returned the post to "draft" status, you see a "Publish" button. Is that correct?

That's correct, @thehenrybyrd, but my expectation was to see a "Save" button.

In other words, and to wrap this up, say I have a scheduled post I do not want to get published. How would I go about doing this from the app? Should I just set it to private?

thehenrybyrd commented 2 years ago

say I have a scheduled post I do not want to get published. How would I go about doing this from the app? Should I just set it to private?

To do this, you'll first go to the post's settings and change the Status to "Draft", as you did in the video. Press the back button to exit settings, and then you have two options: a. Tap the kebab menu again and choose "save". b. Tap the back button to exit the post editor. In both cases, the post will then be saved as a Draft.

The post will be published only if you tap the "Publish" button. This behavior is the same as for creating a post. When a new post is created, the button states "Publish", and to save a draft requires pressing the back button to exit the editor, or tapping the kebab menu and choosing "save".

To add a little bit more context, this is the real-life scenario where I was when I spotted this issue: I scheduled a post working from my computer but later decided it was not ready to be published yet, so I pulled my phone, and changed its status to "draft" with the intent of coming back to it later.

Thanks for the extra context here! I can see how the extra step of setting the scheduled post back to draft status might leave a user wondering "so, is this actually a draft now?" when the button states "Publish".

To compare to the iOS behavior: In iOS, the button is "Publish" for brand new posts, and "Update" for all others. That means if you add content to a draft, you'll tap "Update". If you add content to a scheduled post, you'll tap "Update". And if you change the status of a scheduled post to draft, you'll tap "Update".

I'll open this again and we can see if others also report this as confusing. However, I'll change the title to make it more clear, and I'll change the 'bug' tag to 'enhancement'. If we do hear more about this, it would need to be a larger discussion around how the Publish/Schedule button should behave in various situations, and how the app handles saving drafts. That is to say, it wouldn't be an easy fix, and would require design, so it definitely warrants waiting for more feedback.

mrfoxtalbot commented 2 years ago

My bad 100%

I followed your steps and pressed "save" from the burger menu and it worked.

My assumption was that there was just one way to "save" changes in a post.

This is still potentially confusing but I agree that this would land on "enhancement", not "bug".

Thank you!

ovitrif commented 2 years ago

I've followed up the discussion on this and also checked the related issue #15843.

I'm looking into a fix which might address both in a way, and then ask around for feedback to refine the solution once I have something preview-able in a PR 🥳

Proposal: I'm thinking to check how much it might take to implement something like what we have on iOS on Android: Replace the "Publish" button with "Update" when the post is not brand new.

Not sure who I can ping to get a confidence check before proceeding deeper with this :)

ovitrif commented 2 years ago

During my HACK week I've given a try to replace the main visible button from publish to save. My reasoning was to give us a better idea of what the impact is, and based on it to assess whether it's practical to go forward with such a simple solution.

Turns out it's not that straightforward:

Seeing that this issue still comes in groundskeeping I wanted to make it clear here that I'm not actively working on a fix.

ovitrif commented 2 years ago

I unassigned myself since it's unlikely that I will look into this issue in the near future, also closed the draft PR https://github.com/wordpress-mobile/WordPress-Android/pull/16084 for now; the solution there was't the best and needed further clarifications but the work was on hold for over 3 months.