package Ġcom . va ib hav . health ify . ui . user Details Input . weight Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . recyclerview . widget . Default Item Animator Ċ import Ġcom . sy z ible . scales . Scale Slider Adapter Ċ import Ġcom . sy z ible . scales . Scale Slider LayoutManager Ċ import Ġcom . sy z ible . scales . Screen Ċ import Ġcom . va ib hav . health ify . R Ċ import Ġcom . va ib hav . health ify . databinding . Fragment User Weight Binding Ċ import Ġcom . va ib hav . health ify . ui . dialogs . no Internet Dialog . No Internet Dialog Fragment Ċ import Ġcom . va ib hav . health ify . util . OPEN _ NO _ INTER NET _ DIALOG Ċ import Ġcom . va ib hav . health ify . util . set Margin Top For FullScreen Ċ import Ġcom . va ib hav . health ify . util . show Toast Ċ import Ġcom . va ib hav . health ify . util . view Binding Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġkotlinx . coroutines . flow . collect Ċ Ċ @ Android EntryPoint Ċ class ĠUser Weight Fragment Ġ: ĊĠĠĠ ĠFragment ( R . layout . fragment _ user _ weight ), ĊĠĠĠ ĠScale Slider LayoutManager . Movement Listener Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġbinding Ġby Ġview Binding ( Fragment User Weight Binding :: bind ) ĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠUser Weight ViewModel Ġby Ġview Models () ĊĠĠĠ Ġprivate Ġval Ġweight Adapter Ġ= ĠScale Slider Adapter () ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding . next Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . onNext Button Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . back Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). pop Back Stack () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . back Button . set Margin Top For FullScreen () ĊĠĠĠĠĠĠĠ ĠsetUp Weight Scale () ĊĠĠĠĠĠĠĠ Ġcollect Ui State () ĊĠĠĠĠĠĠĠ Ġcollect Events () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUp Weight Scale () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . weight RecyclerView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpadding Ġ= ĠScreen . get Screen Width ( require Context ()) Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Padding ( padding , Ġ 0 , Ġpadding , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġweight Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Animator Ġ= ĠDefault Item Animator () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠScale Slider LayoutManager ( require Context (), Ġthis @ User Weight Fragment ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġweight Adapter . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Spo ke Colour ( resources . getColor ( R . color . spo ke Color )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Count Between Markers ( 5 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetData ( viewModel . weight List ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . weight RecyclerView . scrollTo Position ( viewModel . DEFAULT _ WEIGHT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcollect Events () Ġ{ ĊĠĠĠĠĠĠĠ Ġview Lifecycle Owner . lifecycle Scope . launch When Started Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . events . collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUser Weight Screen Events . Navigate To Next Screen Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . action _ user Weight Fragment _ to _ user Age Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUser Weight Screen Events . Show Toast Ġ-> Ġrequire Context (). show Toast ( it . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUser Weight Screen Events . Show No Internet Dialog Ġ-> Ġopen No Internet Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġopen No Internet Dialog () Ġ{ ĊĠĠĠĠĠĠĠ ĠNo Internet Dialog Fragment (). show ( parent FragmentManager , ĠOPEN _ NO _ INTER NET _ DIALOG ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcollect Ui State () Ġ{ ĊĠĠĠĠĠĠĠ Ġview Lifecycle Owner . lifecycle Scope . launch When Started Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . ui State . collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . next Button . isEnabled Ġ= Ġit . is Button Enabled ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . user Weight . text Ġ= Ġ"${ it . weight } ĠK g " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . loading Layout . loading Layout . isVisible Ġ= Ġit . isLoading ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( selectedIndex : ĠInt ) Ġ= ĠUnit ĊĊĠĠĠ Ġoverride Ġfun Ġon Item Changed ( selectedIndex : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . on Weight Change ( selectedIndex ) ĊĠĠĠ Ġ} Ċ } Ċ