package Ġcom . vm . service Ċ Ċ import Ġandroid . app . Intent Service Ċ import Ġandroid . content . Intent Ċ import Ġcom . vm . api . Ret rofit Helper Ċ import Ġcom . vm . shadow socks . App Ċ import Ġcom . vm . shadow socks . constant . Constant Ċ import Ġcom . vm . shadow socks . core . Local Vpn Service Ċ import Ġcom . vm . shadow socks . domain . Event Message Ċ import Ġcom . vm . shadow socks . domain . User Ċ import Ġcom . vm . shadow socks . tool . Log Util Ċ import Ġcom . vm . shadow socks . tool . Share Persistent Ċ import Ġcom . wang zy . http model . HttpRequest er Ċ import Ġcom . wang zy . http model . My Net CallBack Extend Ċ import Ġcom . wang zy . http model . gson . ext . Result Ċ import Ġokhttp 3 . Call Ċ import Ġorg . green robot . event bus . EventBus Ċ import Ġjava . util .* Ċ Ċ class ĠMy Intent Service Ġ: ĠIntent Service (" My Intent Service ") Ġ{ ĊĊĊĠĠĠ Ġvar Ġtimer : ĠTimer ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġtimer Task : ĠTimer Task ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate () ĊĠĠĠĠĠĠĠ Ġinit Timer () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Timer () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( null Ġ== Ġtimer Ġ|| Ġnull Ġ== Ġtimer Task ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtimer Ġ= ĠTimer () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtimer Task Ġ= Ġobject Ġ: ĠTimer Task () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Util . e ( Constant . TAG , Ġ" timer Ġupdate Ġtraffic ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Traffic () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtimer ?. schedule ( timer Task , Ġ 0 , Ġ 3 0 Ġ* Ġ 1 0 0 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Handle Intent ( intent : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Timer () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġupdate Traffic () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġvar Ġtotal byte Ġ= Ġ( Share Persistent . get Float ( this @ My Intent Service , Ġ" ad fl ak sd fl as fj ald sk j ") Ġ/ Ġ 1 0 2 4 ). to Long () ĊĊĠĠĠĠĠĠĠ ĠLog Util . e ( Constant . TAG , Ġ" æµģ éĩı ====== >: $ total byte ") ĊĠĠĠĠĠĠĠ Ġtotal byte Ġ= Ġif Ġ( total byte Ġ> Ġ 0 ) Ġtotal byte Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġfinal Total byte Ġ= Ġtotal byte ĊĊĠĠĠĠĠĠĠ Ġif Ġ( null Ġ== ĠApp . instance . user ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog Util . e ( Constant . TAG , Ġ" æ²¡æľī çĶ¨æĪ· æĹłæ³ķ æĽ´æĸ° æµģ éĩı ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( final Total byte Ġ<= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Util . e ( Constant . TAG , Ġ" æ²¡æľī æŃ£ æµģ éĩı :"+ final Total byte ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( null Ġ!= ĠApp . instance . user Ġ&& Ġfinal Total byte Ġ> Ġ 0 ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Ġ= ĠHashMap < String , ĠString >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap [" uuid "] Ġ= ĠApp . instance . user !!. uuid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap [" cost _ size "] Ġ= Ġfinal Total byte . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHttpRequest er . post HashMap ( Ret rofit Helper . BASE _ URL Ġ+ Ġ" cost _ traffic ", Ġmap , Ġobject Ġ: ĠMy Net CallBack Extend < User >( User :: class . java , Ġfalse ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure Finish ( call : ĠCall , Ġe : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Util . e ( Constant . TAG , Ġ" on Failure Finish :" Ġ+ Ġe . localized Message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall . cancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response Result ( result : ĠResult < User >, Ġcall : Ġokhttp 3 . Call ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcall . cancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġresult . getData () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp . instance . user Ġ= Ġuser ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocal Vpn Service . m _ Received Bytes Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocal Vpn Service . m _ Sent Bytes Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocal Vpn Service . log Data Saved ( this @ My Intent Service , Ġ 0 , Ġtrue ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Util . e ( Constant . TAG ," up ate Ġsuccess ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( App . instance . user !!. get Remaining _ bytes () <= 0 Ġ|| ĠApp . instance . user !!. enable == false ){ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Util . e ( Constant . TAG ," out Ġoff Ġtraffic Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocal Vpn Service . Is Running = false ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġevent Msg Ġ= ĠEvent Message () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent Msg . type Ġ= ĠEvent Message . TYPE _ MSG _ REG IST ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). post ( event Msg ) ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog Util . e ( Constant . TAG , Ġ" æĿ¡ä»¶ ä¸į è¶³ æĹłæ³ķ æĽ´æĸ° æµģ éĩı ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ