/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 . ĠBoost Tag ĠE . I . R . L . ĠR ome ll ĠD . Z . Ċ Ġ* ĠAll Ġrights Ġreserved Ċ Ġ* Ġportfolio . rome l lf udi . com Ċ Ġ*/ Ċ Ċ package Ġcom . rome l lf udi . share preference Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . google . gson . Gson Ċ import Ġorg . codehaus . jackson . Json Factory Ċ import Ġorg . codehaus . jackson . map . ObjectMapper Ċ import Ġorg . reflection s . util . Utils Ċ import Ġjava . io .* Ċ import Ġjava . lang . reflect . Type Ċ Ċ /** Ċ Ġ* ĠTools Ġclass ĠFactory Ċ Ġ* Ċ Ġ* Ġ@ version Ġ 1 . 0 . a Ċ Ġ* Ġ@ autor ĠR ome ll ĠDom ing ue z Ċ Ġ* Ġ@ date Ġ 3 / 1 1 / 1 6 Ċ Ġ*/ Ċ class ĠJson Util Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Throws ( Exception :: class ) ĊĠĠĠĠĠĠĠ Ġinternal Ġfun ĠtoJson ( var 0 : ĠAny ?, Ġvar 1 : ĠBoolean ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Factory Ġ= ĠJson Factory () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobj Mapper Ġ= ĠObjectMapper () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvar 2 Ġ= ĠString Writer () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvar 3 Ġ= Ġjson Factory . create Json Generator ( var 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( var 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar 3 . use Default PrettyPrinter () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobj Mapper . writeValue ( var 3 , Ġvar 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġvar 2 . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġ< T > Ġfrom Json ( name : ĠString , Ġclasses : ĠClass < T >): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobj Mapper Ġ= ĠObjectMapper () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobj Mapper . readValue ( name , Ġclasses ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( exc : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexc . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġ< T > Ġget Obj ec ToFile ( context : ĠContext , Ġname File : ĠString , ĠtypeOf : ĠType ): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Ġ= ĠgetString To Assets ( context , Ġname File ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ(! Utils . isEmpty ( name File )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGson (). fromJson < T >( json , ĠtypeOf ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun ĠgetString To Assets ( context : ĠContext , Ġname File : ĠString ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuf Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar ĠinputStream : ĠInputStream ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġbuffered Reader : ĠBufferedReader ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġjson : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠinputStream Ġ= Ġcontext . assets . open (" json /$ name File ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuffered Reader Ġ= ĠBufferedReader ( InputStream Reader ( inputStream , Ġ" UTF - 8 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġstr : ĠString ? ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr Ġ= Ġbuffered Reader . readLine () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( str Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuf . append ( str ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr Ġ= Ġbuffered Reader . readLine () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuffered Reader . close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson Ġ= Ġbuf . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġjson ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ