package Ġcn . nie king . good sc enter . ui . fragment Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . widget . Grid LayoutManager Ċ import Ġandroid . support . v 7 . widget . Linear LayoutManager Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġcn . nie king . base library . ext . setVisible Ċ import Ġcn . nie king . base library . ext . start Loading Ċ import Ġcn . nie king . base library . ui . fragment . Base M vp Fragment Ċ import Ġcn . nie king . good sc enter . R Ċ import Ġcn . nie king . good sc enter . common . Goods Constant Ċ import Ġcn . nie king . good sc enter . data . protocol . Category Ċ import Ġcn . nie king . good sc enter . injection . component . D agger Category Component Ċ import Ġcn . nie king . good sc enter . injection . module . Category Module Ċ import Ġcn . nie king . good sc enter . presenter . Category Presenter Ċ import Ġcn . nie king . good sc enter . presenter . view . Category View Ċ import Ġcn . nie king . good sc enter . ui . activity . Goods Activity Ċ import Ġcn . nie king . good sc enter . ui . adapter . Second Category Adapter Ċ import Ġcn . nie king . good sc enter . ui . adapter . Top Category Adapter Ċ import Ġcom . ken ny c . view . Multi State View Ċ import Ġkotlinx . android . synt hetic . main . fragment _ category .* Ċ import Ġorg . jetbrains . ank o . startActivity Ċ Ċ class ĠCategory Fragment Ġ: ĠBase M vp Fragment < Category Presenter >(), ĠCategory View Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtop Adapter : ĠTop Category Adapter ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsecond Adapter : ĠSecond Category Adapter ĊĊĠĠĠ Ġoverride Ġfun Ġinject Component () Ġ{ ĊĠĠĠĠĠĠĠ ĠD agger Category Component . builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. activity Component ( m Activity Component ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. category Module ( Category Module ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inject ( this ) ĊĠĠĠĠĠĠĠ Ġm Presenter . m View Ġ= Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater ?, Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate View ( in flater , Ġcontainer , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater ?. inflate ( R . layout . fragment _ category , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView ?, ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġinit View () ĊĠĠĠĠĠĠĠ Ġload Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Top Category Rv . layout Manager Ġ= ĠLinearLayoutManager ( activity ) ĊĠĠĠĠĠĠĠ Ġtop Adapter Ġ= ĠTop Category Adapter ( activity ) ĊĠĠĠĠĠĠĠ Ġm Top Category Rv . adapter Ġ= Ġtop Adapter ĊĠĠĠĠĠĠĠ Ġtop Adapter . on Item Click Ġ{ Ġitem , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( category Ġin Ġtop Adapter . data List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory . isSelected Ġ= Ġitem . id Ġ== Ġcategory . id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop Adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Data ( item . id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Second Category Rv . layout Manager Ġ= ĠGrid LayoutManager ( activity , Ġ 3 ) ĊĠĠĠĠĠĠĠ Ġsecond Adapter Ġ= ĠSecond Category Adapter ( activity ) ĊĠĠĠĠĠĠĠ Ġm Second Category Rv . adapter Ġ= Ġsecond Adapter ĊĠĠĠĠĠĠĠ Ġsecond Adapter . on Item Click Ġ{ Ġitem , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity < Goods Activity >( Goods Constant . KEY _ CATEGORY _ ID Ġto Ġitem . id ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Data ( parentId : ĠInt Ġ= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( parentId Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Multi State View . start Loading () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Presenter . get Category ( parentId ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Get Category Result ( result : ĠMutable List < Category > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġnull Ġ&& Ġresult . size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result [ 0 ]. parentId Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult [ 0 ]. isSelected Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Adapter . setData ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Presenter . get Category ( result [ 0 ]. id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsecond Adapter . setData ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Top Category Iv . setVisible ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Category Title Tv . setVisible ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Multi State View . view State Ġ= ĠMulti State View . VIEW _ STATE _ CONTENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Top Category Iv . setVisible ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Category Title Tv . setVisible ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Multi State View . view State Ġ= ĠMulti State View . VIEW _ STATE _ EMPTY ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }