package Ġcom . p oc . f io alpha . a 1 0 0 top games . domain . use case Ċ Ċ import Ġcom . p oc . f io alpha . a 1 0 0 top games . data . Repository Ċ import Ġcom . p oc . f io alpha . a 1 0 0 top games . domain . model . Games Domain Ċ import Ġio . reactivex . Single Ċ import Ġjavax . inject . Inject ĊĊ Ċ interface ĠUse Case Base Ġ< T > Ġ{ ĊĠĠĠ Ġfun Ġ Ġexecute (): ĠT Ċ } Ċ Ċ interface ĠIs Connected Network UseCase : ĠUse Case Base < Single < Boolean >> Ċ Ċ class ĠIs Connected Network UseCase Impl Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġrepository : ĠRepository Ċ ): ĠIs Connected Network UseCase { ĊĊĠĠĠ Ġoverride Ġfun Ġexecute (): ĠSingle < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrepository . isConnected () ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ interface ĠGet Games Top UseCase : ĠUse Case Base < Single < List < Games Domain >>> Ġ{ ĊĠĠĠ Ġfun Ġset Page ( page : ĠInt ): ĠGet Games Top UseCase ĊĠĠĠ Ġfun Ġset Connected ( isConnected : ĠBoolean ): ĠGet Games Top UseCase Ċ } Ċ Ċ class ĠGet Games Top UseCase Impl Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġrepository : ĠRepository Ċ ): ĠGet Games Top UseCase { ĊĊĠĠĠ Ġprivate Ġvar Ġpage : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġprivate Ġvar Ġis Connected : ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun Ġset Connected ( isConnected : ĠBoolean ) Ġ= Ġapply Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . isConnected Ġ= Ġis Connected ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Page ( page : ĠInt ) Ġ= Ġapply Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . page Ġ= Ġpage ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġexecute (): ĠSingle < List < Games Domain >> Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( page Ġ> Ġ 1 0 0 ) Ġreturn ĠSingle . just ( emptyList ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġrepository . get Top Games ( page , Ġis Connected ) ĊĠĠĠ Ġ} Ċ }