package Ġcom . radix d lt . android . apps . wallet . ui . main . assets Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . had il q . live event . Live Event Ċ import Ġcom . radix d lt . android . apps . wallet . data . model . asset . Asset Dao Ċ import Ġcom . radix d lt . android . apps . wallet . data . model . asset . Asset Entity Ċ import Ġcom . radix d lt . android . apps . wallet . data . model . transaction . Transaction Dao Ċ import Ġcom . radix d lt . android . apps . wallet . data . model . transaction . Transaction Entity Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . rx kotlin . addTo Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjava . io . InputStream Reader Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠAssets ViewModel Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠContext , ĊĠĠĠ Ġprivate Ġval Ġasset Dao : ĠAsset Dao , ĊĠĠĠ Ġprivate Ġval Ġtransaction Dao : ĠTransaction Dao Ċ ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcomposite Disposable Ġ= ĠComposite Disposable () ĊĊĠĠĠ Ġprivate Ġval Ġassets Ġ= Ġmutable ListOf < Asset >() ĊĊĠĠĠ Ġprivate Ġval Ġ_ assets Action : ĠMutable LiveData < Assets Action > Ġ= ĠMutable LiveData () ĊĠĠĠ Ġval Ġassets Action : ĠLive Data < Assets Action > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ assets Action ĊĊĠĠĠ Ġprivate Ġval Ġ_ single Action Ġ= ĠLive Event < Assets Action >() ĊĠĠĠ Ġval Ġsingle Action : ĠLive Event < Assets Action > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ single Action ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġinsert Transactions Into DB () ĊĠĠĠĠĠĠĠ Ġretrieve Assets () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġretrieve Assets () Ġ{ ĊĠĠĠĠĠĠĠ Ġasset Dao . getAll Assets () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Assets State ( Assets Action . Show Assets ( it )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. addTo ( composite Disposable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġnavigate To () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ single Action . value Ġ= ĠAssets Action . Navigate To ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclose Back Up Mnemonic Warning Sign () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ single Action . value Ġ= ĠAssets Action . Close Back Up Mnemonic Warning ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Assets State ( action : ĠAssets Action ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ assets Action . post Value ( action ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cle ared () Ġ{ ĊĠĠĠĠĠĠĠ Ġassets . clear () ĊĠĠĠĠĠĠĠ Ġcomposite Disposable . clear () ĊĠĠĠĠĠĠĠ Ġsuper . on Cle ared () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinsert Transactions Into DB () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġassets Ġ= Ġcontext . assets . open (" dummy _ assets . json ") ĊĠĠĠĠĠĠĠ Ġval Ġtransactions Ġ= Ġcontext . assets . open (" dummy _ transactions _ om . json ") ĊĠĠĠĠĠĠĠ Ġval Ġasset Entity List Ġ= ĠGson (). fromJson ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInputStreamReader ( assets ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArray < Asset Entity >:: class . java ĊĠĠĠĠĠĠĠ Ġ). toList () ĊĠĠĠĠĠĠĠ Ġval Ġtransactions Entity OM List Ġ= ĠGson (). fromJson ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInputStreamReader ( transactions ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArray < Transaction Entity >:: class . java ĊĠĠĠĠĠĠĠ Ġ). toList () ĊĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġasset Dao . insert Assets ( asset Entity List ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction Dao . insert Transactions ( transactions Entity OM List ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ