Background
The Apps team plans to explore if a personalized Wikipedia Year in Review feature that displays insights about a user's reading history, editing history, and donation history is engaging for App users, and inspires them to make a donation to the Wikimedia Foundation.
Requirements
Note: This ticket will be mostly blocked until T378838 is completed.
Create Webview of MediaWiki "Learn more" page
- "Learn more about our work" on both slides launches an in-app webview of the MediaWiki page: https://www.mediawiki.org/wiki/Wikimedia_Apps/About_the_Wikimedia_Foundation
- In-app webview should contain link at bottom "Donate now", if they are coming from the collective version, that launches in-app donation flow
- The MediaWiki page should be displayed in the user's language (if they are viewing Year in Review in Italian, the mediawiki page should automatically show them the italian version: https://www.mediawiki.org/wiki/Wikimedia_Apps/About_the_Wikimedia_Foundation/it. If that page does not exist, it should fall back to English.
- Navigating "Back" from Webview should land the user back on the Collective/Personalized donation slide
Engineering Notes
- In SinglePageWebViewController, add a property needsDonateOverlay boolean property. If this property is true, add donate button overlay upon SinglePageWebViewController appearance. Note, we already have a donationCompleteButtonContainer and donationCompleteButton (this displays "Return" on the thank you page) that we can reference, but I would like to set these up as new computed UI properties. Display this button in SinglePageWebViewController's viewDidAppear if property is true (reference setupDonationCompleteView for how to add the overlay to the hierarchy).
- Upon tapping "Learn more about our work" in T378838, present SinglePageWebViewController with https://www.mediawiki.org/wiki/Wikimedia_Apps/About_the_Wikimedia_Foundation url, set needsDonateOverlay property to true.
- When Donate button from step 5 is tapped, create a DonateCoordinator instance and call it's start method. You may need to send in a block that sets the donate overlay button to a spinner, as well as send in the button rect target. The rest of the donate flow should work from this point on.