@ file : Jvm Name (" Utils ") Ċ Ċ package Ġcom . dash x . rn . sdk Ċ Ċ import Ġcom . facebook . react . bridge .* Ċ import Ġcom . google . gson . JsonArray Ċ import Ġcom . google . gson . JsonObject Ċ import Ġorg . json . JSONException Ċ Ċ @ Throws ( JSONException :: class ) Ċ fun Ġconvert Map ToJson ( readable Map : ĠRead able Map ?): ĠJsonObject ? Ġ{ ĊĠĠĠ Ġval Ġiterator Ġ= Ġreadable Map ?. keySet Iterator () Ġ?: Ġreturn Ġnull ĊĠĠĠ Ġval ĠjsonObject Ġ= ĠJsonObject () ĊĠĠĠ Ġwhile Ġ( iterator . hasNext Key ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġiterator . next Key () ĊĠĠĠĠĠĠĠ Ġwhen Ġ( readable Map . getType ( key )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRead able Type . Null Ġ-> ĠjsonObject . add ( key , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRead able Type . Boolean Ġ-> ĠjsonObject . addProperty ( key , Ġreadable Map . getBoolean ( key )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRead able Type . Number Ġ-> ĠjsonObject . addProperty ( key , Ġreadable Map . getDouble ( key )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRead able Type . String Ġ-> ĠjsonObject . addProperty ( key , Ġreadable Map . getString ( key )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRead able Type . Map Ġ-> ĠjsonObject . add ( key , Ġconvert Map ToJson ( readable Map . getMap ( key ))) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRead able Type . Array Ġ-> ĠjsonObject . add ( key , Ġconvert Array ToJson ( readable Map . get Array ( key ))) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn ĠjsonObject Ċ } Ċ Ċ @ Throws ( JSONException :: class ) Ċ fun Ġconvert Array ToJson ( readable Array : ĠRead able Array ?): ĠJson Array Ġ{ ĊĠĠĠ Ġval Ġjson Array Ġ= ĠJson Array () ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġreadable Array !!. size ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( readable Array . getType ( i )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRead able Type . Null Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRead able Type . Boolean Ġ-> Ġjson Array . add ( readable Array . getBoolean ( i )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRead able Type . Number Ġ-> Ġjson Array . add ( readable Array . getDouble ( i )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRead able Type . String Ġ-> Ġjson Array . add ( readable Array . getString ( i )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRead able Type . Map Ġ-> Ġjson Array . add ( convert Map ToJson ( readable Array . getMap ( i ))) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRead able Type . Array Ġ-> Ġjson Array . add ( convert Array ToJson ( readable Array . get Array ( i ))) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġjson Array Ċ } Ċ Ċ @ Jvm Over loads Ċ @ Throws ( Exception :: class ) Ċ fun ĠconvertTo Writable Map ( ĊĠĠĠ Ġmap : ĠMap < *, Ġ* >, ĊĠĠĠ Ġblacklist : ĠList < String > Ġ= Ġempty List < String >() Ċ ): ĠWrit able Map Ġ{ ĊĠĠĠ Ġval Ġwritable Map : ĠWrit able Map Ġ= ĠWrit able Native Map () ĊĠĠĠ Ġval Ġiterator : ĠIterator < String > Ġ= Ġmap . keys . iterator () Ġas ĠIterator < String > ĊĠĠĠ Ġwhile Ġ( iterator . hasNext ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġiterator . next () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( blacklist . contains ( key )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue ; ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġvalue Ġ= Ġmap [ key ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBoolean Ġ-> Ġwritable Map . put Boolean ( key , Ġ( value Ġas ĠBoolean ?) !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠInt Ġ-> Ġwritable Map . put Int ( key , Ġ( value Ġas ĠInt ?) !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDouble Ġ-> Ġwritable Map . put Double ( key , Ġ( value Ġas ĠDouble ?) !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Ġ-> Ġwritable Map . putString ( key , Ġvalue Ġas ĠString ?) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġwritable Map . putString ( key , Ġvalue . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġwritable Map Ċ } Ċ Ċ @ Throws ( JSONException :: class ) Ċ fun Ġconvert Json ToMap ( jsonObject : ĠJsonObject ?): ĠWrit able Map ? Ġ{ ĊĠĠĠ Ġval Ġentries Ġ= ĠjsonObject ?. entrySet () Ġ?: Ġreturn Ġnull ĊĠĠĠ Ġval Ġmap : ĠWrit able Map Ġ= ĠWrit able Native Map () ĊĠĠĠ Ġfor Ġ(( key ) Ġin Ġentries ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= ĠjsonObject [ key ] ĊĊĠĠĠĠĠĠĠ Ġif Ġ( value Ġis ĠJsonObject ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap . put Map ( key , Ġconvert Json ToMap ( value )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( value Ġis ĠJson Array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap . put Array ( key , Ġconvert Json ToArray ( value )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( value . as Json Primitive . is Boolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap . put Boolean ( key , Ġvalue . as Boolean ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( value . as Json Primitive . isNumber ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap . put Double ( key , Ġvalue . as Double ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( value . as Json Primitive . isString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap . putString ( key , Ġvalue . asString ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap . putString ( key , Ġvalue . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġmap Ċ } Ċ Ċ @ Throws ( JSONException :: class ) Ċ fun Ġconvert Json ToArray ( json Array : ĠJson Array ): ĠWrit able Array ? Ġ{ ĊĠĠĠ Ġval Ġarray : ĠWrit able Array Ġ= ĠWrit able Native Array () ĊĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġjson Array . size ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġjson Array [ i ] ĊĠĠĠĠĠĠĠ Ġif Ġ( value Ġis ĠJsonObject ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarray . push Map ( convert Json ToMap ( value )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( value Ġis ĠJson Array ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarray . push Array ( convert Json ToArray ( value )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( value . as Json Primitive . is Boolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarray . push Boolean ( value . as Boolean ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( value . as Json Primitive . isNumber ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarray . push Double ( value . as Double ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( value . as Json Primitive . isString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarray . push String ( value . asString ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarray . push String ( value . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġarray Ċ } Ċ Ċ fun ĠRead able Map . getMap If Present ( key : ĠString ): ĠRead able Map ? Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( this . has Key ( key )) Ġthis . getMap ( key ) Ġelse Ġnull Ċ } Ċ Ċ fun ĠRead able Map . getInt If Present ( key : ĠString ): ĠInt ? Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( this . has Key ( key )) Ġthis . getInt ( key ) Ġelse Ġnull Ċ } Ċ Ċ fun ĠRead able Map . getString If Present ( key : ĠString ): ĠString ? Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( this . has Key ( key )) Ġthis . getString ( key ) Ġelse Ġnull Ċ } Ċ Ċ fun ĠRead able Map . getBoolean If Present ( key : ĠString ): ĠBoolean ? Ġ{ ĊĠĠĠ Ġreturn Ġif Ġ( this . has Key ( key )) Ġthis . getBoolean ( key ) Ġelse Ġnull Ċ } Ċ