package Ġf ns b . mac str ans it Ċ Ċ import Ġandroid . util . Log Ċ import Ġorg . json . JSONException Ċ import Ġorg . json . JSONObject Ċ import Ġjava . io . File Ċ import Ġjava . io . FileInputStream Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠSp ud Ġon Ġ 6 / 2 7 / 2 0 Ġfor Ġthe Ġproject : ĠMAC S ĠTrans it . Ċ Ġ* ĠFor Ġthe Ġlicense , Ġview Ġthe Ġfile Ġtitle d ĠLICENSE Ġat Ġthe Ġroot Ġof Ġthe Ġproject . Ċ Ġ* Ċ Ġ* Ġ@ version Ġ 2 . 0 . Ċ Ġ* Ġ@ since ĠRelease Ġ 1 . 2 . Ċ Ġ*/ Ċ internal Ġobject ĠHelper Ġ{ ĊĊ ĉ /** Ċĉ Ġ* ĠTODO ĠDocumentation Ċĉ Ġ*/ Ċ ĉ private Ġconst Ġval ĠROOT Ġ= Ġ" src / test / java / fns b / mac str ans it / test files /" ĊĊ ĉ /** Ċĉ Ġ* ĠTODO ĠDocumentation Ċĉ Ġ*/ Ċ ĉ val ĠALL _ VE H IC LES _ JSON Ġ= ĠFile ( ROOT Ġ+ Ġ" all Ġvehicles . json ") Ċ ĉ val ĠALL _ VE H IC LES _ EMPTY _ JSON Ġ= ĠFile ( ROOT Ġ+ Ġ" all Ġvehicles Ġempty . json ") Ċ ĉ val ĠMASTER ROUTE _ JSON Ġ= ĠFile ( ROOT Ġ+ Ġ" master Route . json ") Ċ ĉ val ĠO LD _ SETTINGS _ TXT Ġ= ĠFile ( ROOT Ġ+ Ġ" old Ġsettings . txt ") Ċ ĉ val ĠSET T INGS _ JSON Ġ= ĠFile ( ROOT Ġ+ Ġ" settings . json ") Ċ ĉ val ĠBL UE _ STOP S Ġ= ĠFile ( ROOT Ġ+ Ġ" stops / Blue . json ") Ċ ĉ val ĠBRO WN _ STOP S Ġ= ĠFile ( ROOT Ġ+ Ġ" stops / B rown . json ") Ċ ĉ val ĠG OLD _ STOP S Ġ= ĠFile ( ROOT Ġ+ Ġ" stops / Gold . json ") Ċ ĉ val ĠGREEN _ STOP S Ġ= ĠFile ( ROOT Ġ+ Ġ" stops / Green . json ") Ċ ĉ val ĠP UR PLE _ STOP S Ġ= ĠFile ( ROOT Ġ+ Ġ" stops / Pur ple . json ") Ċ ĉ val ĠRED _ STOP S Ġ= ĠFile ( ROOT Ġ+ Ġ" stops / Red . json ") Ċ ĉ val ĠY ELLOW _ STOP S Ġ= ĠFile ( ROOT Ġ+ Ġ" stops / Yellow . json ") ĊĊ ĉ /** Ċĉ Ġ* ĠTODO ĠDocumentation Ċĉ Ġ*/ Ċ ĉ val ĠTRANS IT _ CENTER Ġ= ĠFile ( ROOT Ġ+ Ġ" stop Times / Transit ĠCenter . json ") Ċ ĉ val ĠGE IST _ MC DS Ġ= ĠFile ( ROOT Ġ+ Ġ" stop Times / Ge ist ĠMc Ds . json ") Ċ ĉ val ĠW O OD _ CENTER Ġ= ĠFile ( ROOT Ġ+ Ġ" stop Times / W ood ĠCenter . json ") ĊĊ ĉ /** Ċĉ Ġ* ĠTODO ĠDocumentation Ġand Ġcomments Ċĉ Ġ* Ċĉ Ġ* Ġ@ param Ġfile Ċĉ Ġ* Ġ@ return Ċĉ Ġ*/ Ċ ĉ @ Jvm Static Ċ ĉ fun ĠgetText ( file : ĠFile ): ĠString Ġ{ ĊĊĉ ĉ // ĠTry Ġto Ġcreate Ġa Ġfile Ġinput Ġstream Ġin Ġorder Ġto Ġread Ġthe Ġdata Ġfrom Ġthe Ġfile . Ċĉ ĉ val Ġinput : ĠFileInputStream Ġ= Ġtry Ġ{ Ċĉĉ ĉ FileInputStream ( file ) Ċĉ ĉ } Ġcatch Ġ( e : Ġjava . io . FileNotFoundException ) Ġ{ Ċĉĉ ĉ Log . e (" readFile ", Ġ" No Ġfile Ġfound Ġfor Ġpath : Ġ" Ġ+ Ġfile . absolute Path ) Ċĉĉ ĉ return Ġ"" Ċĉ ĉ } ĊĊĉ ĉ // ĠIf Ġthe Ġfile Ġinput Ġstream Ġwas Ġcreated Ġsuccessfully , Ġexecute Ġthe Ġfollowing : Ċĉ ĉ val ĠstringBuilder Ġ= ĠStringBuilder () Ċĉ ĉ try Ġ{ Ċĉĉ ĉ java . io . BufferedReader ( Ċĉĉĉĉ ĉ java . io . InputStream Reader ( input , Ġjava . nio . charset . StandardCharsets . UTF _ 8 )) Ċĉĉĉĉ ĉ . use Ġ{ Ġreader Ġ-> Ċĉĉĉĉĉ ĉ var Ġline Ġ= Ġreader . readLine () Ċĉĉĉĉĉ ĉ while Ġ( line Ġ!= Ġnull ) Ġ{ Ċĉĉĉĉĉĉ ĉ string Builder . append ( line ). append ("\ n ") Ċĉĉĉĉĉĉ ĉ line Ġ= Ġreader . readLine () Ċĉĉĉĉĉ ĉ } Ċĉĉĉĉ ĉ } Ċĉ ĉ } Ġcatch Ġ( e : Ġjava . io . IOException ) Ġ{ Ċĉĉ ĉ // ĠError Ġoccurred Ġwhen Ġopening Ġraw Ġfile Ġfor Ġreading . Ċĉĉ ĉ e . printStackTrace () Ċĉ ĉ } Ċĉ ĉ return ĠstringBuilder . toString () Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* ĠTODO ĠDocumentation Ġand Ġcomments Ċĉ Ġ* Ċĉ Ġ* Ġ@ param Ġfile Ċĉ Ġ* Ġ@ return Ċĉ Ġ* Ġ@ throws ĠJSON Exception Ċĉ Ġ*/ Ċ ĉ @ Jvm Static Ċ ĉ @ Throws ( JSONException :: class ) Ċ ĉ fun Ġget JSON ( file : ĠFile ): ĠJSONObject Ġ{ Ċĉ ĉ val Ġtext : ĠString Ġ= ĠgetText ( file ) Ċĉ ĉ return ĠJSONObject ( text ) Ċ ĉ } ĊĊ ĉ /** Ċĉ Ġ* ĠTODO ĠDocumentation Ċĉ Ġ* Ċĉ Ġ* Ġ@ param ĠstartTime Ċĉ Ġ* Ġ@ param ĠendTime Ċĉ Ġ*/ Ċ ĉ @ Jvm Static Ċ ĉ fun Ġprint Time ( startTime : ĠLong , ĠendTime : ĠLong ): ĠLong Ġ{ Ċĉ ĉ val Ġtotal Ġ= ĠendTime Ġ- ĠstartTime Ċĉ ĉ var Ġmicro seconds Ġ= Ġ 0 . 0 Ċĉ ĉ var Ġmilliseconds Ġ= Ġ 0 . 0 Ċĉ ĉ var Ġseconds Ġ= Ġ 0 . 0 Ċĉ ĉ if Ġ( total Ġ/ Ġ 1 0 0 0 Ġ>= Ġ 1 ) Ġ{ Ċĉĉ ĉ micro seconds Ġ= Ġtotal Ġ/ Ġ 1 0 0 0 . 0 Ċĉ ĉ } Ċĉ ĉ if Ġ( micro seconds Ġ/ Ġ 1 0 0 0 Ġ>= Ġ 1 ) Ġ{ Ċĉĉ ĉ milliseconds Ġ= Ġtotal Ġ/ Ġ 1 0 0 0 . 0 Ġ/ Ġ 1 0 0 0 . 0 Ċĉĉ ĉ micro seconds Ġ= Ġ 0 . 0 Ċĉ ĉ } Ċĉ ĉ if Ġ( milliseconds Ġ/ Ġ 1 0 0 0 Ġ>= Ġ 1 ) Ġ{ Ċĉĉ ĉ seconds Ġ= Ġtotal Ġ/ Ġ 1 0 0 0 . 0 Ġ/ Ġ 1 0 0 0 . 0 Ġ/ Ġ 1 0 0 0 . 0 Ċĉĉ ĉ micro seconds Ġ= Ġ 0 . 0 Ċĉ ĉ } Ċĉ ĉ print (" Time Ġtaken Ġto Ġexecute : Ġ") Ċĉ ĉ when Ġ{ Ċĉĉ ĉ seconds Ġ!= Ġ 0 . 0 Ġ-> Ġ{ Ċĉĉĉ ĉ println ("$ seconds Ġseconds \ t ($ total Ġnan oseconds )") Ċĉĉ ĉ } Ċĉĉ ĉ milliseconds Ġ!= Ġ 0 . 0 Ġ-> Ġ{ Ċĉĉĉ ĉ println ("$ milliseconds Ġmilliseconds \ t ($ total Ġnan oseconds )") Ċĉĉ ĉ } Ċĉĉ ĉ micro seconds Ġ!= Ġ 0 . 0 Ġ-> Ġ{ Ċĉĉĉ ĉ println ("$ micro seconds Ġmicro seconds \ t ($ total Ġnan oseconds )") Ċĉĉ ĉ } Ċĉĉ ĉ else Ġ-> Ġ{ Ċĉĉĉ ĉ println ("$ total Ġnan oseconds ") Ċĉĉ ĉ } Ċĉ ĉ } ĊĊĉ ĉ return Ġtotal Ċ ĉ } Ċ }