package Ġcom . news . domain . use cases . news list Ċ Ċ import Ġcom . news . data . network . Result Data Ċ import Ġcom . news . data . repository . Data Repository Ċ import Ġcom . news . domain . models . news list . News Response Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . flow Ċ import Ġkotlinx . coroutines . flow . flow On Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠNews UseCase Ġ@ Inject Ċ constructor ( ĊĠĠĠ Ġprivate Ġval Ġdata Repository : ĠData Repository , Ċ ) Ġ{ ĊĊĠĠĠ Ġoperator Ġfun Ġinvoke ( ĊĠĠĠĠĠĠĠ Ġsection : ĠString , ĊĠĠĠĠĠĠĠ Ġperiod : ĠInt , ĊĠĠĠ Ġ): ĠFlow < Result Data < News Response >> Ġ= Ġflow Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Result Data . Loading ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnews Response Ġ= Ġdata Repository . get News List ( section , Ġperiod ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( Result Data . Success ( news Response )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( exception : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemit ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult Data . Exception ( exception ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}. flow On ( Dispatch ers . IO ) Ċ }