package Ġcom . example . sol u co est are fas . agenda Ċ Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroid . graphics . Color Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġcom . example . sol u co est are fas . P essoa Ċ import Ġcom . example . sol u co est are fas . databinding . Activity Ag enda Binding Ċ Ċ /** Ċ Ġ* ĠRe gr as : Ċ Ġ* ĠĠĠĠ Ġ- ĠN Ã£o Ġpode Ġha ver Ġtele fone Ġrepet ido Ċ Ġ* ĠĠĠĠ Ġ- ĠBot Ã£o Ġimp rim ir , Ġao Ġche gar Ġno Ġfinal Ġda Ġlista , Ġvol ta Ġpro Ġprime iro Ġcont ato Ċ Ġ* ĠĠĠĠ Ġ- ĠBot Ã£o Ġimp rim ir , Ġlista Ġv az ia : Ġmo stra Ġa vis o Ċ Ġ* ĠĠĠĠ Ġ- ĠBot Ã£o Ġsal var , Ġnome Ġv az io , Ġmo stra Ġerro Ċ Ġ* ĠĠĠĠ Ġ- ĠBot Ã£o Ġsal var , Ġtele fone Ġv az io , Ġmo stra Ġerro Ċ Ġ* ĠĠĠĠ Ġ- ĠBot Ã£o Ġsal var , Ġtele fone ĠjÃ¡ ĠestÃ¡ Ġna Ġlista , Ġmo stra Ġerro Ċ Ġ* ĠĠĠĠ Ġ- ĠBot Ã£o Ġde let ar Ġsem Ġselecion ar Ġcont ato : Ġmostrar Ġa vis o Ċ Ġ*/ Ċ class ĠAg enda Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Ag enda Binding ĊĠĠĠ Ġprivate Ġval Ġag enda Ġ= ĠAg enda () ĊĠĠĠ Ġprivate Ġvar Ġcont ato At ual : ĠP essoa ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity Ag enda Binding . inflate ( layout Inflater ) ĊĊĠĠĠĠĠĠĠ Ġbinding . agenda Bt De let ar . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( de let ar Cont ato ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . agenda Txt Nome . text . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . agenda Txt Tele fone . text . clear () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcont ato At ual Ġ== Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . agenda Bt Sal var . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnome Digit ado Ġ= Ġbinding . agenda Txt Nome . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtele fone Digit ado Ġ= Ġbinding . agenda Txt Tele fone . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsal var Cont ato ( nome Digit ado , Ġtele fone Digit ado ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . agenda Bt Imp rim ir Prox . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( agenda . tem Cont ato ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprox imo Cont ato : ĠP essoa Ġ= Ġag enda . get Prox imo Cont ato () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . agenda Txt Nome . setText ( prox imo Cont ato . nome ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . agenda Txt Tele fone . setText ( prox imo Cont ato . tele fone ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Txt A vis o ("", ĠColor . BLACK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcont ato At ual Ġ= Ġprox imo Cont ato ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Txt A vis o (" Ag enda Ġv az ia !", ĠCOR _ L AR AN JA ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġag enda . sal var Cont ato ( P essoa (" Rod rig o ", Ġ" 1 1 1 1 ")) ĊĠĠĠĠĠĠĠ Ġag enda . sal var Cont ato ( P essoa (" Jo Ã£o ", Ġ" 2 2 2 2 2 ")) ĊĠĠĠĠĠĠĠ Ġag enda . sal var Cont ato ( P essoa (" Mar ia ", Ġ" 3 3 3 3 3 ")) ĊĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġde let ar Cont ato (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( cont ato At ual Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Txt A vis o (" Se lecione Ġum Ġcont ato Ġprime iro !", ĠCOR _ L AR AN JA ) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! agenda . tem Cont ato ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Txt A vis o (" Erro , Ġag enda Ġv az ia !", ĠColor . RED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( agenda . remove Cont ato ( cont ato At ual !! )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Txt A vis o (" Cont ato Ġ${ cont ato At ual !!. nome } Ġde let ado !", ĠCOR _ VER DE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Txt A vis o ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Cont ato Ġ${ cont ato At ual !!. nome } ĠnÃ£o Ġexiste Ġna Ġag enda !", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCOR _ VER DE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsal var Cont ato ( nome : ĠString , Ġtele fone : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( nome Ġ== Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Txt A vis o (" Nome Ġv az io , Ġfavor Ġdigit ar Ġum Ġnome ", ĠColor . RED ) ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( tele fone Ġ== Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Txt A vis o (" Tele fone Ġv az io , Ġfavor Ġdigit ar Ġum Ġtele fone ", ĠColor . RED ) ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnovo Cont ato Ġ= ĠP essoa ( nome , Ġtele fone ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( agenda . sal var Cont ato ( no vo Cont ato )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Txt A vis o (" Cont ato Ġ\"$ nome \" Ġsal vo !", ĠCOR _ VER DE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcont ato At ual Ġ= Ġnovo Cont ato ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Txt A vis o (" ER RO : ĠTele fone ĠjÃ¡ Ġexiste !", ĠColor . RED ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Txt A vis o ( mens agem : ĠString , Ġcor : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . agenda Txt A vis os . text Ġ= Ġmens agem ĊĠĠĠĠĠĠĠ Ġbinding . agenda Txt A vis os . setTextColor ( cor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠCOR _ L AR AN JA Ġ= ĠColor . rgb ( 2 1 4 , Ġ 1 2 7 , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval ĠCOR _ VER DE Ġ= ĠColor . rgb ( 5 , Ġ 1 2 8 , Ġ 8 ) ĊĠĠĠ Ġ} Ċ } Ċ