From a37454de002425be719ee4b8d94af9f59648f6b4 Mon Sep 17 00:00:00 2001 From: Shihaam Abdul Rahman Date: Wed, 27 May 2026 23:37:34 +0500 Subject: [PATCH] improve clearing cache and logout (it was showing logged-out account info on dashboard --- .../sar/basedbank/ui/home/SettingsLoginsFragment.kt | 6 +++++- .../basedbank/ui/home/SettingsStorageFragment.kt | 13 ++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/sh/sar/basedbank/ui/home/SettingsLoginsFragment.kt b/app/src/main/java/sh/sar/basedbank/ui/home/SettingsLoginsFragment.kt index 7d98eb7..8e7ea6f 100644 --- a/app/src/main/java/sh/sar/basedbank/ui/home/SettingsLoginsFragment.kt +++ b/app/src/main/java/sh/sar/basedbank/ui/home/SettingsLoginsFragment.kt @@ -22,6 +22,7 @@ import sh.sar.basedbank.api.mib.TransactionCache import sh.sar.basedbank.databinding.FragmentSettingsLoginsBinding import sh.sar.basedbank.ui.login.LoginActivity import sh.sar.basedbank.util.AccountCache +import sh.sar.basedbank.util.CardsCache import sh.sar.basedbank.util.ContactImageCache import sh.sar.basedbank.util.ContactsCache import sh.sar.basedbank.util.CredentialStore @@ -642,6 +643,7 @@ class SettingsLoginsFragment : Fragment() { app.mibLoginFlows.remove(loginId) app.mibAccounts = app.mibAccounts.filter { it.loginTag != "mib_$loginId" } app.accounts = app.accounts.filter { it.loginTag != "mib_$loginId" } + viewModel.financing.value = emptyList() clearAllCaches(ctx) (activity as HomeActivity).relogin() buildLoginsSection() @@ -658,6 +660,8 @@ class SettingsLoginsFragment : Fragment() { app.bmlProfilesMap.remove(loginId) app.bmlLoginFlows.remove(loginId) app.bmlAccounts = app.bmlAccounts.filter { it.loginTag != "bml_$loginId" } + viewModel.bmlLimits.value = emptyList() + viewModel.bmlLoanDetails.value = emptyMap() clearAllCaches(ctx) (activity as HomeActivity).relogin() buildLoginsSection() @@ -677,6 +681,6 @@ class SettingsLoginsFragment : Fragment() { private fun clearAllCaches(ctx: Context) { AccountCache.clear(ctx); ContactsCache.clear(ctx); FinancingCache.clear(ctx) ForeignLimitsCache.clear(ctx); RecentsCache.clear(ctx) - TransactionCache.clearAll(ctx); ContactImageCache.clearAll(ctx) + CardsCache.clear(ctx); TransactionCache.clearAll(ctx); ContactImageCache.clearAll(ctx) } } diff --git a/app/src/main/java/sh/sar/basedbank/ui/home/SettingsStorageFragment.kt b/app/src/main/java/sh/sar/basedbank/ui/home/SettingsStorageFragment.kt index c24b359..63ed30c 100644 --- a/app/src/main/java/sh/sar/basedbank/ui/home/SettingsStorageFragment.kt +++ b/app/src/main/java/sh/sar/basedbank/ui/home/SettingsStorageFragment.kt @@ -7,10 +7,12 @@ import android.view.View import android.view.ViewGroup import android.widget.Toast import androidx.fragment.app.Fragment +import androidx.fragment.app.activityViewModels import sh.sar.basedbank.R import sh.sar.basedbank.api.mib.TransactionCache import sh.sar.basedbank.databinding.FragmentSettingsStorageBinding import sh.sar.basedbank.util.AccountCache +import sh.sar.basedbank.util.CardsCache import sh.sar.basedbank.util.ContactImageCache import sh.sar.basedbank.util.ContactsCache import sh.sar.basedbank.util.FinancingCache @@ -21,6 +23,7 @@ class SettingsStorageFragment : Fragment() { private var _binding: FragmentSettingsStorageBinding? = null private val binding get() = _binding!! + private val viewModel: HomeViewModel by activityViewModels() override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { _binding = FragmentSettingsStorageBinding.inflate(inflater, container, false) @@ -32,6 +35,7 @@ class SettingsStorageFragment : Fragment() { val ctx = requireContext() clearAllCaches(ctx) Toast.makeText(ctx, R.string.settings_cache_cleared, Toast.LENGTH_SHORT).show() + (activity as? HomeActivity)?.triggerRefresh() } } @@ -48,6 +52,13 @@ class SettingsStorageFragment : Fragment() { private fun clearAllCaches(ctx: Context) { AccountCache.clear(ctx); ContactsCache.clear(ctx); FinancingCache.clear(ctx) ForeignLimitsCache.clear(ctx); RecentsCache.clear(ctx) - TransactionCache.clearAll(ctx); ContactImageCache.clearAll(ctx) + CardsCache.clear(ctx); TransactionCache.clearAll(ctx); ContactImageCache.clearAll(ctx) + viewModel.accounts.value = emptyList() + viewModel.mibCards.value = null + viewModel.financing.value = emptyList() + viewModel.bmlLoanDetails.value = emptyMap() + viewModel.bmlLimits.value = emptyList() + viewModel.contacts.value = emptyList() + viewModel.contactCategories.value = emptyList() } }