package Ġcom . geom orph ology . kot chat . ui Ċ Ċ import Ġandroid . content . Component Name Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . Service Connection Ċ import Ġandroid . os . IB inder Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġcom . geom orph ology . kot chat . service . Chat Service Ċ import Ġkotlin . properties . Deleg ates Ċ Ċ public Ġabstract Ġclass ĠBase Service Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġpublic Ġvar Ġm Service : ĠChat Service Ġby ĠDeleg ates . notNull () ĊĠĠĠ Ġprotected Ġvar Ġm Service Bound : ĠBoolean Ġby ĠDeleg ates . notNull () ĊĊĠĠĠ Ġprivate Ġval Ġm Service Connection Ġ= Ġobject Ġ: ĠService Connection Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Service Connected ( name : ĠComponent Name ?, Ġservice : ĠI Binder ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbinder Ġ= Ġservice Ġas ĠChat Service . Chat Service Binder ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Service Ġ= Ġbinder . getService () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Service Bound Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Service Disconnected ( name : ĠComponent Name ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Service Bound Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , Ġjava Class < Chat Service >()) ĊĠĠĠĠĠĠĠ Ġbind Service ( intent , Ġm Service Connection , ĠContext . BIND _ AUTO _ CREATE ); ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m Service Bound ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġun bind Service ( m Service Connection ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Service Bound Ġ= Ġfalse ; ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ