/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 1 Ġy vol k Ġ( Y uri ĠVol kov ), Ġhttp :// y ur iv olk ov . com Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġorg . and status . app . service Ċ Ċ import Ġorg . and status . app . account . My Account Test Ċ import Ġorg . and status . app . context . My Context Ċ import Ġorg . and status . app . context . My Context Holder Ċ import Ġorg . and status . app . context . My Preferences Ċ import Ġorg . and status . app . context . TestSuite Ċ import Ġorg . and status . app . data . Db Utils Ċ import Ġorg . and status . app . net . http . Http Connection Stub Ċ import Ġorg . and status . app . net . social . Connection Stub Ċ import Ġorg . and status . app . util . My Log Ċ import Ġorg . and status . app . util . SharedPreferences Util Ċ import Ġorg . and status . app . util . Stop Watch Ċ import Ġorg . and status . app . util . Tri State Ċ import Ġorg . junit . Assert Ċ Ċ class ĠMy Service TestHelper Ġ: ĠMy Service Events Listener Ġ{ ĊĠĠĠ Ġ@ Volatile ĊĠĠĠ Ġprivate Ġvar Ġservice Connector : ĠMy Service Events Receiver ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Volatile ĊĠĠĠ Ġprivate Ġvar Ġhttp Connection Stub : ĠHttp Connection Stub ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Volatile ĊĠĠĠ Ġvar Ġconnection InstanceId : ĠLong Ġ= Ġ 0 ĊĊĠĠĠ Ġprivate Ġval Ġcommand Monitor Ġ= ĠCommand Monitor () ĊĊĠĠĠ Ġ@ Volatile ĊĠĠĠ Ġvar Ġservice Stopped Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġmy Context : ĠMy Context Ġ= ĠMy Context Holder . my Context Holder . get Now () ĊĊĠĠĠ Ġfun ĠsetUp ( account Name : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠMy Log . i ( this , Ġ" setUp Ġstarted ") ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy Service Manager . set Service Unavailable () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy Service Manager . stop Service () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy Account Test . fix Persistent Accounts ( my Context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Single Stub bed Instance Ġ= Ġaccount Name . isNull OrEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Single Stub bed Instance ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhttp Connection Stub Ġ= ĠHttp Connection Stub () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTest Suite . set Http Connection Stub Instance ( http Connection Stub ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Context Holder . my Context Holder . get Blocking (). set Expired Ġ{ Ġthis :: class . simple Name Ġ+ Ġ" ĠsetUp " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmy Context Ġ= ĠMy Context Holder . my Context Holder . initialize ( my Context . context , Ġthis ). get Blocking () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! my Context . is Ready ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmsg Ġ= Ġ" Context Ġis Ġnot Ġready Ġafter Ġthe Ġinitialization , Ġrepe ating ... Ġ$ my Context " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Log . w ( this , Ġmsg ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Context . set Expired Ġ{ Ġthis :: class . simple Name Ġ+ Ġmsg Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmy Context Ġ= ĠMy Context Holder . my Context Holder . initialize ( my Context . context , Ġthis ). get Blocking () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals (" Context Ġshould Ġbe Ġready ", Ġtrue , Ġmy Context . is Ready ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy Service Manager . set Service Unavailable () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue (" Couldn 't Ġstop ĠMy Service ", Ġstop Service ( false )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Suite . get My Context For Test (). connection State Ġ= ĠConnection State . WIFI ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Single Stub bed Instance ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhttp Connection Stub Ġ= ĠConnection Stub . new For ( account Name ). get Http Stub () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection InstanceId Ġ= Ġhttp Connection Stub ?. getInstance Id () Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservice Connector Ġ= ĠMy Service Events Receiver ( my Context , Ġthis ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . register Receiver ( my Context . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhttp Connection Stub ?. clear Data () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertTrue ( TestSuite . set And WaitFor IsIn Foreground ( false )) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy Log . e ( this , Ġ" setUp ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . fail ( My Log . get StackTrace ( e )) ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy Log . i ( this , Ġ" setUp Ġended Ġinstance Id =$ connection InstanceId ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdrop Queues () Ġ{ ĊĠĠĠĠĠĠĠ Ġmy Context . queues . clear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsend Command ( command : ĠCommand Data , Ġon Sending : Ġ( Command Counter ) Ġ-> ĠString ): ĠCommand Counter Ġ= ĊĠĠĠĠĠĠĠ Ġcommand Monitor . set Command ( command ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy Log . i ( this , Ġon Sending ( it )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy Service Manager . Companion . send Command Ign oring Service Availability ( it . command ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** Ġ@ return Ġtrue Ġif Ġexecution Ġstarted ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun ĠwaitFor Command Start ( log Msg : ĠString ?, Ġcount 0 : ĠCommand Counter , Ġexpect Started : ĠTri State ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmethod Ġ= Ġthis :: waitFor Command Start . name ĊĠĠĠĠĠĠĠ Ġval Ġstop Watch : ĠStop Watch Ġ= ĠStop Watch . create Started () ĊĠĠĠĠĠĠĠ Ġval Ġcriteria Ġ= Ġexpect Started . select ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" check Ġif Ġcount Ġ> Ġ${ count 0 . start Count }", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" check Ġfor Ġno Ġnew Ġexecution , Ġcount 0 Ġ= Ġ${ count 0 . start Count }", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" just Ġwaiting , Ġcount 0 Ġ= Ġ${ count 0 . start Count }" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠMy Log . v ( this , Ġ"$ method ; Ġstarted . Ġ$ log Msg Ġcount =${ command Monitor . start Count }, Ġ$ criteria , Ġ${ command Monitor . command }") ĊĠĠĠĠĠĠĠ Ġvar Ġfound Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġvar Ġloc Event Ġ= Ġ" none " ĊĠĠĠĠĠĠĠ Ġfor Ġ( pass Ġin Ġ 0 .. 9 9 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( command Monitor . command Ġ!= Ġcount 0 . command ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloc Event Ġ= Ġ" other Ġcommand Ġis Ġmon itored " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( command Monitor . start Count Ġ> Ġcount 0 . start Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfound Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloc Event Ġ= Ġ" count : Ġ${ command Monitor . start Count } Ġ> Ġ${ count 0 . start Count }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Db Utils . wait Ms ( method , Ġ 3 0 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloc Event Ġ= Ġ" inter rupted " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġlog Msg End Ġ= Ġ"$ method ; Ġended , Ġfound :$ found ; Ġ$ log Msg ; Ġcount :${ command Monitor . start Count }, Ġ$ criteria ; Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" waiting Ġended Ġon :$ loc Event , Ġ${ stop Watch . time } Ġms , Ġ${ command Monitor . command }" ĊĠĠĠĠĠĠĠ ĠMy Log . v ( this , Ġlog Msg End ) ĊĠĠĠĠĠĠĠ Ġif Ġ( expect Started Ġ!= ĠTri State . UNKNOWN ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAssert . assertEquals ( log Msg End , Ġexpect Started . to Boolean ( false ), Ġfound ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfound ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠwaitFor Command End ( count 0 : ĠCommand Counter ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmethod Ġ= Ġthis :: waitFor Command End . name ĊĠĠĠĠĠĠĠ Ġval Ġstop Watch : ĠStop Watch Ġ= ĠStop Watch . create Started () ĊĠĠĠĠĠĠĠ ĠMy Log . v ( this , Ġ"$ method ; Ġstarted . Ġcount :${ command Monitor . end Count }") ĊĠĠĠĠĠĠĠ Ġvar Ġfound Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġvar Ġloc Event Ġ= Ġ" none , Ġcount :${ command Monitor . end Count }, Ġcount 0 :${ count 0 . end Count }" ĊĠĠĠĠĠĠĠ Ġfor Ġ( pass Ġin Ġ 0 .. 9 9 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( command Monitor . command Ġ!= Ġcount 0 . command ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloc Event Ġ= Ġ" other Ġcommand Ġis Ġmon itored " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( command Monitor . end Count Ġ> Ġcount 0 . end Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfound Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloc Event Ġ= Ġ" count : Ġ${ command Monitor . end Count } Ġ> Ġ${ count 0 . end Count }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Db Utils . wait Ms ( method , Ġ 3 0 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloc Event Ġ= Ġ" inter rupted " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠMy Log . v ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , Ġ"$ method ; Ġended ." Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Ġfound :" Ġ+ Ġfound Ġ+ Ġ", Ġevent :" Ġ+ Ġloc Event Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", Ġ${ stop Watch . time } Ġms , Ġ" Ġ+ Ġcommand Monitor . command ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġfound ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠwaitFor Condition ( predicate : ĠMy Service TestHelper . () Ġ-> ĠBoolean ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmethod Ġ= Ġ" waitFor Condition " ĊĠĠĠĠĠĠĠ Ġval Ġstop Watch : ĠStop Watch Ġ= ĠStop Watch . create Started () ĊĠĠĠĠĠĠĠ Ġvar Ġfound Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġvar Ġloc Event Ġ= Ġ" none " ĊĠĠĠĠĠĠĠ Ġfor Ġ( pass Ġin Ġ 0 .. 9 9 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( predicate ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfound Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloc Event Ġ= Ġ" matched " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Db Utils . wait Ms ( method , Ġ 3 0 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloc Event Ġ= Ġ" inter rupted " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠMy Log . v ( this , Ġ"$ method Ġended , Ġmatched :$ found , Ġevent :$ loc Event , Ġ${ stop Watch . time } Ġms ") ĊĠĠĠĠĠĠĠ Ġreturn Ġfound ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstop Service ( clear Queue : ĠBoolean ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ ĠMy Service Manager . stop Service () ĊĠĠĠĠĠĠĠ Ġreturn ĠwaitFor Service Stop ( clear Queue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠwaitFor Service Stop ( clear Queue : ĠBoolean ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmethod Ġ= Ġ" waitFor Service Stopped " ĊĠĠĠĠĠĠĠ Ġval Ġstop Watch : ĠStop Watch Ġ= ĠStop Watch . create Started () ĊĠĠĠĠĠĠĠ ĠMy Log . v ( this , Ġ"$ method Ġstarted ") ĊĠĠĠĠĠĠĠ Ġvar Ġstopped Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġvar Ġprev Check Time Ġ= Ġ 0 L ĊĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( service Stopped ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( clear Queue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrop Queues () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstopped Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Db Utils . wait Ms ( method , Ġ 1 0 0 )) Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( stop Watch . time Ġ> Ġprev Check Time ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprev Check Time Ġ+= Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( My Service Manager . getService State () Ġ== ĠMy Service State . STOP PED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstopped Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġwhile Ġ( stop Watch . not Passed Seconds ( 1 3 0 )) Ġ// ĠTODO : Ġfix Ġorg . and status . app . net . http . My HttpClient Factory Ġto Ġdecrease Ġthis ĊĠĠĠĠĠĠĠ ĠMy Log . v ( this , Ġmethod Ġ+ Ġ" Ġended , Ġ" Ġ+ Ġ( if Ġ( stopped ) Ġ" stopped " Ġelse Ġ" did n 't Ġstop ") Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ", Ġ${ stop Watch . time } Ġms ") ĊĠĠĠĠĠĠĠ Ġreturn Ġstopped ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Receive ( command Data : ĠCommand Data , Ġmy Service Event : ĠMy Service Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( my Service Event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy Service Event . BEFORE _ EXECUT ING _ COMMAND Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcommand Monitor . onStart ( command Data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġservice Stopped Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy Service Event . AFTER _ EXECUT ING _ COMMAND Ġ-> Ġcommand Monitor . on End ( command Data ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy Service Event . ON _ STOP Ġ-> Ġservice Stopped Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠMy Log . v ( this , Ġ" on Receive ; Ġ$ my Service Event , Ġ$ command Data ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠtearDown () Ġ{ ĊĠĠĠĠĠĠĠ ĠMy Log . v ( this , Ġ" te ar Down Ġstarted ") ĊĠĠĠĠĠĠĠ Ġdrop Queues () ĊĠĠĠĠĠĠĠ ĠSharedPreferences Util . put Boolean ( My Preferences . KEY _ SYNC _ WH ILE _ USING _ APPLICATION , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġservice Connector ?. unregister Receiver ( my Context . context ) ĊĠĠĠĠĠĠĠ ĠTest Suite . clear Http Stub s () ĊĠĠĠĠĠĠĠ ĠTest Suite . get My Context For Test (). connection State Ġ= ĠConnection State . UNKNOWN ĊĠĠĠĠĠĠĠ ĠMy Context Holder . my Context Holder . get Blocking (). accounts . initialize () ĊĠĠĠĠĠĠĠ ĠMy Context Holder . my Context Holder . get Blocking (). time lines . initialize () ĊĠĠĠĠĠĠĠ ĠMy Service Manager . Companion . set Service Available () ĊĠĠĠĠĠĠĠ ĠMy Log . v ( this , Ġ" te ar Down Ġended ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Http (): ĠHttp Connection Stub Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġhttp Connection Stub Ġ?: Ġthrow ĠIllegalStateException (" No Ġhttp Connection Stub ") ĊĠĠĠ Ġ} Ċ } Ċ