package Ġcom . example . list ate le fon ica . view Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . activity . result . contract . Activity Result Contracts Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . example . list ate le fon ica . R Ċ import Ġcom . example . list ate le fon ica . dao . DB SQLite Helper Ċ import Ġcom . example . list ate le fon ica . databinding . Activity Mo strar Cont ato Binding Ċ import Ġcom . example . list ate le fon ica . model . Cont ato Ċ Ċ class ĠMo strar Cont ato Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġbinding : ĠActivity Mo strar Cont ato Binding Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠActivity Mo strar Cont ato Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Inflater ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġdb : ĠDB SQLite Helper Ġby Ġlazy Ġ{ ĠDB SQLite Helper ( this ) Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġc amin ho : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġbus car G aler ia Ġ= ĊĠĠĠĠĠĠĠ Ġregister For Activity Result ( Activity Result Contracts . Get Content ()) Ġ{ Ġuri : ĠUri ? Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuri ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc amin ho Ġ= Ġit . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( this ). load ( cam in ho ). into ( binding . foto Cont ato At ual ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġintent . getInt Extra (" ID ", Ġ- 1 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( id Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġcont ato Ġ= Ġdb . get Cont ato ( id ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( cont ato Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( binding ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠA tual izar Ġos Ġcampos Ġde Ġdados ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( this @ Mo strar Cont ato ). load ( cont ato . foto ). into ( foto Cont ato At ual ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( nome Cont ato At ual Ġas ĠTextView ). text Ġ= Ġcont ato . nome ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( tele fone Cont ato At ual Ġas ĠTextView ). text Ġ= Ġcont ato . tele fone ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( observ acao Cont ato At ual Ġas ĠTextView ). text Ġ= Ġcont ato . observ acao ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcont ato ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIn icial izar Ġos Ġa Ġmud an Ã§a Ġde Ġfoto Ġ+ Ġos Ġ 3 Ġbot Ãµes ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfoto Cont ato At ual . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbus car G aler ia . launch (" image /* ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbot ao Alter ar Cont ato . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . update Cont ato ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCont ato ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġcont ato . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnome Ġ= Ġnome Cont ato At ual . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtele fone Ġ= Ġtele fone Cont ato At ual . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfoto Ġ= Ġc amin ho Ġ?: Ġcont ato . foto , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobserv acao Ġ= Ġobserv acao Cont ato At ual . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( base Context , ĠMainActivity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbot ao Rem over Cont ato . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( bot ao Rem over Cont ato . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( R . string . confirm _ deletion ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage ( R . string . are _ you _ sure ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setIcon ( R . drawable . ic _ delete ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( R . string . yes ) Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcont ato P ra De let ar Ġ= ĠCont ato () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcont ato P ra De let ar . id Ġ= Ġid ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . delete Cont ato ( cont ato P ra De let ar ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( base Context , ĠMainActivity :: class . java )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button ( R . string . no , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbot ao L igar . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ch am ada Ġ= ĠIntent ( Intent . ACTION _ DI AL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent Ch am ada . data Ġ= ĠUri . parse (" tel : Ġ${ cont ato . tele fone }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent Ch am ada ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }