package Ġsw an . biz . ko ala . fragment Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcom . five h undred px . gre ed ol ayout . G reed o LayoutManager Ċ import Ġcom . five h undred px . gre ed ol ayout . G reed o Layout Size Calculator Ċ import Ġcom . five h undred px . gre ed ol ayout . G reed o Spacing Item Decoration Ċ import Ġcom . mike pen z . fast adapter . commons . adapters . Fast Item Adapter Ċ import Ġkotlinx . android . synt hetic . main . m zt _ master _ galaxy .* Ċ import Ġme . dk z wm . widget . srl . Smooth Refresh Layout Ċ import Ġsw am . atom . core . extensions . obtain ViewModel Ċ import Ġsw an . atom . core . base . Atom Core Base Fragment Ċ import Ġsw an . biz . ko ala . Ko ala Application Impl Ċ import Ġsw an . biz . ko ala . R Ċ import Ġsw an . biz . ko ala . adapter . item . M zt Sort edList Body Item Ċ import Ġsw an . biz . ko ala . network . IM z itu Request Service Ċ import Ġsw an . biz . ko ala . vm . M zt Master G alaxy ViewModel Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġste phen Ġon Ġ 1 3 / 0 3 / 2 0 1 8 . Ċ Ġ*/ Ċ class ĠM zt Master G alaxy Fragment Ġ: ĠAtom Core Base Fragment (), ĠSm ooth Refresh Layout . On Refresh Listener , ĠG reed o Layout Size Calculator . Size Calculator Delegate Ġ{ ĊĊĠĠĠ Ġvar Ġfast Item Adapter : ĠFast Item Adapter < M zt Sort edList Body Item >? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġratio : ĠMutable List < Double > Ġ= Ġmutable ListOf < Double >() ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate View ( in flater , Ġcontainer , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . m zt _ master _ galaxy , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġmaster G alaxy Refresh Container . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . setOn Refresh Listener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Disable Load More ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmaster G alaxy Recycler Container . let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Manager Ġ= ĠG reed o LayoutManager ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager . setMax Row Height ( Ko ala Application Impl . get Dimension Pixel Offset ( R . dim en . m zt _ res Dim ens G reed o Default Row Height )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . layout Manager Ġ= Ġlayout Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . addItem Decoration ( G reed o Spacing Item Decoration ( Ko ala Application Impl . get Dimension Pixel Offset ( R . dim en . m zt _ res Dim ens G reed o Default Spacing ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Has Fixed Size ( true ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfast Item Adapter Ġ= ĠFast Item Adapter < M zt Sort edList Body Item >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . adapter Ġ= Ġfast Item Adapter ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġval Ġmaster G alaxy ViewModel : ĠM zt Master G alaxy ViewModel ? Ġ= Ġobtain ViewModel ( M zt Master G alaxy ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġmaster G alaxy ViewModel ?. galaxy Category ?. observe ( this , Ġandroid . arch . lifecycle . Observer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Refresh Begin ( true ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġmaster G alaxy ViewModel ?. galaxy Data Center ?. observe ( this , Ġandroid . arch . lifecycle . Observer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitems : ĠMutable List < M zt Sort edList Body Item > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit ?. post List ?. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitems . add ( M zt Sort edList Body Item ( it )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaster G alaxy ViewModel . clear Adapter Item Data When First Page ( fast Item Adapter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfast Item Adapter ?. add ( items ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaster G alaxy Refresh Container . set Disable Load More (! Ġit ?. page Navigation Has Next !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaster G alaxy Refresh Container . refresh Complete () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfragment On First VisibleTo User () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmaster G alaxy ViewModel : ĠM zt Master G alaxy ViewModel ? Ġ= Ġobtain ViewModel ( M zt Master G alaxy ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġmaster G alaxy ViewModel ?. set Gal azy Category Value ( IM z itu Request Service . CATEGORY . MM ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Refresh Begin ( is Refresh : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmaster G alaxy ViewModel : ĠM zt Master G alaxy ViewModel ? Ġ= Ġobtain ViewModel ( M zt Master G alaxy ViewModel :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaster G alaxy ViewModel ?. load G alaxy Data Center ( is Refresh ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Refresh Complete ( is Successful : ĠBoolean ) Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġaspect Ratio For Index ( index : ĠInt ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġr : ĠDouble ? Ġ= Ġratio . get OrNull ( index ) ĊĠĠĠĠĠĠĠ Ġr Ġ= Ġr Ġ?: Ġ( Random (). nextInt ( 2 5 ) Ġ+ Ġ 5 5 . 0 ) Ġ/ Ġ 1 0 0 ĊĠĠĠĠĠĠĠ Ġratio . add ( index , Ġr ) ĊĠĠĠĠĠĠĠ Ġreturn Ġr ĊĠĠĠ Ġ} Ċ }