Page MenuHomePhabricator

[Sub-Epic] Main implementation task for Anti-Vandalism microtask on Android V1
Closed, ResolvedPublic

Assigned To
Authored By
JTannerWMF
Aug 1 2023, 2:04 PM
Referenced Files
F37670342: Reset filters.png
Sep 7 2023, 4:25 PM
F37670344: Default filters.png
Sep 7 2023, 4:25 PM
F37614340: Manage.svg
Aug 22 2023, 8:53 AM
F37614339: Rollback.svg
Aug 22 2023, 8:53 AM
F37614338: User information.svg
Aug 22 2023, 8:53 AM
F37614337: Patrol.svg
Aug 22 2023, 8:53 AM
F37543168: Menu.png
Aug 17 2023, 12:10 PM
F37160862: Thanked.png
Aug 2 2023, 7:45 PM

Description

Background

After iterating on designs for Android Patroller Tasks and getting feedback from users, we are now ready to start implementing our latest designs.

Task
  • @OTichonova Link to the Figma file with the latest designs in this task and designs to the task that demonstrates the flow
  • Engineer- Add subtask to this ticket for elements that can be broken out
Requirements
  • Task can only be seen by users with extended rights, and in the first release will only be on for Indonesian Wikipedia. There should be an ability to scale to other languages. Users without extended rights and where the feature has not been scaled should see our current version of a diff.
  • Entry point is Suggested Edits Screen as the first task
  • A way for users to report the feature that sends them to the support email
  • Access to the FAQ page via Learn More [LINK TO BE ADDED]
  • Onboarding screens or tooltips [ @OTichonova to add task]
  • Ability to navigate between diffs in recent edits list from diff screen AND access other edits for the article.
  • Ability to read more about ORES scores by clicking the score
  • List of edits should persist if a user loses connection. If a user clicks an action and they are offline pop our existing error message to let them know they are offline
  • Destructive actions should not be automatic. Users need to confirm the action was as intended.
Designs (Figma)

Card in 'Suggested Edits'; List of edits

1. 'Edit patrol' card2. List of edits3. App bar menu4. Expand card5. Tapping username opens menu6. 'User information' from menu7. Default filters8. Ability to reset filters9. Selected filters10. No filter results
Suggested edits.png (360×720 px, 43 KB)
List of edits.png (360×720 px, 41 KB)
App bar menu.png (720×1,440 px, 109 KB)
Card open.png (360×720 px, 38 KB)
Menu.png (360×720 px, 50 KB)
User information modal.png (360×720 px, 33 KB)
Default filters.png (720×4,592 px, 232 KB)
Reset filters.png (720×4,592 px, 235 KB)
No results.png (720×1,440 px, 28 KB)
No results.png (720×1,440 px, 28 KB)

Diff view; Revert & Rollback flows

11.Diff view12. Top bar menu13. User menu14. Undo options15. Revert edit16. Edit summary17. Revert complete18. Rollback edit19. Rollback complete
Diff view.png (720×1,440 px, 75 KB)
Top bar menu.png (720×1,440 px, 117 KB)
User menu options.png (720×1,440 px, 114 KB)
Undo:Rollback.png (720×1,440 px, 91 KB)
Revert edit_.png (720×1,440 px, 72 KB)
Fill out edit summary.png (720×1,440 px, 81 KB)
Revert complete.png (720×1,440 px, 76 KB)
Rollback_.png (720×1,440 px, 70 KB)
Rollback complete.png (720×1,440 px, 77 KB)

Compose, save and publish first warning message

20. First warning21. Composing a message22. Tap 'Back'23. Publish without 'Subject' > Error24. Publish without 'Compose message' > Cannot25. Save changes26. Confirmation: Warning published27. Publish without 'Message title' > Error28. Add 'Message title'29. Confirmation: Warning saved & published
Compose new warn message.png (360×720 px, 38 KB)
Edit new message.png (360×720 px, 42 KB)
Tapping back.png (360×720 px, 28 KB)
Empty subject.png (360×720 px, 42 KB)
Empty Message.png (360×720 px, 39 KB)
Save changes_.png (360×720 px, 23 KB)
Message published.png (720×1,440 px, 77 KB)
Try publishing without message title.png (360×720 px, 36 KB)
Add message title.png (360×720 px, 25 KB)
Message saved and published.png (720×1,440 px, 78 KB)

Select, edit, save and publish existing warning message

30. Warning (with saved messages)31. Selecting message32. Message selected33. Edit message34. Tap 'Back'35. Publish > Save changes?36. Publish message without saving37. Save as new message without title > Error38. Save new message with title39. Confirmation: Warning saved & published
add message.png (360×720 px, 24 KB)
Choose message.png (360×720 px, 25 KB)
Message selected.png (360×720 px, 39 KB)
Edit message.png (360×720 px, 39 KB)
Preview message.png (360×720 px, 39 KB)
Publish, Save_.png (360×720 px, 31 KB)
Message published.png (720×1,440 px, 77 KB)
Save new message_ Empty 'Message title'.png (360×720 px, 38 KB)
Preview message.png (360×720 px, 37 KB)
Message saved and published.png (720×1,440 px, 78 KB)

Manage templates

40. Empty state41. List of templates42. Compose new message43. Message44. Save changes?45. Adding title to message46. New message saved47. Edit message from list48. Select to delete message49. Message deleted
Empty state.png (360×720 px, 13 KB)
List of templates.png (360×720 px, 9 KB)
Compose new.png (360×720 px, 38 KB)
New message.png (360×720 px, 43 KB)
Save changes_.png (360×720 px, 20 KB)
Fill in title.png (360×720 px, 20 KB)
Message saved.png (360×720 px, 14 KB)
Edit existing message.png (360×720 px, 27 KB)
Delete message.png (376×720 px, 21 KB)
Message deleted.png (360×720 px, 12 KB)

Watch/unwatch pages and thank editors

50. Tapping 'Watch'51. Change time period52. Time changed53. Unwatch55. 'Thank' editor56. Thanked
Add to watchlist.png (720×1,440 px, 78 KB)
Time.png (720×1,440 px, 59 KB)
Time changed.png (720×1,440 px, 76 KB)
Unwatch.png (720×1,440 px, 80 KB)
Added to watchlist.png (720×1,440 px, 125 KB)
Thanked.png (720×1,440 px, 75 KB)
Card in 'Suggested Edits'; List of edits
  1. Edit patrol' card
  • ‘Edit patrol’ feature can be accessed through ‘Edits’ from the main tab bar:
    • The contributor will open the app and will be able to access ‘Edits’ from ‘Explore’, ‘Saved’, ‘Search’ or ‘More’,
    • The icon used in the ‘Edit patrol’ card is a new custom icon.
    • Copy: Edit patrol
    • Description: Review recent edits and determine whether they are constructive or not.
    • Button: Check icon ‘Review’
  1. List of edits
  • Tapping on the ‘Edit patrol’ card will bring the contributor to the ‘List of edits’ page.
  • The patroller will be able to search the edits via the search bar at the top of the page.
    • The patroller will be able to filter the edits by tapping on the filter icon (top right corner).
  • Page has cards displaying edit(s) on page.
    • Card includes:
    • Page title & time of edit ; edit summary ; tags ; username of editor ; bytes
  1. App bar menu
  • There is a notifications and more icon in the app bar. Tapping the more icon open a menu in top corner of page includes:
    • Problem with feature - Will take editor to the support email and pre-populate the subject line with ‘Patroller Edits Feature’.
    • Learn more - Will take editor to FAQ page
  1. Expand card
  • When an editor has made multiple edits on the same page a chevron will be displayed beside the time in the top corner of the card.
  • Tapping on the chevron will reveal the other contributions by the same contributor on that page.
  • All edits after the first edit by the same user on the same page will not include:
    • Page title ; username
  • Will include:
    • Time of edit; edit summary; tags; bytes
  1. Tapping username opens menu
  • Tapping on the username button will display a menu with the following options:
  • View user page
  • View talk page
  • User information
  • View user contributions
  • Thank
  1. User information' from menu
  • User information
  • Taping this option from the menu opens a modal with the editors ‘Tenure’, and ‘Edit count’.
  1. Default filters
  • The UI is similar to ‘Watchlist’ filters. Some filters are borrowed from ‘Watchlist’ filters and others are new.
  • Filters include:
    • Wiki (language filters) with the ability to ‘Update app languages’ (the following titles and descriptions borrowed from web’s ‘Recent changes’ filters)
    • User registration and experience
      • Title: Unregistered
        • Description: Editors who aren’t logged in.
      • Title: Registered
        • Description: Logged-in editors.
      • Title: Newcomers
        • Description: Registered editors who have fewer than 10 edits of 4 days of activity.
      • Title: Learners
        • Description: Registered editors whose experience falls between “Newcomers” and “Experienced users.”
      • Title: Experienced users
        • Description: Registered editors with more than 500 edits and 30 days of activity.
    • Latest revisions
      • All
      • Latest revision
    • Not the latest revision
      • Automated contributions
      • All
      • Bot
      • Human (not bot)
    • Contribution quality predictions
      • Title: Very likely good
        • Description: Highly accurate at finding almost all problem-free edits.
      • Title: May have problems
        • Description: Finds most flawed or damaging edits but with lower accuracy.
      • Title: Likely to have problems
        • Description: With medium accuracy, finds as intermediate fraction of problem edits.
      • Title: Very likely to have problems
        • Description: Very highly accurate at finding the most obviously flawed or damaging edits.
    • User intent predictions
      • Title: Very likely good faith
        • Description: Highly accurate at finding almost all good-faith edits.
      • Title: May be bad faith
        • Description: Finds most bad-faith edits but with a lower accuracy.
        • Title: Likely to bad faith
        • Description: With medium accuracy, finds an intermediate fraction of bad-faith edits.
        • Title: Very likely bad faith
        • Description: Very highly accurate at finding the most obvious bad-faith edits.
    • Significance
      • All
      • Minor edits
      • Non-minor edits
  1. Reset filters
  • When new filters are selected a ‘Reset’ button will appear in the top corner to allow patrollers to reset all filters to default state.
  1. Selected filters
  • When filters are selected and patroller returns to ‘List of edits’ page the number of selected filters is indicated by a value next to the ‘filter’ icon. The icon and the value become blue.
  1. No filter results
  • If a set of filters doesn’t produce results, an illustration & message will appear.
  • Copy: Try removing [x] filters to see more edits
Diff view; Revert & Rollback flows
  1. Diff view
  • Tapping on a card opens the diff view which includes:
  • Top app bar:
    • Back arrow
    • Copy: Patrol edit
    • More icon
  • Title: Article/page title
    • Tappable - opens bottom sheet with article summary like in ‘Compare revisions’ screens.
    • Left & right chevrons: Move to next or previous contribution (different from ‘Compare revision’ screens where these arrows move to the next edit within the same article/page).
    • Editor can also swipe left/right to move to previous/next edit.
  • Diff view
  • It is similar to the ‘Compare revision’ page in the app but has it's differences:
    • Similarities:
      • UI; From; To; Date; Usernames; Tags; Lines; Diff.
    • Differences:
      • Under the tags instead of having the ‘Undo’ and/or ‘Rollback’ buttons there will be the ‘Intent [x]%’ and ‘Damage [x]%’ buttons. These buttons showcase the ORES score for the edit. Tapping on either will bring the editor to the MediaWiki page ‘Help:New filters for edit review/Quality and Intent Filters’. The ‘bytes’ will be located next to the ‘Quality’ and ‘Intent’ buttons.
      • The ‘Undo’ and/or ‘Rollback’ action will now be in the toolbar.
  • Action bar actions:
    • Thank - Thanks the editor
    • Watch - Adds page to watchlist
    • Warn - Takes patroller to a flow where they can create, save and edit their custom warning messages.
    • Undo - Reverts edit (if editor has rollback rights the person will see a menu where ‘Undo’ and ‘Rollback’ is available).
  1. Top bar menu
  • More icon opens a menu in top bar which includes:
    • Share edit
    • Copy to clipboard
    • Article edit history - Will take editor to edit history of the article.
    • Problem with feature - Will take editor to the support email and pre-populate the subject line with ‘Patroller Edits Feature’.
    • Learn more - Takes to MediaWiki page
  1. User menu
  • Tapping on the username button will display a menu with menu options:
    • View user page
    • View talk page
    • User information
    • When tapped a modal appears with the editors ‘Tenure’, and ‘Edit count’.
    • View user contributions
  1. Undo options
  • Tapping on ‘Undo’ takes a patroller without rollback privileges to the edit summary but if the patroller has rollback privileges they will see a menu where ‘Undo’ and ‘Rollback’ are available
  1. Revert edit
  • Tapping on ‘Undo’ triggers a modal that gives the patroller an opportunity to add an optional edit summary.
    • Copy: Title: ‘Are you sure you want to undo this edit?’
    • Text: Undoing means reverting the effects of one or more edits.
    • Description: ‘Share the reason for the revert’
    • Buttons: ‘Cancel’;‘Revert’
  1. Edit summary
  1. Revert complete
  • If edit is reverted the modal disappears and a confirmation snackbar appears on the diff page.
    • Copy: Reversion complete; View
  1. Rollback edit
  • Tapping on ‘Rollback’ triggers a modal.

Copy: Are you sure you want to rollback?
Buttons: ‘Cancel’; ‘Rollback’

  1. Rollback complete
  • Tapping on rollback from the modal makes it disappears and a confirmation snackbar appears on the diff page.
    • Copy: Rollback complete; View
Compose, save and publish first warning message
  1. First warning
  • Tapping on ‘Warn’ for the first time in the bottom sheet leads the patroller to an in-feature way where they can compose a talk page message.
    • Copy top of page: ‘Compose warning message.’
    • Next: Icon which takes one to ‘Manage templates’ page (see more information in ‘Manage templates’ slide further down.
    • Next: Text input for ‘Subject’ line
    • Next: Text input for ‘Compose message’
    • Next: Licensing text
  1. Composing a message
  • The keyboard for this page is that same as for the one when editing articles that has the additional formatting toolbar over the keyboard.
  1. Tap 'Back'
  • If a patroller composes a message and then decides to go back to the ‘diff view’ they will see a modal:
    • Title: ‘Are you sure you want to exit?’
    • The copy of the modal is: ‘The changes to the subject and message text will not be saved.’
    • Buttons: ‘No’; ‘Yes’
  1. Publish without 'Subject' > Error
  • ‘Subject line’ and ‘Compose message’ must be filled in order for proceed to publishing (same as when composing a message on talk pages)
  • If ‘Compose message’ is filled but ‘Subject’ isn’t the patroller may tap on the active ‘Publish’ button but will get a warning underneath the text input saying ‘The subject cannot be empty’ and won’t be able to proceed to publishing until the ‘Subject’ is filled.
  1. Publish without 'Compose message' > Cannot
  • If ‘Subject’ is filled but the message isn’t the ‘Publish’ button stays inactive.
  1. Save changes
  • After filling out the ‘Subject’ and ‘Compose message’ the patroller can tap on ‘Publish’, this triggers a ‘Save changes?’ modal.

Modal has a ‘Save as a new message’ checkbox.

    • It has ‘Message title’ text input field.
    • Buttons: ‘Cancel’; ‘Publish’
  • Patroller can publish the message right away without saving it.
  1. Confirmation: Warning published
  • Publishing without saving the message will close the modal, open up the diff view and trigger a snackbar that states:
    • Copy: ‘Message published to editor’s user talk page.’
    • Button: ‘View’
    • Tapping on ‘View’ in the snackbar would take the patroller to the users talk page.
  1. Publish without 'Message title' > Error
  • Selecting the ‘Save as a new message’ checkbox will activate the ‘Message title’ text input and the patroller needs to type in a title before publishing otherwise a error message will appear under the input field that states:
    • Copy: ‘The message title cannot be empty’
  1. Add 'Message title'
  1. Confirmation: Warning saved & published
  • Publishing a message after saving it will close the modal, open up the diff view and trigger a snackbar that states:
    • Copy: ‘Message saved and published to editor’s user talk page.’
    • Button: ‘View’
    • Tapping on ‘View’ in the snackbar would take the patroller to the users talk page.
Select, edit, save and publish existing warning message
  1. Warning (with saved messages)
  • Tapping on ‘Warn’ after the patroller has already saved a message will show a slightly different page. This page has:
    • Copy top of page: ‘Select an existing warning message or compose a new message.’
    • Next: ‘Settings’ icon which takes one to ‘Manage templates’ page (see more information in ‘Manage templates’ slide further down.
    • Next: Dropdown ‘Save messages’
    • Next: Text input for ‘Subject’ line
    • Next: Text input for ‘Compose message’
    • Next: Licensing text
  1. Selecting message

-Patroller is able to tap on ‘Saved messages’ and pick out a saved message from the dropdown.

  • If a message is selected the ‘Subject’ and ‘Compose message’ sections’ of the page get pre-filled with the saved message.
  1. Message selected
  • If the subject or message content are not altered then tapping on ‘Publish’, will close the modal, open up the diff view and trigger a snackbar (see snackbar from #26)
  1. Edit message
  • The subject or message content can be edited.
  • If the patroller changes the text in the ‘Subject’ or ‘Compose message’ and taps ‘Publish’ a ‘Save changes?’ modal pops up (see #35)
  1. Tap 'Back'
  • Save as #21
  1. Publish > Save changes?
  • If changes are made to message ‘Subject line’ and ‘Compose message’ must be filled in order for proceed to publishing (same as when composing a message on talk pages)
  • If ‘Compose message’ is filled but ‘Subject’ isn’t the patroller may tap on the active ‘Publish’ button but will get a warning underneath the text input saying ‘The subject cannot be empty’ and won’t be able to proceed to publishing until the ‘Subject’ is filled (similar to #23).
  • If ‘Subject’ is filled but the message isn’t the ‘Publish’ button stays inactive (similar to #24).
  • Tapping to publish a message that has been altered will trigger a 'Save changes?' modal:
    • Radio button: Copy: 'Save as new message to the list'
      • Text input field: 'Message title'
    • Radio button: Copy: 'Update existing message'
    • Buttons: 'Cancel'; 'Publish'
  1. Publish message without saving
  • Same as #26
  1. Save as new message without title > Error
  • The text input field: ‘Message title’ becomes active if radio button ‘Save as a new message to list’ is selected.
  • Once active, the title must be added to the input field. If the title isn’t added an error message shows up with:
    • Copy: The message title cannot be empty.
  1. Save new message with title
  1. Confirmation: Warning saved & published
  • Same as #29
Manage templates
  1. Empty state
  • Manage templates is accessed through tapping on the custom 'Manage templates’ icon at the top of the ‘Warn’ page.
  • It is a place where all saved messages are stored. From here you can create, edit, move or delete new/existing messages.
    • Title: ‘Manage templates’
    • Icon: ‘Add’ icon (to add new messages to the list).
  • When there are no messages saved you will see an empty state:
    • Copy: ‘You do not have any warning messages saved.’
  1. List of templates
  • When messages are present they will have a drag handle on the left side of the message so patrollers are able to drag them to a different position within the list.
  1. Compose new message
  • Tapping on the ‘Add’ icon in the top right corner opens a new page where patroller can compose a new message. This is similar to ‘Composing the first warning message’ process.
    • Page title: ‘New message’
    • Button: Save
    • Copy top of page: ‘Compose a warning message.’
    • Next: Text input for ‘Subject’ line
    • Next: Text input for ‘Compose message’
    • Next: Licensing text
  • The keyboard for this page is that same as for the one when editing articles that has the additional formatting toolbar over the keyboard.
  1. Message
  • If a patroller composes a message and then decides to go back to the ‘Manage templates’ they will see a modal (see #21):
    • Title: ‘Are you sure you want to exit?’
    • The copy of the modal is: ‘The subject and message text will not be saved.’
    • Buttons: ‘No’; ‘Yes’
  1. Save changes?
  • ‘Subject line’ and ‘Compose message’ must be filled in order save message (same as when composing a message on talk pages)
  • If ‘Compose message’ is filled but ‘Subject’ isn’t the patroller may tap on the active ‘Save’ button but will get a warning underneath the text input saying ‘The subject cannot be empty’ and won’t be able to proceed to saving until the ‘Subject’ is filled (see #23)
  • If ‘Subject’ is filled but the message isn’t the ‘Save’ button stays inactive (see #24).
  • After filling out the ‘Subject’ and ‘Compose message’ the patroller can tap on ‘Save’, this triggers a ‘Save changes’ modal.
    • Copy: ‘Add title and save message.’
    • Text input field: ‘Message title’
    • Buttons: ‘Cancel’; ‘Save’
  1. Adding title to message
  • Patroller must add title to save message, otherwise the ‘Save’ button will stay inactive.
  1. New message saved
  • Saving the message will take the patroller back to the ‘Manage templates’ page (where the message will be present in the list) and trigger a snackbar:
    • Copy: ‘Message has been saved.’

47. Edit message from list

  • Tapping on the edit icon beside any message would trigger a modal that has pre-filled sections for each of the text input fields:
    • Title; ‘Edit message’
    • Text input field: ‘Message title’
    • Text input field: ‘Subject’
    • Text input field: ‘Compose message’
    • Buttons: ‘Delete’; ‘Save’
  • Tapping ‘Save’ closes modal and takes patroller to ‘Manage templates’ page and triggers a snackbar:
    • Copy: ‘Message has been saved’
  1. Select to delete message
  • Tapping delete closes modal and takes patroller to ‘Manage templates’ page and triggers a snackbar.
  1. Message deleted
  • Snackbar copy after someone successfully deletes a message: ‘Message has been deleted’
Watch/unwatch pages and thank editors
  1. Tapping 'Watch'
  • Action to watch/unwatch a page is accessible from the toolbar.
  • When tapping ‘Watch’ a snackbar will appear with:
    • Copy: ‘[Page title] and its talk page have been added to your watchlist permanently.’
    • Button: ‘Change’

51. Change time period

    • Tapping on ‘Change’ from the confirmation snackback triggers a bottom sheet:
    • Title: ‘Select Watchlist time period’
    • Options in the bottom sheet: ‘Permanent’; ‘1 week’; ‘1 month’; ‘3 months’; ‘6 months’.
  • Selecting a new option from the bottom sheet closes the bottom sheet and triggers a snackbar
  1. Time changed
  • Once a new time period is chosen from the bottom sheet a snackbar will appear:
    • Copy: ‘[Page title] and its talk page have been added to your watchlist for [selected time period].’
  1. Unwatch
  • When tapping ‘Unwatch’ on a wathed page a snackbar will appear with:
    • Copy: ‘[Page title] and its talk page have been removed from your watchlist.’
  1. 'Thank' editor
  • Contributors can be thanked through the ‘Thank’ action in the toolbar.
  • Tapping on ‘Thank’ will trigger the existing modal.
    • Title: Publicly send ‘Thanks’
    • Text: ‘Thanks’ are an easy way to show appreciation for an editor’s work on Wikipedia. ‘Thanks’ cannot be undone and are publicly viewable.
    • Buttons: ‘Cancel’; ‘Send thanks’
  1. Thanked
  • Once patroller taps 'Send thanks' from the above modal the thank icon in the toolbar can become filled and the label will change to 'Thanked' and become inactive.
New Icons
PatrolUser informationRollbackManage
Todos
  • Create copy Translate copy to Indonesian
  • Update FAQ page
  • Update project page

Event Timeline

JTannerWMF triaged this task as Medium priority.
JTannerWMF updated the task description. (Show Details)
JTannerWMF added subscribers: • Sharvaniharan, cooltey.

@Dbrant this task is ready for you to break down with the rest of the team.

cc: @Sharvaniharan and @cooltey

Seddon renamed this task from Main implementation task for Anti-Vandalism microtask on Android V1 to [Epic] Main implementation task for Anti-Vandalism microtask on Android V1 .Oct 16 2023, 6:09 PM
Seddon renamed this task from [Epic] Main implementation task for Anti-Vandalism microtask on Android V1 to [Sub-Epic] Main implementation task for Anti-Vandalism microtask on Android V1 .
ABorbaWMF subscribed.

Looks good on my side except for this issue which is currently un development T350623. Tested on 2.7.50457-beta-2023-11-02