package Ġcom . nik ita . movies _ shm oo v ies . post ers Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . widget . Swipe Refresh Layout Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . support . v 7 . widget . St agger ed Grid LayoutManager Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġcom . are l lo mobile . mvp . presenter . Inject Presenter Ċ import Ġcom . are l lo mobile . mvp . presenter . Provide Presenter Ċ import Ġcom . nik ita . movies _ shm oo v ies . R Ċ import Ġcom . nik ita . movies _ shm oo v ies . app Module Ċ import Ġcom . nik ita . movies _ shm oo v ies . common . EXTRA _ TYPE Ċ import Ġcom . nik ita . movies _ shm oo v ies . common . mvp . Base M vp Fragment Ċ import Ġcom . nik ita . movies _ shm oo v ies . common . mvp . Error Desc Ċ import Ġcom . nik ita . movies _ shm oo v ies . common . utils . find View Ċ Ċ class ĠPost ers Fragment Ġ: ĠBase M vp Fragment < Post ers PM >(), ĠPost ers View Ġ{ ĊĠĠĠ Ġprivate Ġval Ġadapter Ġ= ĠMov ies Adapter () ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġswipe Refresh : ĠSw ipe Refresh Layout ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( type : ĠType ): ĠPost ers Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠPost ers Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= ĠBundle ( 1 ). apply Ġ{ Ġput String ( EXTRA _ TYPE , Ġtype . name ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfragment ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Inject Presenter ĊĠĠĠ Ġlateinit Ġvar Ġpresenter : ĠPost ers Presenter ĊĊĠĠĠ Ġ@ Provide Presenter ĊĠĠĠ Ġfun Ġprovide Presenter (): ĠPost ers Presenter Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtype Ġ= ĠType . valueOf ( arguments . getString ( EXTRA _ TYPE )) ĊĠĠĠĠĠĠĠ Ġval Ġapp Module Ġ= Ġactivity . app Module ĊĠĠĠĠĠĠĠ Ġval Ġbehavior Ġ= Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType . Movies Up coming Ġ-> ĠMovie Up coming Post ers Behavior ( app Module . post ers Interactor , Ġapp Module . app Router ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType . Movies Pop ular Ġ-> ĠMovie Pop ular Post ers Behavior ( app Module . post ers Interactor , Ġapp Module . app Router ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType . Movies Top R ated Ġ-> ĠMovie Top R ated Post ers Behavior ( app Module . post ers Interactor , Ġapp Module . app Router ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType . Tv Shows Ġ-> ĠT v Post ers Behavior ( app Module . post ers Interactor , Ġapp Module . app Router ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠType . People Ġ-> ĠPeople Post ers Behavior ( app Module . post ers Interactor , Ġapp Module . app Router ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠPost ers Presenter ( behavior ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġlayout : ĠInt Ġ= ĠR . layout . post ers _ content ĊĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġre cyclerView Ġ= Ġview . find View < RecyclerView >( R . id . recycler _ view ) ĊĠĠĠĠĠĠĠ Ġswipe Refresh Ġ= Ġview . find View < Swipe Refresh Layout >( R . id . swipe _ refresh ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . layout Manager Ġ= ĠSt agger ed Grid LayoutManager ( 2 , ĠSt agger ed Grid LayoutManager . VERTICAL ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= Ġadapter ĊĊĠĠĠĠĠĠĠ Ġpresenter . item Click Action Ġ= Ġ{ Ġpresenter . on Post er Click ( it . id ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġswipe Refresh . setOn Refresh Listener ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . on Refresh Triggered () ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Content ( content : ĠPost ers PM , Ġpagination : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . setContent ( content , Ġpagination ) ĊĠĠĠĠĠĠĠ Ġswipe Refresh . is Refresh ing Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġif Ġ( pagination ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . data . addAll ( content . post ers . to Mutable List ()) Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . data Ġ= Ġcontent . post ers . to Mutable List () ĊĊĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġswitch To Error ( error Desc : ĠError Desc ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . switch To Error ( error Desc ) ĊĠĠĠĠĠĠĠ Ġswipe Refresh . is Refresh ing Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġswitch To Loading ( pull To Refresh : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . switch To Loading ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġenum Ġclass ĠType Ġ{ ĊĠĠĠĠĠĠĠ ĠMov ies Up coming , ĠMov ies Pop ular , ĠMov ies Top R ated , ĠT v Shows , ĠPeople ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠMov ies ViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimage Ġ= ĠitemView . find View < ImageView >( R . id . poster _ image ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠMov ies Adapter Ġ: ĠRecyclerView . Adapter < Movies ViewHolder >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠMov ies ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . on Bind ViewHolder ( holder , Ġposition ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠMov ies ViewHolder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġpresenter . onCreate ViewHolder ( parent , Ġview Type ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġpresenter . getItem Count () ĊĠĠĠ Ġ} Ċ Ċ }