package Ġcom . aqu atic . luc re . view models Ċ Ċ import Ġandroidx . core . util . Predicate Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . aqu atic . luc re . core . Base ViewModel Ċ import Ġcom . aqu atic . luc re . models . Vault Ċ import Ġcom . aqu atic . luc re . repositories . Vault Store Ċ import Ġkotlinx . coroutines . launch Ċ import Ġorg . jetbrains . ank o . An ko Logger Ċ Ċ class ĠVault ViewModel Ġ: ĠBase ViewModel < Vault >(), ĠAn ko Logger Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcollection Ġ= Ġfire store . collection (" vault s ") ĊĠĠĠ Ġprivate Ġval Ġstore Ġ= ĠVault Store ( collection ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġget Vault s () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Vault s () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvault s Ġ= Ġstore . where (" userId ", Ġauth . currentUser ?. uid !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpredicate Ġ= ĠPredicate < Vault > Ġ{ Ġit . userId Ġ== Ġauth . currentUser ?. uid !! Ġ&& Ġit . deleted Ġ== Ġfalse Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . post Value ( vault s . filter Ġ{ Ġpredicate . test ( it ) Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore . subscribe ( predicate ). subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . post Value ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSave Ġthe Ġvault Ġto Ġfirebase Ġusing ĊĠĠĠĠ Ġ* Ġa Ġcoroutine ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsave Vault ( vault : ĠVault ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvault . userId Ġ= Ġauth . currentUser ?. uid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore . save ( vault ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSoft Ġdelete Ġthe Ġvault Ġfrom Ġfirebase Ġusing ĊĠĠĠĠ Ġ* Ġa Ġcoroutine ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdelete Vault ( vault : ĠVault ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore . delete ( vault ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ