package Ġcom . example . android . architecture . blueprint s . be et v . modules . register Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġcom . example . android . architecture . blueprint s . be et v . R Ċ import Ġcom . example . android . architecture . blueprint s . be et v . databinding . Fragment Register Binding Ċ import Ġcom . example . android . architecture . blueprint s . be et v . util . Constants Ċ import Ġcom . example . android . architecture . blueprint s . be et v . util . get ViewModel Factory Ċ import Ġcom . example . android . architecture . blueprint s . be et v . widgets . metro . Metro Item Frame Layout Ċ import Ġcom . example . android . architecture . blueprint s . be et v . widgets . metro . Metro View Border Handler Ċ import Ġcom . example . android . architecture . blueprint s . be et v . widgets . metro . Metro View Border Impl Ċ Ċ class ĠRegister Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby Ġview Models < Register ViewModel > Ġ{ Ġget ViewModel Factory () Ġ} ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġview Data Binding : ĠFragment Register Binding ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmet ro View Border Impl : ĠMet ro View Border Impl ĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġview Data Binding Ġ= ĠFragment Register Binding . inflate ( in flater , Ġcontainer , Ġfalse ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclick Ġ= ĠClick Proxy ( viewModel , Ġthis @ Register Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview model Ġ= ĠviewModel ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġview Data Binding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġval Ġrounded Frame Layout Ġ= ĠFrame Layout ( context ) ĊĠĠĠĠĠĠĠ Ġrounded Frame Layout . clip Children Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġmet ro View Border Impl Ġ= ĠMet ro View Border Impl ( rounded Frame Layout ) ĊĠĠĠĠĠĠĠ Ġmet ro View Border Impl . attach To ( view Data Binding . main ) ĊĠĠĠĠĠĠĠ Ġmet ro View Border Impl . getView Border (). add On Focus Changed ( object Ġ: ĠMet ro View Border Handler . Focus Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Focus Changed ( old Focus : ĠView ?, Ġnew Focus : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmet ro View Border Impl . getView (). setTag ( new Focus ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchange Background Button ( old Focus , Ġnew Focus ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġchange Background Button ( old View : ĠView ?, Ġnew View : ĠView ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( old View Ġ!= Ġnull ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( old View Ġis ĠMet ro Item Frame Layout ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold View . set BackgroundColor ( Context Compat . getColor ( require Context (), ĠR . color . black )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( old View . getChild At ( 0 ) Ġis ĠTextView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( old View . getChild At ( 0 ) Ġas ĠTextView ). setTextColor ( Context Compat . getColor ( require Context (), ĠR . color . white )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( new View Ġ!= Ġnull ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new View Ġis ĠMet ro Item Frame Layout ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnew View . set BackgroundColor ( Context Compat . getColor ( require Context (), ĠR . color . white )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new View . getChild At ( 0 ) Ġis ĠTextView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( new View . getChild At ( 0 ) Ġas ĠTextView ). setTextColor ( Context Compat . getColor ( require Context (), ĠR . color . black )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġclass ĠClick Proxy ( val ĠviewModel : ĠRegister ViewModel , Ġval Ġfragment : ĠRegister Fragment ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġlogin (){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . find Nav Controller (). pop Back Stack () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġregister (){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ġ= ĠRegister Fragment Directions . action Register Fragment Dest To Home Fragment Dest ( Constants . REGISTER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . find Nav Controller (). navigate ( action ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }