package Ġcom . dream it . android quiz . quiz list . view Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . dream it . android quiz . MainActivity Ċ import Ġcom . dream it . android quiz . Quiz App Ċ import Ġcom . dream it . android quiz . R Ċ import Ġcom . dream it . android quiz . data . qu izz es . Qu izz es Repository Ċ import Ġcom . dream it . android quiz . data . qu izz es . local . Local Qu izz es Repository Ċ import Ġcom . dream it . android quiz . data . qu izz es . remote . Remote Qu izz es Repository Ċ import Ġcom . dream it . android quiz . net . Config Endpoints Ċ import Ġcom . dream it . android quiz . net . RestClient Ċ import Ġcom . dream it . android quiz . quiz item . view . Quiz Details Fragment Ċ import Ġcom . dream it . android quiz . quiz list . Qu izz es Contract Ċ import Ġcom . dream it . android quiz . quiz list . adapters . End less Scroll Listener Ċ import Ġcom . dream it . android quiz . quiz list . adapters . Qu izz es Adapter Ċ import Ġcom . dream it . android quiz . quiz list . model . Qu izz es Ċ import Ġcom . dream it . android quiz . quiz list . presenter . Qu izz es Presenter Ċ import Ġkotlinx . android . synt hetic . main . fragment _ qu izz es .* Ċ Ċ class ĠQu izz es Fragment Ġ: ĠFragment (), ĠQu izz es Contract . View , ĠQu izz es Adapter . On Qu izz es Adapter Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġquiz Repo : ĠQu izz es Repository ĊĠĠĠ Ġprivate Ġval Ġpresenter : ĠQu izz es Contract . Presenter Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠQu izz es Presenter ( quiz Repo , Ġthis ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġqu izz es Adapter Ġ= ĠQu izz es Adapter ( this ) ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlayout Manager : ĠLinearLayoutManager ĊĠĠĠ Ġprivate Ġval Ġend less Page : ĠEnd less Scroll Listener Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠEnd less Scroll Listener ( layout Manager ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonLoad More ( start From : ĠInt , Ġtotal Items Count : ĠInt , Ġview : ĠRecyclerView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . getNext Qu izz es ( start From ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġlayout Ġfor Ġthis Ġfragment ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ qu izz es , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġinit Presenter () ĊĠĠĠĠĠĠĠ Ġinit Views () ĊĊĠĠĠĠĠĠĠ Ġpresenter . get Qu izz es () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Presenter () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġquiz Service Ġ= ĠRest Client ( Config Endpoints . BASE _ URL ). setup RestClient () ĊĠĠĠĠĠĠĠ Ġval Ġremote Qu izz es Repository Ġ= ĠRemote Qu izz es Repository ( quiz Service ) ĊĠĠĠĠĠĠĠ Ġval Ġapp Ġ= Ġactivity ?. application Ġas ĠQu iz App ĊĠĠĠĠĠĠĠ Ġval Ġlocal Qu izz es Repository Ġ= ĠLocal Qu izz es Repository ( app . realm ) ĊĠĠĠĠĠĠĠ Ġquiz Repo Ġ= ĠQu izz es Repository ( local Qu izz es Repository , Ġremote Qu izz es Repository ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠ Ġrv _ qu izz es . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= Ġthis @ Qu izz es Fragment . layout Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġqu izz es Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd On Scroll Listener ( end less Page ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Qu izz es ( qu izz es : ĠQu izz es ) Ġ{ ĊĠĠĠĠĠĠĠ Ġqu izz es Adapter . reset Qu izz es ( qu izz es . items ) ĊĠĠĠĠĠĠĠ Ġend less Page . reset State () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Next Qu izz es ( qu izz es : ĠQu izz es ) Ġ{ ĊĠĠĠĠĠĠĠ Ġqu izz es Adapter . addAll ( qu izz es . items ) ĊĠĠĠĠĠĠĠ Ġend less Page . loading Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Error ( error : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġerror ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Quiz Clicked ( id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠQu iz Details Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġquiz Id Ġ= Ġid ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( it Ġas ĠMainActivity ). load Fragment ( this , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG Ġ= ĠQu izz es Fragment :: class . java . simple Name ĊĠĠĠ Ġ} Ċ } Ċ