package Ġcom . y ves ch ion g . order spro b lem . fragments Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . y ves ch ion g . order spro b lem . App Ċ import Ġcom . y ves ch ion g . order spro b lem . R Ċ import Ġcom . y ves ch ion g . order spro b lem . activities . Pro vin ces Orders Activity Ċ import Ġcom . y ves ch ion g . order spro b lem . adapters . Province ListAdapter Ċ import Ġcom . y ves ch ion g . order spro b lem . extensions . launch Activity Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġkotlinx . android . synt hetic . main . order _ by _ province _ fragment . view .* Ċ Ċ class ĠOrder By Province Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance (): ĠOrder By Province Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠOrder By Province Fragment () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġprovince ListAdapter : ĠPro vince ListAdapter ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġprovince List Action Controller Ġ= Ġobject : ĠPro vince List Action Controller Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Clicked ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( province ListAdapter !!. getItem ViewType ( position )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPro vince ListAdapter . HEADER _ TYPE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext !!. launch Activity ( Pro vin ces Orders Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPro vince ListAdapter . ITEM _ TYPE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDo Ġnothing Ġfor Ġnow ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠPro vince List Action Controller Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Item Clicked ( position : ĠInt ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . order _ by _ province _ fragment , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġview . recyclerview . layout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( province ListAdapter Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDo Ġnot Ġfetch Ġthe Ġdata Ġagain Ġsince Ġwe Ġwill Ġget Ġthe Ġsame Ġresults Ġ( ass uming ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . recyclerview . adapter Ġ= Ġprovince ListAdapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠCurrently Ġonly Ġfetching Ġon Ġpage Ġ 1 ĊĠĠĠĠĠĠĠ ĠApp . graph . getRequest Handler . get Orders ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Iterable Ġ{ Ġit . orders Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. groupBy Ġ{ Ġit . shipping _ address . province Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġgroup Ġ-> Ġ! group . key . isNull OrEmpty () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġgroup Ġ-> Ġgroup . count (). map Ġ{ ĠPro vince ListAdapter . Province Orders ( group . key !! , Ġit . toInt ()) Ġ}. to Observable () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprovince ListAdapter Ġ= ĠPro vince ListAdapter ( result Ġas ĠArrayList < Province ListAdapter . Province Orders >, Ġcontext !! , Ġprovince List Action Controller ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . recyclerview . adapter Ġ= Ġprovince ListAdapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġerror Ġ-> Ġerror . printStackTrace () Ġ}) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} Ċ }