/* Ċ Ġ* ĠThe ĠMIT ĠLicense Ġ( MIT ) Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 0 ĠTrans way Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġcom . eric af en yo . b ik edi ary . util Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . google . gson . Gson Builder Ċ import Ġjava . io . IOException Ċ import Ġjava . lang . reflect . Type Ċ import Ġjava . nio . charset . Charset Ċ import Ġkotlin . reflect . K Class Ċ Ċ object ĠJSON Ġ{ ĊĠ Ġprivate Ġval Ġgson Ġ= ĠGson Builder (). create () ĊĊĠ Ġfun Ġstringify ( entity : ĠAny ): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġgson . toJson ( entity ) ĊĠ Ġ} ĊĊĠ Ġ// ĠUser Ġfor Ġdebug Ġonly ĊĠ Ġfun Ġprett ify ( entity : ĠAny ): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġgson . newBuilder (). set Pretty Print ing (). create (). toJson ( entity ) ĊĠ Ġ} ĊĊĠ Ġfun Ġ< T Ġ: ĠAny > Ġparse ( json String : ĠString , Ġclazz : ĠK Class < T >): ĠT Ġ{ ĊĠĠĠ Ġreturn Ġgson . fromJson ( json String , Ġclazz . java ) ĊĠ Ġ} ĊĊĠ Ġfun Ġ< T Ġ: ĠAny > Ġparse ( json String : ĠString , Ġtype : ĠType ): ĠT Ġ{ ĊĠĠĠ Ġreturn Ġgson . fromJson ( json String , Ġtype ) ĊĠ Ġ} ĊĊĠ Ġfun Ġfrom Asset ( context : ĠContext , Ġfilename : ĠString ): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠ Ġval ĠinputStream Ġ= Ġcontext . assets . open ( filename ) ĊĠĠĠĠĠ Ġval Ġsize : ĠInt Ġ= ĠinputStream . available () ĊĠĠĠĠĠ Ġval Ġbuffer Ġ= ĠByteArray ( size ) ĊĠĠĠĠĠ ĠinputStream . read ( buffer ) ĊĠĠĠĠĠ ĠinputStream . close () ĊĠĠĠĠĠ ĠString ( buffer , ĠCharset . forName (" UTF - 8 ")) ĊĠĠĠ Ġ} Ġcatch Ġ( exception : ĠIOException ) Ġ{ ĊĠĠĠĠĠ Ġexception . printStackTrace () ĊĠĠĠĠĠ Ġ"" ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ