package Ġit . il ker . repeat card . ui . flash carded it Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View . IN VISIBLE Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġit . il ker . repeat card . R Ċ import Ġit . il ker . repeat card . ui . util . Gallery Picker Ċ import Ġit . il ker . repeat card . ui . util . exhaustive Ċ import Ġorg . k oin . android . ext . android . inject Ċ import Ġtim ber . log . Tim ber Ċ Ċ class ĠEdit Flash card Screen Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġedit Flash card ViewModel : ĠEdit Flash card ViewModel Ġby Ġinject () ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġflash card Title : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġflash card Description : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġflash card Title Edit : ĠEditText ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġflash card Description Edit : ĠEditText ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġflash card Save Button : ĠButton ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġflash card Image : ĠImageView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtap ToAdd : ĠTextView ĊĠĠĠ Ġprivate Ġvar Ġimage Uri : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġflash card Id Ġ= Ġ 0 ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠFL ASH CARD _ ID Ġ= Ġ" FLASH CARD _ ID " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSELECT _ IMAGE _ INT ENT Ġ= Ġ 2 0 0 0 ĊĊĠĠĠĠĠĠĠ Ġfun Ġopen Screen ( starting Context : ĠContext , Ġflash card Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( starting Context , ĠEdit Flash card Screen :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Flags ( Intent . FLAG _ ACTIVITY _ CLEAR _ TOP Ġor ĠIntent . FLAG _ ACTIVITY _ NEW _ TASK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. putExtra ( FLASH CARD _ ID , Ġflash card Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstarting Context . startActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ add _ flash card ) ĊĠĠĠĠĠĠĠ Ġobserve () ĊĠĠĠĠĠĠĠ Ġflash card Id Ġ= Ġintent . extras !!. getInt ( FLASH CARD _ ID ) ĊĠĠĠĠĠĠĠ Ġedit Flash card ViewModel . send ( Flash card Edit Event . GetCurrent Values ( flash card Id )) ĊĠĠĠĠĠĠĠ Ġset Views () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġflash card Title Ġ= ĠfindViewById ( R . id . flash card _ title ) ĊĠĠĠĠĠĠĠ Ġflash card Description Ġ= ĠfindViewById ( R . id . flash card _ description ) ĊĠĠĠĠĠĠĠ Ġflash card Title Edit Ġ= ĠfindViewById ( R . id . flash card _ title _ edit Text ) ĊĠĠĠĠĠĠĠ Ġflash card Description Edit Ġ= ĠfindViewById ( R . id . flash card _ description _ edit Text ) ĊĠĠĠĠĠĠĠ Ġflash card Save Button Ġ= ĠfindViewById ( R . id . flash card _ save _ button ) ĊĠĠĠĠĠĠĠ Ġflash card Image Ġ= ĠfindViewById ( R . id . flash card _ select _ image ) ĊĠĠĠĠĠĠĠ Ġtap ToAdd Ġ= ĠfindViewById ( R . id . text Tap To Select Image ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġobserve () Ġ{ ĊĠĠĠĠĠĠĠ Ġedit Flash card ViewModel . state . observe ( this , ĠObserver Ġ{ Ġstate Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( state ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFlash card Edit State . Success Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetCurrent Values ( state ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflash card Image . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( Gallery Picker . get Intent ( this ), ĠSELECT _ IMAGE _ INT ENT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflash card Save Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit Flash card ViewModel . send ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFlash card Edit Event . Edit ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġstate . flash card . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġflash card Title Edit . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġflash card Description Edit . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Uri Ġ= Ġimage Uri ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFlash card Edit State . Update Success Ġ-> Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. exhaustive ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetCurrent Values ( state : ĠFlash card Edit State . Success ) Ġ{ ĊĠĠĠĠĠĠĠ Ġflash card Title Edit . setText ( state . flash card . title ) ĊĠĠĠĠĠĠĠ Ġflash card Title Edit . selectAll () ĊĠĠĠĠĠĠĠ Ġflash card Title Edit . request Focus () ĊĠĠĠĠĠĠĠ Ġflash card Description Edit . setText ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( state . flash card . description Ġ== Ġ" No Ġdescription ") Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġstate . flash card . description ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! state . flash card . image Uri . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( this ). load ( state . flash card . image Uri ). into ( flash card Image ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtap ToAdd . visibility Ġ= ĠIN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflash card Image . background Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( request Code Ġ== ĠSELECT _ IMAGE _ INT ENT Ġ&& ĠresultCode Ġ== ĠActivity . RESULT _ OK Ġ&& Ġdata Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Uri Ġ= Ġdata . data . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d ( image Uri . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( this ). load ( image Uri ). into ( flash card Image ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtap ToAdd . visibility Ġ= ĠIN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġflash card Image . background Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ