package Ġengineer . echo . study . ui . ipc . messenger Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . os . Message Ċ import Ġcom . jer emy li ao . live event bus . Live EventBus Ċ import Ġengineer . echo . easy lib . format Log Ċ import Ġengineer . echo . easy lib . mem Info Ċ import Ġengineer . echo . ime ss enger . receive . Receive Manager Ċ Ċ class ĠReceiver Service Ġ: ĠReceive Manager () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" Receiver Service " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ RECEIVE _ DATA Ġ= Ġ" key _ for _ receive _ data " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠKEY _ REPLY Ġ= Ġ" key _ for _ reply _ data " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġpost Data ( key : ĠString , Ġdata : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLive EventBus . get (). with ( key , Ġdata . java Class ). post ( data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġobserve Receive (): ĠLive EventBus . Observable < Bundle > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠLive EventBus . get (). with ( KEY _ RECEIVE _ DATA , ĠBundle :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġstart ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( context , ĠReceiver Service :: class . java ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . start Service ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġstop ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( context , ĠReceiver Service :: class . java ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . stop Service ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġobtain Handler (): ĠHandler Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠReceiver Handler () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠReceiver Handler Ġ: ĠHandler () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġhandle Message ( msg : ĠMessage ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . handle Message ( msg ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpost Data ( KEY _ RECEIVE _ DATA , Ġmsg . data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmsg . reply To ?. let Ġ{ Ġmess enger Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMessage . obtain (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . data Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( KEY _ REPLY , Ġ" G OT Ġit . mem =${ messenger . mem Info () }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmess enger . send ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" reply To Ġerror :% s ". format Log ( TAG , Ġe . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" handle Message Ġ% d Ġ% d ". format Log ( TAG , Ġmsg . what , Ġmsg . sending Uid ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }