Page MenuHomePhabricator

YiR: Create Most visited Categories slide
Closed, ResolvedPublic1 Estimated Story Points

Description

Context

This year we are bringing the Year in Review feature to Android, after its initial deployment and iterations on iOS. The goal is to deepen engagement and increase retention of readers.

Requirements

  • ✅ The personalized data for this slide should be frozen/cached upon open of the YiR. Calculate the report for this slide when the user first opens Year in Review. After that, if they view more articles, this slide should not update (We don't want users to manipulate their YiR). If the user turns off YiR in Settings and turns it back on, this can recalculate.
    • i.e. If I open my Year in Review on December 6th, my categories data is for January 1 - December 6th, 2025. If open it again on December 18th, it does not change.
  • ✅ Add categories slide, available only to logged-in users.
  • ✅ Display Top 5 most visited categories
  • ✅ Show a minimum of 3 categories, otherwise hide the slide.
  • ✅ Filter categories to those with 2+ spaces. If the user has no categories available with this filter (due to language, or usage), fallback to top categories without this requirement. (Match iOS)
  • ✅ There is no fallback slide, simply hide for logged-out and non-eligible users.

Designs

https://www.figma.com/design/DHj33gafvUmkiUahLSJgIM/Android---%3E-Year-in-Review-v3?node-id=15-6453&t=J1OrRJqTrMJGK5fk-4

Reference

iOS implementation T401452

Event Timeline

HNordeenWMF updated the task description. (Show Details)
HNordeenWMF raised the priority of this task from Low to Medium.Sep 23 2025, 4:21 PM
HNordeenWMF renamed this task from Create Most visited Categories slide for Year in Review to YiR: Create Most visited Categories slide.Sep 24 2025, 12:25 AM
HNordeenWMF updated the task description. (Show Details)

^ @SChekfa-WMF That looks like the logged-out flow. Are you sure you're logged in? (I'm seeing this slide when logged in.)

ABorbaWMF subscribed.

Looks good on 2.7.50556-r-2025-11-13, on a OnePlus 8 running Android 13, and a Pixel 6 running Android 16. Tested logged in and out.