package Ġme . phantom x . f jet pack re loaded . extensions Ċ Ċ import Ġkotlinx . coroutines . Dispatch ers . IO Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġme . phantom x . f jet pack re loaded . modules . Module . database Directory Ċ import Ġme . phantom x . f jet pack re loaded . modules . Module . gson Ċ import Ġme . phantom x . f jet pack re loaded . modules . Module . string Empty Ċ import Ġjava . io .* Ċ Ċ @ Suppress (" Blocking Method In Non Blocking Context ") Ċ suspend Ġfun Ġget Database ( database : ĠString ) Ġ= Ġwith Context ( IO ) Ġ{ ĊĠĠĠ ĠFile ( database Directory , Ġ"$ database . dat "). safe Run Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! database Directory . exists () Ġ|| Ġ! exists ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstring Empty ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBufferedReader ( FileReader ( this )). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . read Text () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġ?: Ġstring Empty Ċ } Ċ Ċ @ Suppress (" Blocking Method In Non Blocking Context ") Ċ suspend Ġfun < T Ġ: ĠAny > Ġsave Database ( database : ĠString , Ġdata : ĠT ) Ġ= Ġwith Context ( IO ) Ġ{ ĊĠĠĠ ĠFile ( database Directory , Ġ"$ database . dat "). with Safe Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Safe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent File . mkdir s () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent File . mkdir () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠBuffered Writer ( FileWriter ( this )). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . write ( gson . toJson ( data )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . flush () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }