package Ġcom . habit 3 . android . ui . habit . fragment Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . google . android . material . floating action button . Floating ActionButton Ċ import Ġcom . habit 3 . android . H abit Application Ċ import Ġcom . habit 3 . android . R Ċ import Ġcom . habit 3 . android . ui . habit . adapter . H abit Adapter Ċ import Ġcom . habit 3 . android . ui . habit . viewModel . H abit ViewModel Ċ import Ġcom . habit 3 . android . ui . habit . activity . Insert H abit Ċ Ċ class ĠH abit Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby Ġlazy Ġ{ ĠViewModel Providers . of ( this ). get ( H abit ViewModel :: class . java ) Ġ} ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġre cyclerView : ĠRecyclerView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġadapter : ĠH abit Adapter ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsearch H abit Edit : ĠEditText ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfloating ActionButton : ĠFloating ActionButton ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . fragment _ habit , container , false ) ĊĠĠĠĠĠĠĠ Ġre cyclerView Ġ= Ġview . findViewById ( R . id . re cyclerView ) ĊĠĠĠĠĠĠĠ Ġsearch H abit Edit Ġ= Ġview . findViewById ( R . id . search H abit Edit ) ĊĠĠĠĠĠĠĠ Ġfloating ActionButton Ġ= Ġview . findViewById ( R . id . fab ) ĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ ĠviewModel . load All H ab its () ĊĠĠĠĠĠĠĠ Ġ// ä¹ł æĥ ¯ åĪĹè¡¨ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Manager Ġ= ĠLinearLayoutManager ( activity ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . layout Manager Ġ= Ġlayout Manager ĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠH abit Adapter ( this , viewModel . habit List ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġ// æ·»åĬł è®¡åĪĴ ĊĠĠĠĠĠĠĠ Ġfloating ActionButton . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInsert H abit . action Start ( H abit Application . context ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// è§Ĥ å¯Ł è®¡åĪĴ çļĦ åıĺåĮĸ ĊĠĠĠĠĠĠĠ ĠviewModel . load All Result . observe ( this ,{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . habit List . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . habit List . addAll ( result . reversed ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . notify Item Inserted ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( activity ," no Ġdata ", Toast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ }