package Ġorg . n aho ft . n aho ft Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġorg . n aho ft . co dex . Persistence Encryption Ċ import Ġorg . simple framework . xml . core . Pers ister Ċ import Ġjava . io . ByteArray InputStream Ċ import Ġjava . io . File Ċ import Ġjava . lang . Exception Ċ Ċ object ĠFriend ViewModel : ĠViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġfriends : ĠArrayList < Friend >? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġget Friends ( file : ĠFile , Ġcontext : ĠContext ): ĠArrayList < Friend > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( friends Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Friends ( file , Ġcontext ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfriends Ġ?: Ġarray ListOf () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Friends ( file : ĠFile , Ġcontext : ĠContext ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġpersistence Encryption Ġ= ĠPersistence Encryption () ĊĠĠĠĠĠĠĠ Ġval Ġdecrypted Bytes Ġ= Ġpersistence Encryption . read Encrypted File ( file , Ġcontext ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( de crypted Bytes . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġserializer Ġ= ĠPers ister () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠinputStream Ġ= ĠByteArrayInputStream ( de crypted Bytes ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfriends Ġ= Ġtry Ġ{ Ġserializer . read ( Friends :: class . java , ĠinputStream ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( error : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint (" Error Ġloading Ġfriends : Ġ$ error ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . friends Ġ= Ġfriends ?. list ?. let Ġ{ ĠArrayList ( it )} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }