####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
Create collective slide
- Display if we **do not** have a donation stored for the user
- "Donate" in top left corner launches donation flow similar to other slides
- "Done" and "Finish" should dismiss and show the survey (survey will be done as a part of T376319)
- Link in text "Learn more about what we do" launches in-app webview with donation button
Create personalized slide
- Display if we **do** have a locally stored donation for the user
- "Finish" and "Done" should lead to the survey (survey will be done as a part of T376319)
- Link in text "Learn more about what we do" launches in-app webview. Nice-to-have: remove donation button from this version
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
Add donate slides to Config
- Allow us to toggle the donation slides (one setting for both collective and personalized) on and off if needed. We want to be able to support a situation where we want to hide the donation slides from a list of countries
####Designs ([[ https://www.figma.com/design/JRTyGA3rZ0qlQ9eqh0FMhE/iOS---Wikipedia-YiR?node-id=1399-3531&node-type=canvas&t=4AbA6Y0tKmM7otvi-0 | Figma ]])
**Collective Flow (Non-donor)**
| {F57663868} | {F57663871}| {F57663873}
**Personalized Flow (donor)**
| {F57663875} | {F57663877}
####Engineering Notes
1. Allow the slide UI component to display links in the body text. It may just be a matter of passing in markup (see Apple pay form fine print code).
2. Update remote feature config to allow for both personalized slides and collective slides. Each slide will have an isEnabled switch and an "excludeCountries" array. Update existing slide code to check for these things.
3. Upon app resume method, create persisted slide object for both the personalized slide and collective slide. Set slide data, and evaluted/display flags as-needed. Reference exclude countries array when setting display as well.
3. Ensure that when we create the view models before presenting slides (see T376044), fetch the persisted model from previous bullet point. Insert the personalized or collective slide view models depending on their persisted slide display values.
4. Upon tapping "Finish", dismiss year in review. Present survey if we have completed T376319 already.
5. In SinglePageWebViewController, add a configuration option to place a "Donate" button overlay (similar to how we overlay the "Return" button in other contexts). Upon tap of Donate button, perform donate configuration fetch (change button to spinner during this) and kick off navigation to the donate flow using the DonateCoordinator.
6.We should also hide the search magnifying glass in this configuration, Upon tapping "Learn more about our work",so they are not tempted to go down a rabbit hole. dismiss Year in Review and push on web view with dUpon tap of Donate button configuration from in previous item.tton, Set some flag (maybe in YearInReviewCoordinator) that year in review needs to skip to the last slide when it's next presentedperform donate configuration fetch (change button to spinner during this) and push to donate flow using the DonateCoordinator.
7. Upon tapping "Back" in new web view in #5, ask Year in Review coordinator to present again if it needs to6. Ensure the last slide is displayed upon presentation.Upon tapping "Learn more about our work", Reset flag from previous item after presentation.
//TS Sidenote: If we are able to skip immediately to the last slide here, I think we should put in similar logic in whenever a user taps "Donate" on any slide,present web view with donate button configuration on top of YiR final slide.
7. so that they are linked straight to the slide they left off on when they finish the donate flow.Upon tapping "X" in new web view, That work should be done in a separate task.//dismiss so that YiR appears again.