package Ġde . r ki . cor on aw arn app . c cl . dcc wallet info . storage Ċ Ċ import Ġde . r ki . cor on aw arn app . c cl . dcc wallet info . model . D cc Wallet Info Ċ import Ġde . r ki . cor on aw arn app . c cl . dcc wallet info . model . Person Wallet Info Ċ import Ġde . r ki . cor on aw arn app . c cl . dcc wallet info . storage . database . D cc Wallet Info Dao Ċ import Ġde . r ki . cor on aw arn app . c cl . dcc wallet info . storage . database . D cc Wallet Info Entity Ċ import Ġde . r ki . cor on aw arn app . covid certificate . common . certificate . Certificate Person Identifier Ċ import Ġde . r ki . cor on aw arn app . util . coroutine . App Scope Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . distinct Until Changed Ċ import Ġkotlinx . coroutines . flow . map Ċ import Ġkotlinx . coroutines . launch Ċ import Ġtim ber . log . Tim ber Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Singleton Ċ class ĠD cc Wallet Info Repository Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġd cc Wallet Info Dao : ĠD cc Wallet Info Dao , ĊĠĠĠ Ġ@ App Scope Ġprivate Ġval Ġapp Scope : ĠCor outine Scope Ċ ) Ġ{ ĊĠĠĠ Ġval Ġperson Wallet s : ĠFlow < Set < Person Wallet Info >> Ġ= Ġd cc Wallet Info Dao . getAll () ĊĠĠĠĠĠĠĠ Ġ. distinct Until Changed () ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġperson Wallet s Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperson Wallet s . map Ġ{ Ġperson Wallet Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPerson Wallet Info ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperson Wallet . group Key , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġperson Wallet . dcc Wallet Info ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. toSet () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġsave ( ĊĠĠĠĠĠĠĠ Ġperson Identifier : ĠCertificate Person Identifier , ĊĠĠĠĠĠĠĠ Ġd cc Wallet Info : ĠD cc Wallet Info ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġd cc Wallet Info Dao . insert ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠD cc Wallet Info Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup Key Ġ= Ġperson Identifier . grouping Key , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġd cc Wallet Info Ġ= Ġd cc Wallet Info ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġdelete ( person Ids : ĠSet < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġd cc Wallet Info Dao . delete By ( person Ids ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear () Ġ= Ġapp Scope . launch Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . d (" Delete Ġall ĠD cc Wallet Info .") ĊĠĠĠĠĠĠĠ Ġd cc Wallet Info Dao . delete All () ĊĠĠĠ Ġ} Ċ } Ċ