package Ġcom . ch oo lo o . www . kont acts . ui . main Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . Intent . ACTION _ VIEW Ċ import Ġandroid . net . Uri Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . ch oo lo o . www . ch oo lo ol ib . inter actor . navigation . Navig ations Interactor Ċ import Ġcom . ch oo lo o . www . ch oo lo ol ib . model . Contact Account Ċ import Ġcom . ch oo lo o . www . ch oo lo ol ib . ui . base . Base ViewState Ċ import Ġcom . ch oo lo o . www . ch oo lo ol ib . util . Data Live Event Ċ import Ġcom . ch oo lo o . www . ch oo lo ol ib . util . Live Event Ċ import Ġcom . ch oo lo o . www . kont acts . R Ċ import Ġdagger . h ilt . android . lifecycle . H ilt ViewModel Ċ import Ġjavax . inject . Inject Ċ Ċ @ H ilt ViewModel Ċ class ĠMain ViewState Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġnavig ations : ĠNavig ations Interactor Ċ ) Ġ: ĠBase ViewState () Ġ{ ĊĠĠĠ Ġval Ġfilter Ġ= ĠMutable LiveData < String ?> () ĊĠĠĠ Ġval Ġsearch Text Ġ= ĠMutable LiveData < String ?> () ĊĠĠĠ Ġval Ġis Searching Ġ= ĠMutable LiveData ( false ) ĊĠĠĠ Ġval Ġsearch Hint Res Ġ= ĠMutable LiveData ( R . string . hint _ search _ contacts ) ĊĊĠĠĠ Ġval Ġshow Menu Event Ġ= ĠLive Event () ĊĠĠĠ Ġval Ġshow Contact Event Ġ= ĠData Live Event < Uri >() ĊĊĊĠĠĠ Ġfun Ġon Settings Click () Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Menu Event . call () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Add Contact Click () Ġ{ ĊĠĠĠĠĠĠĠ Ġnavig ations . add Contact ("") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Intent ( intent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( intent . action Ġ== ĠACTION _ VIEW ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Contact Event . call ( Uri . parse ( intent . data . toString ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Search Text Change ( text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfilter . value Ġ= Ġtext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Search Focus Change ( is Focus : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Focus ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Searching . value Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Contact Click ( contact : ĠContact Account ) Ġ{ ĊĠĠĠ Ġ} Ċ }