From e8469a8888d396edaa2caf711821e2bc5d9378b5 Mon Sep 17 00:00:00 2001 From: Shihaam Abdul Rahman Date: Fri, 15 May 2026 12:00:59 +0500 Subject: [PATCH] add clear cache --- .../sar/basedbank/api/mib/TransactionCache.kt | 5 +++++ .../sar/basedbank/ui/home/SettingsFragment.kt | 21 +++++++++++++++++++ .../sh/sar/basedbank/util/AccountCache.kt | 4 ++++ .../sar/basedbank/util/ContactImageCache.kt | 5 +++++ .../sh/sar/basedbank/util/ContactsCache.kt | 4 ++++ .../sh/sar/basedbank/util/FinancingCache.kt | 4 ++++ .../sar/basedbank/util/ForeignLimitsCache.kt | 4 ++++ .../sh/sar/basedbank/util/RecentsCache.kt | 4 ++++ app/src/main/res/layout/fragment_settings.xml | 15 +++++++++++++ app/src/main/res/values-b+dv/strings.xml | 3 +++ app/src/main/res/values/strings.xml | 3 +++ 11 files changed, 72 insertions(+) diff --git a/app/src/main/java/sh/sar/basedbank/api/mib/TransactionCache.kt b/app/src/main/java/sh/sar/basedbank/api/mib/TransactionCache.kt index 81dc947..7b5a1b3 100644 --- a/app/src/main/java/sh/sar/basedbank/api/mib/TransactionCache.kt +++ b/app/src/main/java/sh/sar/basedbank/api/mib/TransactionCache.kt @@ -26,6 +26,11 @@ object TransactionCache { } catch (_: Exception) {} } + fun clearAll(context: Context) { + context.cacheDir.listFiles { f -> f.name.startsWith("tx_") && f.name.endsWith(".json") } + ?.forEach { it.delete() } + } + fun load(context: Context, key: String): List = try { val arr = JSONArray(File(context.cacheDir, "tx_$key.json").readText()) (0 until arr.length()).map { i -> diff --git a/app/src/main/java/sh/sar/basedbank/ui/home/SettingsFragment.kt b/app/src/main/java/sh/sar/basedbank/ui/home/SettingsFragment.kt index 73dcae0..31534d7 100644 --- a/app/src/main/java/sh/sar/basedbank/ui/home/SettingsFragment.kt +++ b/app/src/main/java/sh/sar/basedbank/ui/home/SettingsFragment.kt @@ -5,14 +5,22 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.Toast import androidx.appcompat.app.AppCompatDelegate import androidx.appcompat.app.AppCompatDelegate.setApplicationLocales import androidx.biometric.BiometricManager import androidx.core.os.LocaleListCompat import androidx.fragment.app.Fragment import sh.sar.basedbank.R +import sh.sar.basedbank.api.mib.TransactionCache import sh.sar.basedbank.databinding.FragmentSettingsBinding import sh.sar.basedbank.ui.onboarding.SecuritySetupFragment +import sh.sar.basedbank.util.AccountCache +import sh.sar.basedbank.util.ContactImageCache +import sh.sar.basedbank.util.ContactsCache +import sh.sar.basedbank.util.FinancingCache +import sh.sar.basedbank.util.ForeignLimitsCache +import sh.sar.basedbank.util.RecentsCache class SettingsFragment : Fragment() { @@ -82,6 +90,19 @@ class SettingsFragment : Fragment() { (activity as? HomeActivity)?.resetAutolockTimer() } + // Clear cache + binding.btnClearCache.setOnClickListener { + val ctx = requireContext() + AccountCache.clear(ctx) + ContactsCache.clear(ctx) + FinancingCache.clear(ctx) + ForeignLimitsCache.clear(ctx) + RecentsCache.clear(ctx) + TransactionCache.clearAll(ctx) + ContactImageCache.clearAll(ctx) + Toast.makeText(ctx, R.string.settings_cache_cleared, Toast.LENGTH_SHORT).show() + } + // Change lock binding.btnChangeLock.setOnClickListener { (requireActivity() as HomeActivity).showWithBackStack( diff --git a/app/src/main/java/sh/sar/basedbank/util/AccountCache.kt b/app/src/main/java/sh/sar/basedbank/util/AccountCache.kt index fdbd050..59726c9 100644 --- a/app/src/main/java/sh/sar/basedbank/util/AccountCache.kt +++ b/app/src/main/java/sh/sar/basedbank/util/AccountCache.kt @@ -85,6 +85,10 @@ object AccountCache { } catch (e: Exception) { emptyList() } } + fun clear(context: Context) { + context.getSharedPreferences(PREFS, Context.MODE_PRIVATE).edit().clear().apply() + } + fun load(context: Context): List { val json = context.getSharedPreferences(PREFS, Context.MODE_PRIVATE) .getString(KEY_MIB, null) ?: return emptyList() diff --git a/app/src/main/java/sh/sar/basedbank/util/ContactImageCache.kt b/app/src/main/java/sh/sar/basedbank/util/ContactImageCache.kt index f96019c..29ab474 100644 --- a/app/src/main/java/sh/sar/basedbank/util/ContactImageCache.kt +++ b/app/src/main/java/sh/sar/basedbank/util/ContactImageCache.kt @@ -10,6 +10,11 @@ object ContactImageCache { private fun file(context: Context, hash: String) = File(context.cacheDir, "cimg_${hash.replace(Regex("[^A-Za-z0-9]"), "_")}.png") + fun clearAll(context: Context) { + context.cacheDir.listFiles { f -> f.name.startsWith("cimg_") && f.name.endsWith(".png") } + ?.forEach { it.delete() } + } + fun save(context: Context, hash: String, bitmap: Bitmap) { try { file(context, hash).outputStream().use { diff --git a/app/src/main/java/sh/sar/basedbank/util/ContactsCache.kt b/app/src/main/java/sh/sar/basedbank/util/ContactsCache.kt index a1531ce..8dfa7ce 100644 --- a/app/src/main/java/sh/sar/basedbank/util/ContactsCache.kt +++ b/app/src/main/java/sh/sar/basedbank/util/ContactsCache.kt @@ -51,6 +51,10 @@ object ContactsCache { prefs.apply() } + fun clear(context: Context) { + context.getSharedPreferences(PREFS, Context.MODE_PRIVATE).edit().clear().apply() + } + fun loadContacts(context: Context): List { val json = context.getSharedPreferences(PREFS, Context.MODE_PRIVATE) .getString(KEY_CONTACTS, null) ?: return emptyList() diff --git a/app/src/main/java/sh/sar/basedbank/util/FinancingCache.kt b/app/src/main/java/sh/sar/basedbank/util/FinancingCache.kt index d9920fe..162a11c 100644 --- a/app/src/main/java/sh/sar/basedbank/util/FinancingCache.kt +++ b/app/src/main/java/sh/sar/basedbank/util/FinancingCache.kt @@ -34,6 +34,10 @@ object FinancingCache { .edit().putString(KEY_MIB, arr.toString()).apply() } + fun clear(context: Context) { + context.getSharedPreferences(PREFS, Context.MODE_PRIVATE).edit().clear().apply() + } + fun load(context: Context): List { val json = context.getSharedPreferences(PREFS, Context.MODE_PRIVATE) .getString(KEY_MIB, null) ?: return emptyList() diff --git a/app/src/main/java/sh/sar/basedbank/util/ForeignLimitsCache.kt b/app/src/main/java/sh/sar/basedbank/util/ForeignLimitsCache.kt index 17cd91e..7aca12e 100644 --- a/app/src/main/java/sh/sar/basedbank/util/ForeignLimitsCache.kt +++ b/app/src/main/java/sh/sar/basedbank/util/ForeignLimitsCache.kt @@ -42,6 +42,10 @@ object ForeignLimitsCache { .edit().putString(KEY, arr.toString()).apply() } + fun clear(context: Context) { + context.getSharedPreferences(PREFS, Context.MODE_PRIVATE).edit().clear().apply() + } + fun load(context: Context): List { val json = context.getSharedPreferences(PREFS, Context.MODE_PRIVATE) .getString(KEY, null) ?: return emptyList() diff --git a/app/src/main/java/sh/sar/basedbank/util/RecentsCache.kt b/app/src/main/java/sh/sar/basedbank/util/RecentsCache.kt index 172cc4d..64c6d71 100644 --- a/app/src/main/java/sh/sar/basedbank/util/RecentsCache.kt +++ b/app/src/main/java/sh/sar/basedbank/util/RecentsCache.kt @@ -57,6 +57,10 @@ object RecentsCache { .edit().putString(KEY, arr.toString()).apply() } + fun clear(context: Context) { + context.getSharedPreferences(PREFS, Context.MODE_PRIVATE).edit().clear().apply() + } + fun load(context: Context): List { val json = context.getSharedPreferences(PREFS, Context.MODE_PRIVATE) .getString(KEY, null) ?: return emptyList() diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index f9ab945..177ee4e 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -158,6 +158,21 @@ + + + + ބަސް English ދިވެހި + ކޭޝް + ކޭޝް ސާފުކުރޭ + ކޭޝް ސާފުކުރެވިއްޖެ އެކައުންޓްތައް diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2e3a45d..6d5470a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -107,6 +107,9 @@ Language English ދިވެހި + Cache + Clear Cache + Cache cleared This is your source account