package Ġcom . ab t asty . flag ship qa . ui . context Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . lifecycle . Android ViewModel Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . ab t asty . flag ship . main . Flag ship Ċ import Ġcom . ab t asty . flag ship qa . R Ċ import Ġorg . json . JSONObject Ċ import Ġjava . lang . Exception Ċ import Ġkotlin . reflect . K Property 1 Ċ Ċ class ĠContext ViewModel ( val Ġapp Context : ĠApplication ) Ġ: ĠAndroid ViewModel ( app Context ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġ_ data Ġ= ĠMutable LiveData < Bundle >(). apply Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġvisitor Context Ġ= ĠMutable LiveData < String >(). apply Ġ{ Ġthis . value Ġ= Ġ" {\ n \ n }" Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġload Visitor Context () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< R > Ġread Instance Property ( instance : ĠAny , ĠpropertyName : ĠString ): ĠR Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproperty Ġ= Ġinstance :: class . members ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. first Ġ{ Ġit . name Ġ== ĠpropertyName Ġ} Ġas ĠK Property 1 < Any , Ġ*> ĊĠĠĠĠĠĠĠ Ġreturn Ġproperty . get ( instance ) Ġas ĠR ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Visitor Context () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvisitor Ctx Ġ= Ġread Instance Property < HashMap < String , ĠAny >>( Flag ship . Companion , Ġ" context ") ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= ĠJSONObject ("{} ") ĊĠĠĠĠĠĠĠ Ġfor Ġ( e Ġin Ġvisitor Ctx ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjson . put ( e . key , Ġe . value ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvisitor Context . value Ġ= Ġjson . toString ( 4 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsynchronize ( success : Ġ( String ) Ġ-> ĠUnit , Ġerror : Ġ( String ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġget Visitor Context ( error ) ĊĠĠĠĠĠĠĠ ĠFlag ship . update Context ( context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuccess ( app Context . resources . getString ( R . string . fragment _ context _ success )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġload Visitor Context () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Visitor Context ( error : Ġ( String ) Ġ-> ĠUnit ): ĠHashMap < String , ĠAny > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= ĠHashMap < String , ĠAny >() ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Ġ= ĠJSONObject ( visitor Context . value Ġ?: Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( k Ġin Ġjson . keys ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext [ k ] Ġ= Ġjson . get ( k ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror ( app Context . resources . getString ( R . string . fragment _ context _ error )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġcontext ĊĠĠĠ Ġ} Ċ }