package Ġcom . g ch rist ov . news feed . k mm feed data . use case Ċ Ċ import Ġcom . g ch rist ov . news feed . k mm feed data . Feed Page Ċ import Ġcom . g ch rist ov . news feed . k mm feed data . model . Decorated Feed Page Ċ import Ġcom . g ch rist ov . news feed . k mm feed data . model . Section ed Feed Ċ import Ġkotlinx . coroutines . Coroutine Dispatcher Ċ import Ġkotlinx . coroutines . with Context Ċ Ċ class ĠFlat ten Section ed Feed UseCase ( private Ġval Ġdispatcher : ĠCor outine Dispatcher ) Ġ{ ĊĠĠĠ Ġsuspend Ġoperator Ġfun Ġinvoke ( feed : ĠSection ed Feed ): ĠDecor ated Feed Page Ġ= ĊĠĠĠĠĠĠĠ Ġwith Context ( dispatcher ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitems Ġ= Ġfeed . sections . flatMap Ġ{ Ġit . feed Items Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpage Ġ= ĠFeed Page ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage Id Ġ= Ġfeed . currentPage , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpages Ġ= Ġfeed . pages ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDecor ated Feed Page ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġraw Ġ= Ġpage , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitems Ġ= Ġitems ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ċ }