package Ġio . b umb um apps . radio . intern e tr adi op layer . presentation . data Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġio . b umb um apps . radio . intern e tr adi op layer . R Ċ import Ġio . b umb um apps . radio . intern e tr adi op layer . di . Scopes Ċ import Ġio . b umb um apps . radio . intern e tr adi op layer . domain . model . Media Ċ import Ġio . b umb um apps . radio . intern e tr adi op layer . extensions . visible Ċ import Ġio . b umb um apps . radio . intern e tr adi op layer . presentation . base . Base Fragment Ċ import Ġio . b umb um apps . radio . intern e tr adi op layer . presentation . navigation . Data Screen Ċ import Ġio . b umb um apps . radio . intern e tr adi op layer . presentation . navigation . Screen Context Ċ import Ġio . b umb um apps . radio . intern e tr adi op layer . presentation . navigation . Search Navigation Tree Ċ import Ġkotlinx . android . synt hetic . main . fragment _ data .* Ċ import Ġtoo th pick . T ooth pick Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠV lad im ir ĠM ik h ale v Ġ 2 1 . 0 3 . 2 0 1 9 . Ċ Ġ*/ Ċ Ċ class ĠData Fragment Ġ: ĠBase Fragment < Data Presenter , ĠData View >(), ĠData View Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEX TRA _ SCREEN _ ID Ġ= Ġ" EXTRA _ SCREEN _ ID " ĊĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( screen Context : ĠScreen Context ): ĠData Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠData Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( EXTRA _ SCREEN _ ID , Ġscreen Context . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġlayout Ġ= ĠR . layout . fragment _ data ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġscreen Context : ĠData Screen ĊĠĠĠ Ġprivate Ġval Ġdata Adapter Ġ= ĠData Adapter () ĊĊĠĠĠ Ġoverride Ġfun Ġprovide Presenter (): ĠData Presenter Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠT ooth pick . open Scopes ( Scopes . ROOT _ ACTIVITY , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getInstance ( Data Presenter :: class . java ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠT ooth pick . close Scope ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġarguments ?. getInt ( EXTRA _ SCREEN _ ID ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġscreen Context Ġ= ĠSearch Navigation Tree . get Screen ( id ) Ġas ĠData Screen ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġfetch Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsetup View ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsetup Data Recycler () ĊĠĠĠĠĠĠĠ Ġsetup Swipe To Refresh () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Data Recycler () Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Rv . adapter Ġ= Ġdata Adapter ĊĠĠĠĠĠĠĠ Ġdata Rv . layout Manager Ġ= ĠLinearLayoutManager ( require Context ()) ĊĠĠĠĠĠĠĠ Ġdata Adapter . on ItemClickListener Ġ= Ġ{ Ġpresenter . select Media ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Swipe To Refresh () Ġ{ ĊĠĠĠĠĠĠĠ Ġswipe To Refresh . setOn Refresh Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfetch Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġswipe To Refresh . is Refresh ing Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfetch Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . fetch Data ( screen Context . endpoint , Ġscreen Context . query ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// region Ġ= ============== ĠData View Ġ= ============= ĊĊĠĠĠ Ġoverride Ġfun ĠsetData ( data : ĠList < Media >) Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Adapter . data Ġ= Ġdata ĊĠĠĠĠĠĠĠ Ġdata Rv . scrollTo Position ( 0 ) ĊĠĠĠĠĠĠĠ Ġdata Rv . visible ( data . isNotEmpty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġselect Media ( media : ĠMedia ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdata Adapter . select Media ( media . uri ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Loading ( loading : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġswipe To Refresh . is Refresh ing Ġ= Ġloading ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// endregion Ċ } Ċ