package Ġcom . envelope . pick y app . ui . choose interest s Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . Motion Event Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . envelope . pick y app . R Ċ import Ġcom . envelope . pick y app . data . dto . Interest Ċ import Ġandroidx . recyclerview . widget . St agger ed Grid LayoutManager Ċ import Ġcom . andro gn ito . flash bar . Flash bar Ċ import Ġcom . envelope . pick y app . ui . new sh ome . News Home Activity Ċ import Ġcom . envelope . pick y app . ui . register email . Register Email Activity Ċ import Ġcom . google . android . flex box .* Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . m oo ve it . library . Fake it Ċ import Ġes . dm oral . prefs . Prefs Ċ import Ġkotlinx . android . synt hetic . main . choose _ interest s _ fragment .* ĊĊ Ċ class ĠChoose Inter ests Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance () Ġ= ĠChoose Inter ests Fragment () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠChoose Inter ests ViewModel ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . choose _ interest s _ fragment , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Providers . of ( this ). get ( Choose Inter ests ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠUse Ġthe ĠViewModel Ċ Ċ // ĠĠĠĠĠĠĠ ĠFake in ĊĠĠĠĠĠĠĠ ĠFake it . init () ĊĊĠĠĠĠĠĠĠ Ġval Ġind Ġ= Ġmutable ListOf < Interest >( Interest (" Food "), Interest (" Foot ball "), Interest (" Sport "), Interest (" Pri em ier ĠLeague "), Interest (" Sport "), Interest (" Sport ")) ĊĊĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġ 1 .. 2 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġind . add ( Interest ( Fake it . music (). instrument ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġ 1 .. 1 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġind . add ( Interest ( Fake it . rock Band (). name ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġ 1 .. 2 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġind . add ( Interest ( Fake it . artist (). name ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . all Inter ests . value Ġ= Ġind ĊĠĠĠĠĠĠĠ Ġval Ġlayout Manager Ġ= ĠFlex box LayoutManager ( context ) ĊĊĠĠĠĠĠĠĠ Ġlayout Manager . flex Direction Ġ= ĠFlex Direction . ROW ĊĠĠĠĠĠĠĠ Ġlayout Manager . align Items Ġ= ĠAlign Items . ST RET CH ĊĊĠĠĠĠĠĠĠ Ġlayout Manager . flex Wrap Ġ= ĠFlex Wrap . WRAP ĊĊĠĠĠĠĠĠĠ Ġre cycler interest s . layout Manager Ġ= Ġlayout Manager ĊĊĠĠĠĠĠĠĠ Ġre cycler interest s . adapter Ġ= ĠChoose Inter ests Adapter ( viewModel . all Inter ests . value !! , viewModel . chosen Interest ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbuilder = Flash bar . Builder ( activity !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. gravity ( Flash bar . Gravity . BOTTOM ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. primary Action Text (" Continue ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. primary Action Text Size In Sp ( 2 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. message Size In Sp ( 2 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. backgroundColor ( resources . getColor ( R . color . color Primary )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. message (" You 're Ġall Ġset Ġ! ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. primary Action Tap Listener ( object Ġ: Flash bar . On Action Tap Listener { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Action T apped ( bar : ĠFlash bar ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠP refs . with ( context !! ). write (" interest s ", ĠGson (). toJson ( viewModel . chosen Interest . value )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( activity , ĠNews Home Activity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity !!. finish () ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ ĠviewModel . chosen Interest . observe ( this , android x . lifecycle . Observer Ġ{ Ġit Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsize Ġ= Ġ Ġit . size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( size Ġin Ġ 1 .. 9 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( builder . is Showing ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context ," Select Ġ${ 1 0 - size } Ġmore Ġto Ġcontinue ", Toast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else Ġif ( it . size >= 1 0 ){ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif (! builder . is Showing ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĊĊĊĠĠĠĠĠĠĠ Ġfilter text . add TextChanged Listener ( object Ġ: Text Watcher { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ?) Ġ{ ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( recycler interest s . adapter Ġas ĠChoose Inter ests Adapter ). interest s Ġ= ĠviewModel . all Inter ests . value !!. filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . name . toLowerCase (). contains ( s !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. to Mutable List () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( recycler interest s . adapter Ġas ĠChoose Inter ests Adapter ). notify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ