package Ġcom . j vin ic ius b . android _ hello _ grpc _ client . network . grpc Ċ Ċ import Ġandroid . content . Context Ċ import Ġio . grpc . Managed Channel Ċ import Ġio . grpc . android . Android Channel Builder Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . as Executor Ċ Ċ interface ĠGr pc Channel Provider Ġ{ ĊĠĠĠ Ġfun Ġchannel (): ĠManaged Channel Ċ } Ċ Ċ class ĠGr pc Android Channel Provider ( ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠContext , ĊĠĠĠ Ġprivate Ġval Ġaddress : ĠString , ĊĠĠĠ Ġprivate Ġval Ġport : ĠInt Ċ ) Ġ: ĠGr pc Channel Provider Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġ_ channel : ĠManaged Channel ĊĊĠĠĠ Ġoverride Ġfun Ġchannel (): ĠManaged Channel Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! ::_ channel . isInitialized Ġ|| Ġ_ channel . is Shutdown ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ channel Ġ= ĠAndroid Channel Builder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. for Address ( address , Ġport ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. context ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. use Pl aintext () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. executor ( Dispatch ers . IO . as Executor ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ_ channel ĊĠĠĠ Ġ} Ċ } Ċ