diff --git a/android/navi-pay/src/main/kotlin/com/navi/pay/onboarding/account/common/repository/AccountsRepository.kt b/android/navi-pay/src/main/kotlin/com/navi/pay/onboarding/account/common/repository/AccountsRepository.kt index a3b48d5bd1..3dce072c3e 100644 --- a/android/navi-pay/src/main/kotlin/com/navi/pay/onboarding/account/common/repository/AccountsRepository.kt +++ b/android/navi-pay/src/main/kotlin/com/navi/pay/onboarding/account/common/repository/AccountsRepository.kt @@ -29,6 +29,7 @@ import com.navi.pay.onboarding.account.linked.model.network.CheckBalanceResponse import com.navi.pay.onboarding.account.linked.model.network.LinkedAccountsRequest import com.navi.pay.onboarding.account.linked.model.network.LinkedAccountsResponse import javax.inject.Inject +import kotlinx.coroutines.flow.distinctUntilChanged class AccountsRepository @Inject @@ -81,7 +82,14 @@ constructor( accountDao.insertAll(accountEntities = accountEntities) fun getAllAccountByStatusAsFlow(status: AccountStatus) = - accountDao.getAllAccountByStatusAsFlow(status = status) + accountDao.getAllAccountByStatusAsFlow(status = status).distinctUntilChanged { old, new -> + if (old.size != new.size) { + return@distinctUntilChanged false + } + val newAccountsSet = new.map { it.copy(id = 0) }.toSet() + + old.all { oldAccount -> newAccountsSet.contains(oldAccount.copy(id = 0)) } + } suspend fun deleteAllAccounts() = accountDao.deleteAll()