package Ġupgrade Ċ Ċ import Ġcore . Json Serializable Ċ import Ġorg . json . JSONArray Ċ import Ġorg . json . JSONObject Ċ Ċ /** Ċ Ġ* Ġ-------------------------------- -- ĠEVENT S Ġ-------------------------------- --- Ċ Ġ*/ Ċ Ċ object ĠUpgrade JS Code Event Ġ{ ĊĊĠ Ġconst Ġval Ġname ĠĠ Ġ= Ġ" upgrade JS Code Event " ĊĠ Ġconst Ġval ĠretVal Ġ= Ġ" manifest " Ċ } Ċ Ċ /** Ċ Ġ* Ġ-------------------------------- -- ĠAPI S Ġ-------------------------------- ----- Ċ Ġ*/ Ċ Ċ object ĠCheck Upgrade Version Ġ{ ĊĊĠ Ġconst Ġval Ġname Ġ= Ġ" check Upgrade Version " ĊĊĠ Ġobject ĠParams Ġ{ ĊĠĠĠ Ġconst Ġval Ġfrom Version Ġ= Ġ" from Version " ĊĠĠĠ Ġconst Ġval Ġto Version ĠĠ Ġ= Ġ" to Version " ĊĠ Ġ} ĊĊĠ Ġobject ĠRet Val Ġ{ ĊĠĠĠ Ġconst Ġval Ġmanifest Ġ Ġ= Ġ" manifest " ĊĠĠĠ Ġconst Ġval Ġto Version Ġ= Ġ" to Version " ĊĠ Ġ} Ċ } Ċ Ċ object ĠDownload File Ġ{ ĊĊĠ Ġconst Ġval Ġname Ġ= Ġ" download File " ĊĊĠ Ġobject ĠParams Ġ{ ĊĠĠĠ Ġconst Ġval ĠfileName ĠĠĠ Ġ= Ġ" fileName " ĊĠĠĠ Ġconst Ġval ĠfileType ĠĠĠ Ġ= Ġ" fileType " ĊĠĠĠ Ġconst Ġval ĠstartIndex Ġ Ġ= Ġ" startIndex " ĊĠĠĠ Ġconst Ġval Ġend Index ĠĠĠ Ġ= Ġ" end Index " ĊĠ Ġ} Ċ } ĊĊ Ċ /** Ċ Ġ* Ġ---------------- ----------- ĠUP GR ADE ĠMAN IFEST Ġ-------------------------------- Ċ Ġ*/ Ċ Ċ class ĠManifest Struct : ĠJson Serializable Ġ{ ĊĊĠ Ġvar Ġversion Name ĠĠĠĠ Ġ: ĠString ĠĠĠ Ġ= Ġ"" ĊĠ Ġvar Ġsuccess ĠĠĠĠĠĠĠĠ Ġ: ĠBoolean ĠĠ Ġ= Ġfalse ĊĠ Ġvar Ġcorrupt ĠĠĠĠĠĠĠĠ Ġ: ĠBoolean ĠĠ Ġ= Ġfalse ĊĠ Ġvar Ġbreaking Change Ġ Ġ: ĠBoolean ? Ġ Ġ= Ġnull ĊĠ Ġvar Ġversion Public ĠĠ Ġ: ĠBoolean ? Ġ Ġ= Ġnull ĊĠ Ġvar Ġfiles ĠĠĠĠĠĠĠĠĠĠ Ġ: ĠArray < Manifest File Struct > Ġ= Ġempty Array () ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠ Ġfun Ġfrom JsonObject ( json : ĠJSONObject ): ĠManifest Struct Ġ{ ĊĊĠĠĠĠĠ Ġval Ġstruct Ġ= ĠManifest Struct () ĊĠĠĠĠĠ Ġstruct . version Name ĠĠĠ Ġ= Ġjson . opt String (" version Name ") ĊĠĠĠĠĠ Ġstruct . success ĠĠĠĠĠĠĠ Ġ= Ġjson . opt Boolean (" success ") ĊĠĠĠĠĠ Ġstruct . cor rupt ĠĠĠĠĠĠĠ Ġ= Ġjson . opt Boolean (" cor rupt ") ĊĠĠĠĠĠ Ġstruct . breaking Change Ġ= Ġjson . opt Boolean (" breaking Change ") ĊĠĠĠĠĠ Ġstruct . version Public Ġ Ġ= Ġjson . opt Boolean (" version Public ") ĊĊĠĠĠĠĠ Ġval Ġfiles Arr Ġ= Ġjson . opt JSONArray (" files ") ĊĠĠĠĠĠ Ġif Ġ( files Arr Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġfiles Arr . length ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġval Ġfile Struct Json Ġ= Ġfiles Arr [ i ] Ġas ĠJSONObject ĊĠĠĠĠĠĠĠĠĠ Ġstruct . files Ġ= Ġstruct . files . plus ( Manifest File Struct . from JsonObject ( file Struct Json )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠ Ġreturn Ġstruct ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġto JsonObject (): ĠJSONObject Ġ{ ĊĊĠĠĠ Ġval Ġfiles Arr Ġ= ĠJSONArray () ĊĊĠĠĠ Ġfiles . forEach Ġ{ ĊĠĠĠĠĠ Ġfiles Arr . put ( it . to JsonObject ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġjson Ġ= ĠJSONObject () ĊĠĠĠ Ġjson . put (" version Name ", Ġversion Name ) ĊĠĠĠ Ġjson . put (" success ", Ġsuccess ) ĊĠĠĠ Ġjson . put (" cor rupt ", Ġcorrupt ) ĊĠĠĠ Ġjson . put (" files ", Ġfiles Arr ) ĊĠĠĠ Ġjson . put (" breaking Change ", Ġbreaking Change ) ĊĠĠĠ Ġjson . put (" version Public ", Ġversion Public ) ĊĊĠĠĠ Ġreturn Ġjson ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġto JsonObject (). toString () Ċ Ċ } Ċ Ċ class ĠManifest File Struct : ĠJson Serializable Ġ{ ĊĊĠ Ġvar Ġname ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: ĠString Ġ= Ġ"" ĊĠ Ġvar Ġsize ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: ĠLong Ġ= Ġ 0 L ĊĠ Ġvar Ġcheck Sum ĠĠĠĠĠĠĠĠ Ġ: ĠString Ġ= Ġ"" ĊĠ Ġvar Ġtype ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: ĠString Ġ= Ġ"" ĊĠ Ġvar Ġdownload ĠĠĠĠĠĠĠĠ Ġ: ĠBoolean Ġ= Ġfalse ĊĠ Ġvar Ġcopy ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: ĠBoolean Ġ= Ġfalse ĊĠ Ġvar Ġdone ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ: ĠBoolean Ġ= Ġfalse ĊĠ Ġvar Ġdownloaded Bytes Ġ Ġ: ĠLong ? Ġ= Ġnull ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠ Ġfun Ġfrom JsonObject ( json : ĠJSONObject ): ĠManifest File Struct Ġ{ ĊĊĠĠĠĠĠ Ġval Ġstruct Ġ= ĠManifest File Struct () ĊĊĠĠĠĠĠ Ġstruct . name ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġjson . opt String (" name ", Ġ"") ĊĠĠĠĠĠ Ġstruct . size ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġjson . opt Long (" size ", Ġ 0 L ) ĊĠĠĠĠĠ Ġstruct . check Sum ĠĠĠĠĠĠĠĠ Ġ= Ġjson . opt String (" check Sum ", Ġ"") ĊĠĠĠĠĠ Ġstruct . type ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġjson . opt String (" type ", Ġ"") ĊĠĠĠĠĠ Ġstruct . download ĠĠĠĠĠĠĠĠ Ġ= Ġjson . opt Boolean (" download ") ĊĠĠĠĠĠ Ġstruct . copy ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġjson . opt Boolean (" copy ") ĊĠĠĠĠĠ Ġstruct . done ĠĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġjson . opt Boolean (" done ") ĊĠĠĠĠĠ Ġstruct . downloaded Bytes Ġ Ġ= Ġjson . opt Long (" downloaded Bytes ") ĊĊĠĠĠĠĠ Ġreturn Ġstruct ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġto JsonObject (): ĠJSONObject Ġ{ ĊĊĠĠĠ Ġval Ġjson Ġ= ĠJSONObject () ĊĊĠĠĠ Ġjson . put (" name ", Ġname ) ĊĠĠĠ Ġjson . put (" size ", Ġsize ) ĊĠĠĠ Ġjson . put (" check Sum ", Ġcheck Sum ) ĊĠĠĠ Ġjson . put (" type ", Ġtype ) ĊĠĠĠ Ġjson . put (" download ", Ġdownload ) ĊĠĠĠ Ġjson . put (" copy ", Ġcopy ) ĊĠĠĠ Ġjson . put (" done ", Ġdone ) ĊĠĠĠ Ġjson . put (" downloaded Bytes ", Ġdownloaded Bytes ) ĊĊĠĠĠ Ġreturn Ġjson ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġto JsonObject (). toString () Ċ } ĊĊ