package Ġcom . fs ck . k 9 . activity Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . CheckBox Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . view . isVisible Ċ import Ġcom . fs ck . k 9 . Account Ċ import Ġcom . fs ck . k 9 . Identity Ċ import Ġcom . fs ck . k 9 . Preferences Ċ import Ġcom . fs ck . k 9 . ui . R Ċ import Ġcom . fs ck . k 9 . ui . base . K 9 Activity Ċ Ċ class ĠEdit Identity Ġ: ĠK 9 Activity () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġaccount : ĠAccount ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġidentity : ĠIdentity ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdescription : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġname : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġemail : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġreply To : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsignature Use : ĠCheckBox ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsignature : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsignature Layout : ĠView ĊĊĠĠĠ Ġprivate Ġvar Ġidentity Index : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Layout ( R . layout . edit _ identity ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar !!. set Display Home As Up Enabled ( true ) ĊĊĠĠĠĠĠĠĠ Ġidentity Index Ġ= Ġintent . getInt Extra ( EXTRA _ IDENTITY _ INDEX , Ġ- 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġaccount Uuid Ġ= Ġintent . getString Extra ( EXTRA _ ACCOUNT ) Ġ?: Ġerror (" Missing Ġaccount ĠUUID ") ĊĠĠĠĠĠĠĠ Ġaccount Ġ= ĠPreferences . get Preferences ( this ). get Account ( account Uuid ) Ġ?: Ġerror (" Couldn 't Ġfind Ġaccount ") ĊĊĠĠĠĠĠĠĠ Ġidentity Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState Ġ!= Ġnull Ġ-> ĠsavedInstanceState . get Parcelable ( EXTRA _ IDENTITY ) Ġ?: Ġerror (" Missing Ġstate ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġidentity Index Ġ!= Ġ- 1 Ġ-> Ġintent . get Parcelable Extra ( EXTRA _ IDENTITY ) Ġ?: Ġerror (" Missing Ġargument ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠIdentity () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdescription Ġ= ĠfindViewById ( R . id . description ) ĊĠĠĠĠĠĠĠ Ġname Ġ= ĠfindViewById ( R . id . name ) ĊĠĠĠĠĠĠĠ Ġemail Ġ= ĠfindViewById ( R . id . email ) ĊĠĠĠĠĠĠĠ Ġreply To Ġ= ĠfindViewById ( R . id . reply _ to ) ĊĠĠĠĠĠĠĠ Ġsignature Use Ġ= ĠfindViewById ( R . id . signature _ use ) ĊĠĠĠĠĠĠĠ Ġsignature Ġ= ĠfindViewById ( R . id . signature ) ĊĠĠĠĠĠĠĠ Ġsignature Layout Ġ= ĠfindViewById ( R . id . signature _ layout ) ĊĊĠĠĠĠĠĠĠ Ġdescription . text Ġ= Ġidentity . description ĊĠĠĠĠĠĠĠ Ġname . text Ġ= Ġidentity . name ĊĠĠĠĠĠĠĠ Ġemail . text Ġ= Ġidentity . email ĊĠĠĠĠĠĠĠ Ġreply To . text Ġ= Ġidentity . reply To ĊĊĠĠĠĠĠĠĠ Ġsignature Use . isChecked Ġ= Ġidentity . signature Use ĊĠĠĠĠĠĠĠ Ġsignature Use . setOn Checked ChangeListener Ġ{ Ġ_, Ġis Checked Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Layout . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsignature . text Ġ= Ġidentity . signature ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Layout . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( signature Use . isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature . text Ġ= Ġidentity . signature ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Layout . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave Identity () Ġ{ ĊĠĠĠĠĠĠĠ Ġidentity Ġ= Ġidentity . copy ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġdescription . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemail Ġ= Ġemail . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġname . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Use Ġ= Ġsignature Use . isChecked , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsignature Ġ= Ġsignature . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreply To Ġ= Ġif Ġ( reply To . text . isNotEmpty ()) Ġreply To . text . toString () Ġelse Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġident ities Ġ= Ġaccount . ident ities ĊĠĠĠĠĠĠĠ Ġif Ġ( identity Index Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġident ities . add ( identity ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġident ities . remove At ( identity Index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġident ities . add ( identity Index , Ġidentity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠPreferences . get Preferences ( application Context ). save Account ( account ) ĊĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġoverride Ġfun Ġon Save InstanceState ( out State : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Save InstanceState ( out State ) ĊĠĠĠĠĠĠĠ Ġout State . put Parcelable ( EXTRA _ IDENTITY , Ġidentity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . edit _ identity _ menu , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( item . itemId Ġ== Ġandroid . R . id . home ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( item . itemId Ġ== ĠR . id . edit _ identity _ save ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave Identity () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ IDENTITY Ġ= Ġ" com . fs ck . k 9 . Edit Identity _ identity " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ IDENTITY _ INDEX Ġ= Ġ" com . fs ck . k 9 . Edit Identity _ identity _ index " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ ACCOUNT Ġ= Ġ" com . fs ck . k 9 . Edit Identity _ account " ĊĠĠĠ Ġ} Ċ } Ċ