package Ġcom . jon . common . service Ċ Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroidx . annotation . Call Super Ċ import Ġcom . jon . common . cot . Cursor On Target Ċ import Ġcom . jon . common . prefs . Common Prefs Ċ import Ġcom . jon . common . prefs . getInt From Pair Ċ import Ġcom . jon . common . repositories . IS ocket Repository Ċ import Ġcom . jon . common . utils . Data Format Ċ import Ġcom . jon . common . utils . Protocol Ċ import Ġcom . jon . common . utils . exhaustive Ċ import Ġtim ber . log . Tim ber Ċ import Ġjava . net . Inet Address Ċ Ċ abstract Ġclass ĠBase Thread ( protected Ġval Ġprefs : ĠSharedPreferences ) Ġ: ĠThread () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlock Ġ= ĠAny () ĊĠĠĠ Ġprivate Ġvar Ġb Is Running Ġ= Ġfalse ĊĊĠĠĠ Ġprotected Ġvar Ġdata Format Ġ= ĠData Format . from Prefs ( prefs ) ĊĠĠĠ Ġprotected Ġlateinit Ġvar Ġc ot Factory : ĠC ot Factory ĊĠĠĠ Ġprotected Ġlateinit Ġvar Ġsocket Repository : ĠIS ocket Repository ĊĠĠĠ Ġprotected Ġlateinit Ġvar Ġc ot Icons : ĠList < Cursor On Target > ĊĊĠĠĠ Ġprotected Ġlateinit Ġvar Ġdest Ip : ĠInet Address ĊĠĠĠ Ġprotected Ġvar Ġdest Port : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġprotected Ġabstract Ġfun Ġinitialise Dest Address () ĊĠĠĠ Ġprotected Ġabstract Ġfun Ġopen Sockets () ĊĊĠĠĠ Ġopen Ġfun Ġis Running (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġsynchronized ( lock ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġb Is Running ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Call Super ĊĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . d (" run ") ĊĠĠĠĠĠĠĠ Ġsynchronized ( lock ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb Is Running Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc ot Icons Ġ= Ġc ot Factory . generate () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġshutdown () Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . d (" shutdown ") ĊĠĠĠĠĠĠĠ Ġsynchronized ( lock ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb Is Running Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinterrupt () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġbuffer Sleep ( buffer Time Ms : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsleep ( buffer Time Ms ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInterruptedException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* Ġdo Ġnothing Ġ*/ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġperiod Milliseconds (): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġprefs . getInt From Pair ( Common Prefs . TRAN SM IS SION _ PERIOD ). to Long () Ġ* Ġ 1 0 0 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġfrom Prefs ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprefs : ĠSharedPreferences , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsocket Repository : ĠIS ocket Repository , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc ot Factory : ĠC ot Factory , ĊĠĠĠĠĠĠĠ Ġ): ĠBase Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( Protocol . from Prefs ( prefs )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProtocol . UDP Ġ-> ĠU dp Thread ( prefs ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProtocol . TCP Ġ-> ĠTcp Thread ( prefs ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠProtocol . SSL Ġ-> ĠS sl Thread ( prefs ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. exhaustive . also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . cot Factory Ġ= Ġc ot Factory ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . socket Repository Ġ= Ġsocket Repository ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ