package Ġbr . com . cross life . commons . components . form Ċ Ċ import Ġandroidx . annotation . String Res Ċ import Ġandroidx . compose . animation . Experimental Animation Api Ċ import Ġandroidx . compose . foundation . layout . Column Ċ import Ġandroidx . compose . foundation . layout . fill Max Width Ċ import Ġandroidx . compose . foundation . layout . padding Ċ import Ġandroidx . compose . foundation . remember Scroll State Ċ import Ġandroidx . compose . foundation . vertical Scroll Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . Mutable State Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . res . string Resource Ċ import Ġandroidx . navigation . Nav Controller Ċ import Ġbr . com . cross life . commons . R Ċ import Ġbr . com . cross life . commons . components . Button Ċ import Ġbr . com . cross life . commons . components . input . TextField Ċ import Ġbr . com . cross life . commons . components . top bar . Sca ffold Top bar Ċ import Ġbr . com . cross life . commons . theme . Space Ċ Ċ @ Experimental Animation Api Ċ @ Composable Ċ fun ĠNav Controller . Password UI ( ĊĠĠĠ Ġold Password State : ĠMutable State < String >? Ġ= Ġnull , ĊĠĠĠ Ġnew Password State : ĠMutable State < String >, ĊĠĠĠ Ġconfirm New Password State : ĠMutable State < String >, ĊĠĠĠ ĠisLoading : ĠBoolean , ĊĠĠĠ Ġreset Fields : ĠBoolean , ĊĠĠĠ ĠonChange Password Click : Ġ() Ġ-> ĠUnit , Ċ ) Ġ{ ĊĠĠĠ ĠScaffold Top bar ( title Ġ= Ġstring Resource ( id Ġ= ĠR . string . change _ password )) Ġ{ ĊĠĠĠĠĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( horizontal Ġ= ĠSpace . BORDER ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. vertical Scroll ( remember Scroll State ()), ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġold Password State ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProfile TextField ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Res Ġ= ĠR . string . old _ password , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġold Password State , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠProfile TextField ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Res Ġ= ĠR . string . new _ password , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġnew Password State , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠProfile TextField ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Res Ġ= ĠR . string . confirm _ new _ password , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= Ġconfirm New Password State , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠButton ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Button Ġ= Ġstring Resource ( id Ġ= ĠR . string . change ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( top Ġ= ĠSpace . XX S ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( bottom Ġ= ĠSpace . XX S ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= ĠonChange Password Click , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading Ġ= ĠisLoading ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( reset Fields ) Ġ{ ĊĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġold Password State , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Password State , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm New Password State ĊĠĠĠĠĠĠĠ Ġ). clear All () ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ private Ġfun ĠProfile TextField ( state : ĠMutable State < String >, Ġ@ String Res Ġlabel Res : ĠInt ) Ġ{ ĊĠĠĠ Ġval Ġmodifier Ġ= ĠModifier . padding ( top Ġ= ĠSpace . XX S ) ĊĠĠĠ ĠTextField ( ĊĠĠĠĠĠĠĠ Ġlabel Ġ= Ġstring Resource ( id Ġ= Ġlabel Res ), ĊĠĠĠĠĠĠĠ Ġstate Ġ= Ġstate , ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= Ġmodifier , ĊĠĠĠĠĠĠĠ Ġis Password Ġ= Ġtrue , ĊĠĠĠ Ġ) Ċ } Ċ Ċ fun ĠList < Mutable State < String > ?> . clear All () Ġ= ĠforEach Ġ{ ĊĠĠĠ Ġit ?. value Ġ= Ġ"" Ċ }