package Ġcom . cm devs . kotlin project . view . main . home Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 7 . widget . Grid LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Toast Ċ import Ġcom . cm devs . kotlin project . R Ċ import Ġcom . cm devs . kotlin project . data . source . f lick er . F lick er Repository Ċ import Ġcom . cm devs . kotlin project . data . source . image . Image Repository Ċ import Ġcom . cm devs . kotlin project . view . main . detail . Detail Image Bottom Sheet Ċ import Ġcom . cm devs . kotlin project . view . main . home . adapter . Image Recycler Adapter Ċ import Ġcom . cm devs . kotlin project . view . main . home . presenter . Home Contract Ċ import Ġcom . cm devs . kotlin project . view . main . home . presenter . Home Presenter Ċ import Ġkotlinx . android . synt hetic . main . fragment _ home .* ĊĊ Ċ class ĠHome Fragment Ġ: ĠFragment (), ĠHome Contract . View Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġhome Presenter Ġ: ĠHome Presenter Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠHome Presenter ( this @ Home Fragment , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF lick er Repository , Ġimage Recycler Adapter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġimage Recycler Adapter Ġ: ĠImage Recycler Adapter Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠImage Recycler Adapter ( this @ Home Fragment . context !! ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ= Ġinflater ?. inflate ( R . layout . fragment _ home , Ġcontainer , Ġfalse ) ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġ// home Presenter . load Image () ĊĠĠĠĠĠĠĠ Ġhome Presenter . load F lick er Image () ĊĊĠĠĠĠĠĠĠ Ġre cycler _ view . run Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġimage Recycler Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠGrid LayoutManager ( this @ Home Fragment . context , Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd On Scroll Listener ( re cyclerView On Scroll Listener ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġre cycler _ view ?. remove On Scroll Listener ( re cyclerView On Scroll Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġre cyclerView On Scroll Listener Ġ= Ġobject Ġ: ĠRecyclerView . On Scroll Listener () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Sc rolled ( re cyclerView : ĠRecyclerView ?, Ġdx : ĠInt , Ġdy : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Sc rolled ( re cyclerView , Ġdx , Ġdy ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvisible ItemCount Ġ= Ġre cyclerView ?. child Count Ġas ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtotal ItemCount Ġ= Ġimage Recycler Adapter . item Count ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirst Visible Item Ġ= Ġ( re cyclerView ?. layout Manager Ġas ĠGrid LayoutManager ). findFirst Visible Item Position () Ġ?: Ġ 0 ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif (! home Presenter . isLoading Ġ&& Ġ( first Visible Item + visible ItemCount ) Ġ>= Ġtotal ItemCount - 5 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// home Presenter . load Image () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhome Presenter . load F lick er Image () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Bottom Sheet Dialog ( photo Id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( is Detached ) Ġreturn ĊĊĠĠĠĠĠĠĠ ĠDetail Image Bottom Sheet . create ( photo Id ). show ( activity !!. support FragmentManager , Ġ" Detail Image Bottom Sheet ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhide Progress () Ġ{ ĊĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= ĠView . GONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Progress () Ġ{ ĊĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= ĠView . VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Load Fail () Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( is Detached ) Ġreturn ĊĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" Load ĠFail ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Load Fail ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( is Detached ) Ġreturn ĊĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġmessage , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} Ċ Ċ } ĊĊ