@@ -225,8 +225,8 @@ class YearInReviewViewModel() : ViewModel() {
225225 return withContext(Dispatchers .IO ) {
226226 // TODO: Show a bunch of generic slides for English users - non-logged in.
227227 listOf (
228- readingHoursScreen (1 ),
229- readingHoursScreen (1 )
228+ spentReadingHoursScreen (1 ),
229+ spentReadingHoursScreen (1 )
230230 )
231231 }
232232 }
@@ -235,8 +235,8 @@ class YearInReviewViewModel() : ViewModel() {
235235 return withContext(Dispatchers .IO ) {
236236 // TODO: Show a bunch of generic slides for non-English users - non-logged in.
237237 listOf (
238- readingHoursScreen (1 ),
239- readingHoursScreen (1 )
238+ spentReadingHoursScreen (1 ),
239+ spentReadingHoursScreen (1 )
240240 )
241241 }
242242 }
@@ -245,8 +245,8 @@ class YearInReviewViewModel() : ViewModel() {
245245 return withContext(Dispatchers .IO ) {
246246 // TODO: Show a bunch of generic slides for logged in English users.
247247 listOf (
248- readingHoursScreen (1 ),
249- readingHoursScreen (1 )
248+ spentReadingHoursScreen (1 ),
249+ spentReadingHoursScreen (1 )
250250 )
251251 }
252252 }
@@ -255,20 +255,242 @@ class YearInReviewViewModel() : ViewModel() {
255255 return withContext(Dispatchers .IO ) {
256256 // TODO: Show a bunch of generic slides for logged in users.
257257 listOf (
258- readingHoursScreen (1 ),
259- readingHoursScreen (1 )
258+ spentReadingHoursScreen (1 ),
259+ spentReadingHoursScreen (1 )
260260 )
261261 }
262262 }
263263
264- suspend fun readingHoursScreen ( n : Int ): YearInReviewScreenData .StandardScreen {
264+ suspend fun spentReadingHoursScreen ( vararg params : Int ): YearInReviewScreenData .StandardScreen {
265265 return withContext(Dispatchers .IO ) {
266266 // TODO: yir123
267267 YearInReviewScreenData .StandardScreen (
268268 animatedImageResource = R .drawable.year_in_review_puzzle_pieces,
269269 staticImageResource = R .drawable.year_in_review_puzzle_pieces,
270- headlineText = " We spent over $n billion hours reading" ,
271- bodyText = " People spent over 2 billion hours—nearly 275,000 years!—reading English Wikipedia in 2025. Wikipedia is there when you want to learn about our changing world, win a bet among friends, or answer a curious child’s question."
270+ headlineText = " We spent over 2 billion hours reading" ,
271+ bodyText = " TBD"
272+ )
273+ }
274+ }
275+
276+ suspend fun spentReadingMinutesScreen (isEnglishWiki : Boolean , vararg params : Int ): YearInReviewScreenData .StandardScreen {
277+ return withContext(Dispatchers .IO ) {
278+ // TODO: yir99 + yir100 => need to check if it is en or not en
279+ YearInReviewScreenData .StandardScreen (
280+ animatedImageResource = R .drawable.year_in_review_puzzle_pieces,
281+ staticImageResource = R .drawable.year_in_review_puzzle_pieces,
282+ headlineText = " You spent 924 minutes reading 350 articles in 2025" ,
283+ bodyText = " TBD"
284+ )
285+ }
286+ }
287+
288+ suspend fun popularArticlesScreen (vararg params : Int ): YearInReviewScreenData .StandardScreen {
289+ return withContext(Dispatchers .IO ) {
290+ // TODO: yir127 + 104
291+ YearInReviewScreenData .StandardScreen (
292+ animatedImageResource = R .drawable.year_in_review_puzzle_pieces,
293+ staticImageResource = R .drawable.year_in_review_puzzle_pieces,
294+ headlineText = " English Wikipedia’s most popular articles" ,
295+ bodyText = " TBD"
296+ )
297+ }
298+ }
299+
300+ suspend fun globalSavedArticlesScreen (vararg params : Int ): YearInReviewScreenData .StandardScreen {
301+ return withContext(Dispatchers .IO ) {
302+ // TODO: yir126
303+ YearInReviewScreenData .StandardScreen (
304+ animatedImageResource = R .drawable.year_in_review_puzzle_pieces,
305+ staticImageResource = R .drawable.year_in_review_puzzle_pieces,
306+ headlineText = " We had over 37 million saved articles" ,
307+ bodyText = " TBD"
308+ )
309+ }
310+ }
311+
312+ suspend fun availableLanguagesScreen (vararg params : Int ): YearInReviewScreenData .StandardScreen {
313+ return withContext(Dispatchers .IO ) {
314+ // TODO: yir123
315+ YearInReviewScreenData .StandardScreen (
316+ animatedImageResource = R .drawable.year_in_review_puzzle_pieces,
317+ staticImageResource = R .drawable.year_in_review_puzzle_pieces,
318+ headlineText = " Wikipedia was available in more than 300 languages" ,
319+ bodyText = " TBD"
320+ )
321+ }
322+ }
323+
324+ suspend fun viewedArticlesTimesScreen (vararg params : Int ): YearInReviewScreenData .StandardScreen {
325+ return withContext(Dispatchers .IO ) {
326+ // TODO: yir125 + yir103
327+ YearInReviewScreenData .StandardScreen (
328+ animatedImageResource = R .drawable.year_in_review_puzzle_pieces,
329+ staticImageResource = R .drawable.year_in_review_puzzle_pieces,
330+ headlineText = " We have viewed Wikipedia articles more than 1 billion times" ,
331+ bodyText = " TBD"
332+ )
333+ }
334+ }
335+
336+ suspend fun readingPatternsScreen (vararg params : Int ): YearInReviewScreenData .StandardScreen {
337+ return withContext(Dispatchers .IO ) {
338+ // TODO: yir106 + yir107
339+ YearInReviewScreenData .StandardScreen (
340+ animatedImageResource = R .drawable.year_in_review_puzzle_pieces,
341+ staticImageResource = R .drawable.year_in_review_puzzle_pieces,
342+ headlineText = " You have clear reading patterns" ,
343+ bodyText = " TBD"
344+ )
345+ }
346+ }
347+
348+ suspend fun interestingCategoriesScreen (isEnglishWiki : Boolean , params : Int ): YearInReviewScreenData .StandardScreen {
349+ return withContext(Dispatchers .IO ) {
350+ // TODO: yir108 + yir110 => confirm the difference.
351+ YearInReviewScreenData .StandardScreen (
352+ animatedImageResource = R .drawable.year_in_review_puzzle_pieces,
353+ staticImageResource = R .drawable.year_in_review_puzzle_pieces,
354+ headlineText = " Your most interesting categories" ,
355+ bodyText = " TBD"
356+ )
357+ }
358+ }
359+
360+ suspend fun topArticlesScreen (vararg params : Int ): YearInReviewScreenData .StandardScreen {
361+ return withContext(Dispatchers .IO ) {
362+ // TODO: yir109 + yir105
363+ YearInReviewScreenData .StandardScreen (
364+ animatedImageResource = R .drawable.year_in_review_puzzle_pieces,
365+ staticImageResource = R .drawable.year_in_review_puzzle_pieces,
366+ headlineText = " Your top articles" ,
367+ bodyText = " TBD"
368+ )
369+ }
370+ }
371+
372+ suspend fun geoWithArticlesScreen (vararg params : Int ): YearInReviewScreenData .GeoScreen {
373+ return withContext(Dispatchers .IO ) {
374+ // TODO: yir112
375+ YearInReviewScreenData .GeoScreen (
376+ coordinates = mapOf (" lat" to listOf (34 , 56 ), " lon" to listOf (- 123 , 45 )),
377+ headlineText = " Articles you read are closest to France" ,
378+ bodyText = " TBD"
379+ )
380+ }
381+ }
382+
383+ suspend fun localSavedArticlesScreen (vararg params : Int ): YearInReviewScreenData .StandardScreen {
384+ return withContext(Dispatchers .IO ) {
385+ // TODO: yir113
386+ YearInReviewScreenData .StandardScreen (
387+ animatedImageResource = R .drawable.year_in_review_puzzle_pieces,
388+ staticImageResource = R .drawable.year_in_review_puzzle_pieces,
389+ headlineText = " You saved 25 articles" ,
390+ bodyText = " TBD"
391+ )
392+ }
393+ }
394+
395+ suspend fun editedTimesScreen (vararg params : Int ): YearInReviewScreenData .StandardScreen {
396+ return withContext(Dispatchers .IO ) {
397+ // TODO: yir114
398+ YearInReviewScreenData .StandardScreen (
399+ animatedImageResource = R .drawable.year_in_review_puzzle_pieces,
400+ staticImageResource = R .drawable.year_in_review_puzzle_pieces,
401+ headlineText = " You edited Wikipedia 150 times" ,
402+ bodyText = " TBD"
403+ )
404+ }
405+ }
406+
407+ suspend fun editedViewsScreen (vararg params : Int ): YearInReviewScreenData .StandardScreen {
408+ return withContext(Dispatchers .IO ) {
409+ // TODO: yir115
410+ YearInReviewScreenData .StandardScreen (
411+ animatedImageResource = R .drawable.year_in_review_puzzle_pieces,
412+ staticImageResource = R .drawable.year_in_review_puzzle_pieces,
413+ headlineText = " Your edits have been viewed more than 14,791 times recently" ,
414+ bodyText = " TBD"
415+ )
416+ }
417+ }
418+
419+ suspend fun editorsEditsScreen (vararg params : Int ): YearInReviewScreenData .StandardScreen {
420+ return withContext(Dispatchers .IO ) {
421+ // TODO: yir116
422+ YearInReviewScreenData .StandardScreen (
423+ animatedImageResource = R .drawable.year_in_review_puzzle_pieces,
424+ staticImageResource = R .drawable.year_in_review_puzzle_pieces,
425+ headlineText = " Editors on the official Wikipedia apps made more than 452,257 edits" ,
426+ bodyText = " TBD"
427+ )
428+ }
429+ }
430+
431+ suspend fun editedPerMinuteScreen (vararg params : Int ): YearInReviewScreenData .StandardScreen {
432+ return withContext(Dispatchers .IO ) {
433+ // TODO: yir117
434+ YearInReviewScreenData .StandardScreen (
435+ animatedImageResource = R .drawable.year_in_review_puzzle_pieces,
436+ staticImageResource = R .drawable.year_in_review_puzzle_pieces,
437+ headlineText = " Wikipedia was edited 342 times per minute" ,
438+ bodyText = " TBD"
439+ )
440+ }
441+ }
442+
443+ suspend fun editorsChangesScreen (vararg params : Int ): YearInReviewScreenData .StandardScreen {
444+ return withContext(Dispatchers .IO ) {
445+ // TODO: yir118
446+ YearInReviewScreenData .StandardScreen (
447+ animatedImageResource = R .drawable.year_in_review_puzzle_pieces,
448+ staticImageResource = R .drawable.year_in_review_puzzle_pieces,
449+ headlineText = " Editors made nearly 82 million changes this year" ,
450+ bodyText = " TBD"
451+ )
452+ }
453+ }
454+
455+ suspend fun addedBytesScreen (vararg params : Int ): YearInReviewScreenData .StandardScreen {
456+ return withContext(Dispatchers .IO ) {
457+ // TODO: yir119
458+ YearInReviewScreenData .StandardScreen (
459+ animatedImageResource = R .drawable.year_in_review_puzzle_pieces,
460+ staticImageResource = R .drawable.year_in_review_puzzle_pieces,
461+ headlineText = " Over 3 billion bytes added" ,
462+ bodyText = " TBD"
463+ )
464+ }
465+ }
466+
467+ suspend fun newIconUnlockedScreen (vararg params : Int ): YearInReviewScreenData .StandardScreen {
468+ return withContext(Dispatchers .IO ) {
469+ // TODO: yir121
470+ YearInReviewScreenData .StandardScreen (
471+ animatedImageResource = R .drawable.year_in_review_puzzle_pieces,
472+ staticImageResource = R .drawable.year_in_review_puzzle_pieces,
473+ headlineText = " New icon unlocked" ,
474+ bodyText = " TBD" ,
475+ unlockIcon = UnlockIconConfig (
476+ isUnlocked = true
477+ )
478+ )
479+ }
480+ }
481+
482+ suspend fun unlockCustomIconScreen (vararg params : Int ): YearInReviewScreenData .StandardScreen {
483+ return withContext(Dispatchers .IO ) {
484+ // TODO: yir122
485+ YearInReviewScreenData .StandardScreen (
486+ animatedImageResource = R .drawable.year_in_review_puzzle_pieces,
487+ staticImageResource = R .drawable.year_in_review_puzzle_pieces,
488+ headlineText = " Unlock your custom contributor icon" ,
489+ bodyText = " TBD" ,
490+ bottomButton = ButtonConfig (
491+ text = " Donate" ,
492+ onClick = { /* TODO: handle click */ }
493+ )
272494 )
273495 }
274496 }
0 commit comments