Page MenuHomePhabricator

Log in, log out and 'Explore feed turned off' experiences for Notifications on iOS
Closed, ResolvedPublic

Assigned To
Authored By
cmadeo
Jul 30 2021, 3:53 PM
Referenced Files
F34970438: image.png
Feb 28 2022, 9:32 PM
F34590932: image.png
Aug 11 2021, 9:22 PM
F34590938: image.png
Aug 11 2021, 9:22 PM
F34590930: image.png
Aug 11 2021, 9:22 PM
F34590934: image.png
Aug 11 2021, 9:22 PM
F34590936: image.png
Aug 11 2021, 9:22 PM
F34570693: Notifications - Explore feed turned off.png
Jul 30 2021, 6:46 PM
F34570689: Notifications - Explore feed turned off.png
Jul 30 2021, 6:43 PM

Description

Scenarios

  • What happens the first time a logged in contributor opens the app after the notifications update?
  • What happens the first time a contributor logs in to the app and has unread or read notifications?
  • What happens when a contributor with notifications logs out of the app?

Workflows

Figjam: https://www.figma.com/file/wx5nwf98MM5b4uOVktpcEk/Notifications-flows?node-id=39%3A786

image.png (1×9 px, 715 KB)

image.png (1×3 px, 276 KB)

image.png (1×3 px, 231 KB)

image.png (1×3 px, 296 KB)

image.png (1×5 px, 476 KB)

Proposed designs

Explore feed turned off (v1)
Notifications - Explore feed turned off.png (812×375 px, 35 KB)

Dependencies

https://phabricator.wikimedia.org/T288654
https://phabricator.wikimedia.org/T288688
https://phabricator.wikimedia.org/T288693
https://phabricator.wikimedia.org/T287766
https://phabricator.wikimedia.org/T288692

Related

https://phabricator.wikimedia.org/T288773

Event Timeline

LGoto triaged this task as Medium priority.Aug 2 2021, 6:36 PM
LGoto moved this task from Needs Triage to Product Backlog on the Wikipedia-iOS-App-Backlog board.
  • For push intercept we need to route ppl to notif settings to opt in to specific notif types
cmadeo updated the task description. (Show Details)
LGoto lowered the priority of this task from Medium to Low.Aug 17 2021, 6:56 PM

Going to leave engineering sync notes about each flow section we talked about in the Figma:

  1. Contributor logs into app for the first time after Notification update - looks like the engineering work involved here is to show the custom modal (first yellow box) the first time the user lands on Notification Center. We need to be sure we provide a route that directs them to Notification Push Settings and automatically goes through the initial toggle ON flow with prompting for permissions, as well as a route that just directs them to Notification Push Settings ("yes, turn on push notifications" and "learn more" routes, respectively). Do not show this custom modal again after the first visit (i.e. have a persisted flag here).
  2. Contributor logs into app after having previously set notifications in-app - I believe this flow just means, when the user logs out, clear out the persisted flag made in the previous flow for showing the custom modal in Notification Center. Then when they log back in, that flag will be gone so they will see the Notification Center custom modal prompt again asking for push notifications.
  3. Logged out contributor makes their first edit - I don't think engineering needs to do any work here, but test this flow to see that it works after implementing flow 1 and 2. We may need to add a log in prompt in the editing flow if it's not already there.
  4. Contributor logs out of their account in the app - this should be covered in https://phabricator.wikimedia.org/T288692
  5. Logged in contributor loses data/internet connection - this should be covered in https://phabricator.wikimedia.org/T287766

Just a note that we're going to develop against the Figma link - I think the mock screenshots in the Phab task might be out of date at this point. @cmadeo let me know if that's wrong, also you're welcome to remove the mocks here if you want. Thanks!

@cmadeo one question that came up during engineering sync:

For the editing flow login prompt - this will likely coincide with the editing onboarding modal/animations. Where does that display in relation to this new prompt? Do we let them go through the onboarding, briefly land on the editing view, then display the login prompt on top of editing?

@Tsevener wow, good catch! It's less than ideal for now but the proposed flow above works for me.

It could be really nice in the future to include an optional screen if we can detect if contributors are logged out on first edit into the onboarding.

@Tsevener I've updated the flows based on the new onboarding screen for notifications. I think that this ticket should be ready for eng, but if I forgot a task we had discussed please let me know and feel free to move this back to 'needs design'. Thanks for your patience!

Dmantena subscribed.

I had originally claimed this parent task because I was doing some work related to the logout flow. I believe several of these flows are covered by existing work, but I'm unclear if these are still relevant or not:

  • "Contributor logs into the app after having previously set notification settings in-app"
  • "Notifications types toggle screen when a user is logged out"

@Tsevener When you get a moment can you take a peek in case I'm missing something?

@cmadeo @Dmantena

Notifications types toggle screen when a user is logged out
I think we have moved away from this flow, since the user shouldn't be able to reach the notification preferences screen at all if they are logged out. Can we scrap this flow @cmadeo?

Contributor logs into the app after having previously set notification settings in-app

  • For "Notification preferences from last login are preserved" - I think this only applies to the granular toggles which reflect the server settings. The user's overall push parent toggle will be set to Off (we unsubscribe their device from push upon logout).
  • For "No push notifications are shown for unread messages received before the user logged in"...this should automatically work, because we unsubscribe their token upon logout, and if I recall push notifications aren't batched up on the server-side waiting for the next time we subscribe again.
  • For "User navigates to notifications center > Custom modal is shown prompting the user to turn on push notifications" - basically if a user has seen mock #3 in https://phabricator.wikimedia.org/T302633, then logs out, then logs back in, we want them to see it again the next time they visit Notifications Center. I think the idea around this was that we are unsubscribing their device upon logout, so it makes them aware that they need try turning that toggle on again.

I think only the 3rd bullet point might potentially require development work at this point. @cmadeo let me know if I'm correct with bullet points 1 & 3.

Thanks @Tsevener

Notifications types toggle screen when a user is logged out
I think we have moved away from this flow, since the user shouldn't be able to reach the notification preferences screen at all if they are logged out. Can we scrap this flow @cmadeo?

Perfect, this is my preference.

For "Notification preferences from last login are preserved" - I think this only applies to the granular toggles which reflect the server settings. The user's overall push parent toggle will be set to Off (we unsubscribe their device from push upon logout).

Ah, okay. Will we also require the systems permission again

For "No push notifications are shown for unread messages received before the user logged in"...this should automatically work, because we unsubscribe their token upon logout, and if I recall push notifications aren't batched up on the server-side waiting for the next time we subscribe again.

Great

For "User navigates to notifications center > Custom modal is shown prompting the user to turn on push notifications" - basically if a user has seen mock #3 in https://phabricator.wikimedia.org/T302633, then logs out, then logs back in, we want them to see it again the next time they visit Notifications Center. I think the idea around this was that we are unsubscribing their device upon logout, so it makes them aware that they need try turning that toggle on again.

Yes, if we can't preserve their notifications preference (eg. automatically toggle to 'on' if it was 'on' before they logged out) then we will need to show this modal again.

@cmadeo

Ah, okay. Will we also require the systems permission again

Nope, we won't need their system permissions again, we'll just need to subscribe their device token again the next time they toggle the switch.

JMinor claimed this task.