package Ġhe b . apps . math trainer . utils . json Ċ Ċ import Ġorg . json . JSONException Ċ import Ġorg . json . JSONObject Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ // Ġconvert ĠJSONObject Ġto ĠJSON Obj Ċ fun ĠJSONObject . as JSON Obj (): ĠJSON Obj Ġ= ĠJSON Obj ( this ) ĊĊ Ċ class ĠJSON Obj ( json Str : ĠString Ġ= Ġ"{} ") Ġ: ĠJSONObject ( json Str ) Ġ{ ĊĊĠĠĠ Ġconstructor ( json Obj : ĠJSONObject ) Ġ: Ġthis ( json Obj . toString ()) ĊĊĠĠĠ Ġ// Ġget Ġdate Ġfrom ĠJSON Ġobject ĊĠĠĠ Ġfun Ġopt Date ( key : ĠString , ĠdateFormat : ĠString Ġ= ĠDEF _ DATE _ FORMAT ): ĠDate ? Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Property Ġ= Ġopt String ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( json Property . isNull Or Blank ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSimpleDateFormat ( date Format , ĠLocale . getDefault ()). parse ( json Property ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠJSON Exception (" Cannot Ġparse Ġdate Ġwith Ġformat ='$ date Format ' Ġfrom ĠJSON Ġproperty ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġget Ġdate Ġfrom ĠJSON Ġobject ĊĠĠĠ Ġfun Ġget Date ( key : ĠString , ĠdateFormat : ĠString Ġ= ĠDEF _ DATE _ FORMAT ): ĠDate Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Property Ġ= ĠgetString ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSimpleDateFormat ( date Format , ĠLocale . getDefault ()). parse ( json Property ) !! ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠJSON Exception (" Cannot Ġparse Ġdate Ġwith Ġformat ='$ date Format ' Ġfrom ĠJSON Ġproperty ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġput Ġdate Ġin ĠJSON . ĊĠĠĠ Ġfun Ġput ( key : ĠString , Ġdate : ĠDate ?, ĠdateFormat : ĠString Ġ= ĠDEF _ DATE _ FORMAT ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( date Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Str Ġ= ĠSimpleDateFormat ( date Format , ĠLocale . getDefault ()). format ( date ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput ( key , Ġdate Str ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠReturn Ġthe Ġvalue Ġmapped Ġby Ġthe Ġgiven Ġkey , Ġor Ġ` null ` Ġif Ġnot Ġpresent Ġor Ġnull . Ġ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġopt String ( key : ĠString ): ĠString ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ= Ġif Ġ( isNull ( key )) Ġnull Ġelse Ġsuper . opt String ( key ) ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġdefault ĠJSON Ġdate Ġformat ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDEF _ DATE _ FORMAT Ġ= Ġ" dd / MM / yyyy ĠHH : mm : ss " ĊĠĠĠ Ġ} Ċ }