package Ġhe b . apps . math trainer . data . quiz . result msgs Ċ Ċ import Ġandroid . content . Context Ċ import Ġhe b . apps . math trainer . R Ċ import Ġhe b . apps . math trainer . utils . json . JSON De codable Ċ import Ġhe b . apps . math trainer . utils . json . JSON Obj Ċ import Ġhe b . apps . math trainer . utils . json . map Ċ import Ġorg . json . JSONException Ċ Ċ class ĠRes Msgs Manager ( ctx : ĠContext ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġmsgs Info : ĠList < Msgs Info > Ġ= ĠMsg s Info . parse List ( ctx , ĠR . raw . msgs _ stars ) ĊĊĠĠĠ Ġ// Ġrandom Ġmessage ĊĠĠĠ Ġfun Ġrand Msg ( num Of St ars : ĠInt ) Ġ: ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmsgs Info Ġ= Ġmsgs Info . find Ġ{ Ġit . num Of St ars Ġ== ĠnumOf St ars Ġ} ĊĠĠĠĠĠĠĠ Ġrequire ( msgs Info Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Cannot Ġfind Ġ' Msgs Info ' Ġwith ĠnumOf St ars =$ num Of St ars " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġmsgs Info . msgs . random () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġmessages Ġinfo ĊĠĠĠ Ġprivate Ġdata Ġclass ĠMsg s Info ( val ĠnumOf St ars : ĠInt , Ġval Ġmsgs : ĠList < String >) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ: ĠJSON De codable < Msgs Info > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġval Ġlist Json Obj Name : ĠString Ġ= Ġ" msgs " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġparse Ġfrom ĠJSON Ġobject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġparse ( json Obj : ĠJSON Obj ) Ġ: ĠMsg s Info Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠnumOf St ars Ġ= Ġjson Obj . getInt (" stars ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessages Ġ= Ġjson Obj . get JSONArray (" messages "). map Ġ{ Ġit . toString () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMsg s Info ( num Of St ars , Ġmessages ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠJSON Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠJSON Exception (" Cannot Ġparse Ġ' Msgs Info ' Ġfrom ĠJSON . Ġinternal Ġerror : Ġ${ ex . message }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }