package Ġorg . no and ish . library . ice base . socket Ċ Ċ import Ġandroid . app . Activity Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . support . multi dex . Multi Dex Ċ import Ġandroid . support . multi dex . Multi Dex Application Ċ import Ġandroid . util . Log Ċ import Ġjava . net . UR ISyntaxException Ċ import Ġio . socket . client . IO Ċ import Ġio . socket . client . Socket Ċ import Ġorg . no and ish . library . ice base . Activity Start Service ĊĊ Ċ open Ġclass ĠSocket IO Application Ġ: ĠMulti Dex Application (), ĠOn Change Status Socket Listener , ĠOn Mess as ge Receive Ġ{ ĊĠĠĠ Ġprivate Ġval Ġsocket IO Application : ĠSocket IO Application ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun ĠOn Mess as ge Receive ( event Item : ĠString , Ġmessage : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . w (" Socket IO Application ", Ġ" On Message Receive " Ġ+ Ġevent Item ) ĊĠĠĠĠĠĠĠ Ġif Ġ( socket IO Application != null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsocket IO Application . On Mess as ge Receive ( event Item , message ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠOn Changed ( status : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . w (" Socket IO Application ", Ġ" On Changed Ġ" Ġ+ Ġstatus ) ĊĠĠĠĠĠĠĠ Ġif Ġ( socket IO Application != null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsocket IO Application . On Changed ( status ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ/** Ġ@ hide Ġ*/ ĊĠĠĠ Ġpublic Ġvar Ġsocket : ĠSocket ĊĠĠĠĠĠĠĠ Ġset ĊĊĠĠĠ Ġvar Ġcontext : ĠContext ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprotected Ġset ĊĠĠĠĠĠĠĠ Ġget ĊĊĠĠĠ Ġpublic Ġfun Ġinitialized ( socket IO Application : ĠSocket IO Application ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . context Ġ= Ġsocket IO Application . context ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġvar Ġsocket Cont ro ler : ĠSocket Controller ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsocket Ġ= ĠIO . socket ( Utils . SERVICE Y AR _ SERVER _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsocket Cont ro ler Ġ= ĠSocket Controller ( this , Ġsocket ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w (" Socket IO Application ", Ġ" Connected ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠUR ISyntaxException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w (" Socket IO Application ", Ġ" Connecting ĠError ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġattach Base Context ( base : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . attach Base Context ( base ) ĊĠĠĠĠĠĠĠ ĠMulti Dex . install ( this ) Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( android . os . Build . VERSION . SDK _ INT Ġ>= Ġandroid . os . Build . VERSION _ CODES . N ) Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( base , ĠActivity Start Service :: class . java ). set Flags ( Intent . FLAG _ ACTIVITY _ NEW _ TASK )) Ċ // ĠĠĠĠĠĠĠ Ġ} else { Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġstart Service ( Intent ( base , ServiceClient :: class . java ). set Flags ( Intent . FLAG _ ACTIVITY _ NEW _ TASK )) Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġpublic Ġfun Ġis My Service Running ( service Class : ĠClass <* >, Ġcontext : ĠContext ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmanager Ġ= Ġcontext . getSystem Service ( Context . ACTIVITY _ SERVICE ) Ġas ĠActivity Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( service Ġin Ġmanager . get Running Services ( Integer . MAX _ VALUE )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( service Class . name Ġ== Ġservice . service . className ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊĊ