package Ġcom . ht ue ko . resume app . presentation . view . add work . ui Ċ Ċ import Ġandroidx . compose . foundation . layout . Arrange ment Ċ import Ġandroidx . compose . foundation . layout . Column Ċ import Ġandroidx . compose . foundation . layout . fill MaxSize Ċ 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 . material . Material Theme Ċ import Ġandroidx . compose . material . Sca ffold Ċ import Ġandroidx . compose . material . Text Ċ import Ġandroidx . compose . material . Top AppBar Ċ import Ġandroidx . compose . material . remember Sca ffold State Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . La unched Effect Ċ import Ġandroidx . compose . runtime . collect As State Ċ import Ġandroidx . compose . runtime . getValue Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . res . string Resource Ċ import Ġandroidx . compose . ui . text . input . Keyboard Type Ċ import Ġandroidx . h ilt . navigation . compose . h ilt ViewModel Ċ import Ġcom . ht ue ko . resume app . R Ċ import Ġcom . ht ue ko . resume app . presentation . common . common state . Common Ui Event Ċ import Ġcom . ht ue ko . resume app . presentation . common . component . Body Text Ċ import Ġcom . ht ue ko . resume app . presentation . common . component . Button Primary Ċ import Ġcom . ht ue ko . resume app . presentation . common . component . TextField Primary Ċ import Ġcom . ht ue ko . resume app . presentation . common . component . Title Text Ċ import Ġcom . ht ue ko . resume app . presentation . common . component . Vertical Spacer Ċ import Ġcom . ht ue ko . resume app . presentation . theme . spacing Ċ import Ġcom . ht ue ko . resume app . presentation . view . add work . state . Add Work User Event Ċ import Ġcom . ht ue ko . resume app . presentation . view . add work . view model . Add Work ViewModel Ċ Ċ @ Suppress (" Long Method ") Ċ @ Composable Ċ fun ĠAdd Work Screen ( ĊĠĠĠ Ġresume Id : ĠInt ? Ġ= Ġnull , ĊĠĠĠ Ġon Save Work Click : Ġ( Int ) Ġ-> ĠUnit , ĊĠĠĠ ĠviewModel : ĠAdd Work ViewModel Ġ= Ġh ilt ViewModel () Ċ ) Ġ{ ĊĠĠĠ Ġ// Ġto Ġget Ġthe Ġstate Ġof Ġthe Ġscaffold ĊĠĠĠ Ġval Ġscaffold State Ġ= Ġremember Sca ffold State () ĊĊĠĠĠ Ġ// Ġto Ġcollect Ġthe Ġresume Ġas Ġstate ĊĠĠĠ Ġval Ġdata Ġby ĠviewModel . resume . collect As State () ĊĠĠĠ Ġval Ġworks Ġ= Ġdata . works ĊĠĠĠ Ġval Ġcompany Name Ġby ĠviewModel . company Name . collect As State () ĊĠĠĠ Ġval Ġhas Company Name Error Ġby ĠviewModel . has Company Name Error . collect As State () ĊĠĠĠ Ġval Ġduration Ġby ĠviewModel . duration . collect As State () ĊĠĠĠ Ġval Ġhas Duration Error Ġby ĠviewModel . has Duration Error . collect As State () ĊĊĠĠĠ Ġ// Ġstring Ġto Ġshows ĊĠĠĠ Ġval Ġtoolbar Title Ġ= ĊĠĠĠĠĠĠĠ Ġdata . resume . name . replace First Char Ġ{ Ġit . uppercase () Ġ} ĊĠĠĠ Ġval Ġtext Work Ġ= Ġstring Resource ( id Ġ= ĠR . string . work ) ĊĠĠĠ Ġval Ġtext Save Ġ= Ġstring Resource ( id Ġ= ĠR . string . save ) ĊĠĠĠ Ġval Ġerror Required Fields Ġ= Ġstring Resource ( id Ġ= ĠR . string . error Required Fields ) ĊĊĠĠĠ Ġ// Ġdim ens ĊĠĠĠ Ġval Ġmedium Padding Ġ= ĠMaterial Theme . spacing . medium ĊĠĠĠ Ġval Ġsmall Vertical Spacer Ġ= ĠMaterial Theme . spacing . small ĊĠĠĠ Ġval Ġmedium Vertical Spacer Ġ= ĠMaterial Theme . spacing . medium ĊĊĠĠĠ ĠLa unched Effect ( key 1 Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . ui Event . collect Ġ{ Ġevent Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommon Ui Event . Pop Back Stack Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġnothing Ġto Ġdo Ġhere . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommon Ui Event . Show Sn ackBar Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscaffold State . sn ackbar Host State . show Snackbar ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= Ġerror Required Fields , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCommon Ui Event . Pop Back Stack And Send Data Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Save Work Click ( event . resume Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġmain Ġscreen ĊĠĠĠ ĠScaffold ( ĊĠĠĠĠĠĠĠ Ġscaffold State Ġ= Ġscaffold State , ĊĠĠĠĠĠĠĠ Ġtop Bar Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTop AppBar ( title Ġ= Ġ{ ĠText ( text Ġ= Ġtoolbar Title ) Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill MaxSize () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( medium Padding ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. vertical Scroll ( remember Scroll State ()) ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġadding Ġnew Ġworks Ġsection ĊĠĠĠĠĠĠĠĠĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( medium Padding ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. vertical Scroll ( remember Scroll State ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. weight ( 1 f ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhorizontal Alignment Ġ= ĠAlignment . Center H orizontally , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Arrange ment Ġ= ĠArrange ment . Center ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcompany Ġname Ġtext Ġfield ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVertical Spacer ( height Ġ= Ġmedium Vertical Spacer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTextField Primary ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġcompany Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Text Ġ= Ġstring Resource ( id Ġ= ĠR . string . company Name ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon TextChanged Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . on Event ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAdd Work User Event . On Company Name Changed ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠhasError Ġ= Ġhas Company Name Error , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠerrorMessage Ġ= Ġstring Resource ( id Ġ= ĠR . string . error _ required ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeyboard Type Ġ= ĠKeyboard Type . Text , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġduration Ġtext Ġfield ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVertical Spacer ( height Ġ= Ġmedium Vertical Spacer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTextField Primary ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġduration , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel Text Ġ= Ġstring Resource ( id Ġ= ĠR . string . duration ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon TextChanged Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . on Event ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAdd Work User Event . On Duration Changed ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠhasError Ġ= Ġhas Duration Error , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠerrorMessage Ġ= Ġstring Resource ( id Ġ= ĠR . string . error _ required ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkeyboard Type Ġ= ĠKeyboard Type . Number , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġsave Ġbutton ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVertical Spacer ( height Ġ= Ġmedium Vertical Spacer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠButton Primary ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġtext Save , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . on Event ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAdd Work User Event . On Save Click ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVertical Spacer ( height Ġ= Ġmedium Vertical Spacer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġexisting Ġworks Ġcolumn ĊĠĠĠĠĠĠĠĠĠĠĠ ĠColumn ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill Max Width () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( medium Padding ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. vertical Scroll ( remember Scroll State ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. weight ( 1 f ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhorizontal Alignment Ġ= ĠAlignment . Center H orizontally , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertical Arrange ment Ġ= ĠArrange ment . Center ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVertical Spacer ( height Ġ= Ġmedium Vertical Spacer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠResume Ġproperties Ġsection ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTitle Text ( text Ġ= Ġtext Work ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVertical Spacer ( height Ġ= Ġsmall Vertical Spacer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( works . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworks . forEach Ġ{ Ġwork Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBody Text ( text Ġ= Ġwork . company Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBody Text ( text Ġ= Ġ"${ work . duration } Ġmonths ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVertical Spacer ( height Ġ= Ġsmall Vertical Spacer ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVertical Spacer ( height Ġ= Ġsmall Vertical Spacer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ