package Ġcom . cop per leaf . ball ast . examples . bg g . repository Ċ Ċ import Ġcom . cop per leaf . ball ast . Ball ast ViewModel Configuration Ċ import Ġcom . cop per leaf . ball ast . examples . bg g . api . B gg Api Ċ import Ġcom . cop per leaf . ball ast . examples . bg g . models . B gg Hot ListItem Ċ import Ġcom . cop per leaf . ball ast . examples . bg g . models . Hot ListType Ċ import Ġcom . cop per leaf . ball ast . repository . Ball ast Repository Ċ import Ġcom . cop per leaf . ball ast . repository . bus . EventBus Ċ import Ġcom . cop per leaf . ball ast . repository . cache . Cached Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . map Ċ Ċ class ĠB gg Repository Impl ( ĊĠĠĠ Ġcoroutine Scope : ĠCor outine Scope , ĊĠĠĠ Ġevent Bus : ĠEvent Bus , ĊĠĠĠ Ġconfig Builder : ĠBall ast ViewModel Configuration . Builder , ĊĠĠĠ Ġapi : ĠB gg Api , Ċ ) Ġ: ĠBall ast Repository < B gg Repository Contract . Inputs , ĠB gg Repository Contract . State >( ĊĠĠĠ Ġcoroutine Scope Ġ= Ġcoroutine Scope , ĊĠĠĠ Ġevent Bus Ġ= Ġevent Bus , ĊĠĠĠ Ġconfig Builder Ġ= Ġconfig Builder ĊĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . input Handler Ġ= ĠB gg Repository Input Handler ( event Bus , Ġapi ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . initialState Ġ= ĠB gg Repository Contract . State () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . name Ġ= Ġ" B gg ĠRepository " ĊĠĠĠĠĠĠĠ Ġ}, Ċ ), ĠB gg Repository Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġclear All Caches () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Send ( B gg Repository Contract . Inputs . Clear Caches ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget B gg Hot List ( hot ListType : ĠHot ListType , Ġrefresh Cache : ĠBoolean ): ĠFlow < Cached < List < B gg Hot ListItem >>> Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Send ( B gg Repository Contract . Inputs . Initialize ) ĊĠĠĠĠĠĠĠ Ġtry Send ( B gg Repository Contract . Inputs . Refresh B gg Hot List ( hot ListType , Ġrefresh Cache )) ĊĠĠĠĠĠĠĠ Ġreturn Ġobserve States () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . bg g Hot List Ġ} ĊĠĠĠ Ġ} Ċ } Ċ