package Ġcom . j vin ic ius b . android _ hello _ grpc _ client . ui Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġcom . j vin ic ius b . android _ hello _ grpc _ client . R Ċ import Ġcom . j vin ic ius b . android _ hello _ grpc _ client . databinding . Activity Main Binding Ċ import Ġcom . j vin ic ius b . android _ hello _ grpc _ client . domain . services . G reet er ServiceClient Ċ import Ġkotlinx . coroutines . launch Ċ import Ġorg . k oin . android . ext . android . inject Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġ/* It 's Ġnot Ġa Ġgood Ġpractice Ġto Ġuse Ġthis Ġclient Ġdire cl ty Ġhere , Ġit Ġshould Ġbe ĊĠĠĠ Ġ* Ġbehind ĠViewModel , ĠRepository , ĠDataSource , Ġetc ... Ġlayers */ ĊĠĠĠ Ġprivate Ġval Ġg reet er Client Ġby Ġinject < G reet er ServiceClient >() ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Main Binding ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity Main Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĠĠĠĠĠĠĠ Ġset Listeners () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . bt Call Service . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsay Hello () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsay Hello () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . tv Message . text Ġ= ĠgetString ( R . string . calling _ service ) ĊĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġg reet er Client . say Hello ( binding . ti Name . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Message . text Ġ= Ġmessage ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }