package Ġcom . example . av j inders ing h se kh on . minimal todo Ċ Ċ import Ġandroid . content . Context Ċ Ċ import Ġorg . json . JSONArray Ċ import Ġorg . json . JSONException Ċ import Ġorg . json . JSONObject Ċ import Ġorg . json . JSON Tok ener Ċ Ċ import Ġjava . io . BufferedReader Ċ import Ġjava . io . FileInputStream Ċ import Ġjava . io . FileNotFoundException Ċ import Ġjava . io . File OutputStream Ċ import Ġjava . io . IOException Ġ Ċ import Ġjava . util . ArrayList Ċ Ċ class ĠStore Retrieve Data ( private Ġval ĠmContext : ĠContext , Ġprivate Ġval Ġm FileName : ĠString ) Ġ{ ĊĊĠĠĠ Ġ@ Throws ( JSONException :: class , ĠIOException :: class ) ĊĠĠĠ Ġfun Ġsave ToFile ( items : ĠArrayList < ToDo Item >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile OutputStream : ĠFileOutputStream ĊĠĠĠĠĠĠĠ Ġfile OutputStream Ġ= ĠmContext . open File Output ( m FileName , ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġfile OutputStream . use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . writer (). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . write ( toJSON Array ( items ). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Throws ( IOException :: class , ĠJSON Exception :: class ) ĊĠĠĠ Ġfun Ġload FromFile (): ĠArrayList < ToDo Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitems Ġ= ĠArrayList < ToDo Item >() ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠStringBuilder () ĊĠĠĠĠĠĠĠ ĠmContext . open File Input ( m FileName )?. use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . buffered Reader (). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . read Lines (). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . append ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġjson Array Ġ= ĠJSON Tok ener ( builder . toString ()). next Value () Ġas ĠJSONArray ĊĠĠĠĠĠĠĠ Ġ( 0 .. json Array . length () Ġ- Ġ 1 ). map To ( items ) Ġ{ ToDo Item ( json Array . getJSONObject ( it ))} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġitems ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Throws ( JSONException :: class ) ĊĠĠĠĠĠĠĠ Ġfun Ġto JSONArray ( items : ĠArrayList < ToDo Item >): ĠJSONArray Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Array Ġ= ĠJSONArray () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitems . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjson Array . put ( it . toJSON ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġjson Array ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }