Files
basedbank/app/src/main/java/sh/sar/basedbank/util/CardsCache.kt
Shihaam Abdul Rahman f208ee6ad1
All checks were successful
Auto Tag on Version Change / check-version (push) Successful in 5s
optimze mib cards loading
2026-05-22 03:55:59 +05:00

58 lines
2.2 KiB
Kotlin

package sh.sar.basedbank.util
import android.content.Context
import org.json.JSONArray
import org.json.JSONObject
import sh.sar.basedbank.api.mib.MibCard
object CardsCache {
private const val PREFS = "cards_cache"
private const val KEY_MIB_CARDS = "mib_cards"
fun save(context: Context, cards: List<MibCard>) {
val arr = JSONArray()
for (c in cards) {
arr.put(JSONObject().apply {
put("cardId", c.cardId)
put("maskedCardNumber", c.maskedCardNumber)
put("cardStatus", c.cardStatus)
put("cardType", c.cardType)
put("cardTypeDesc", c.cardTypeDesc)
put("customerId", c.customerId)
put("phoneNumber", c.phoneNumber)
put("cardHolderName", c.cardHolderName)
put("loginTag", c.loginTag)
})
}
context.getSharedPreferences(PREFS, Context.MODE_PRIVATE)
.edit().putString(KEY_MIB_CARDS, CacheEncryption.encrypt(arr.toString())).apply()
}
fun load(context: Context): List<MibCard> {
val raw = context.getSharedPreferences(PREFS, Context.MODE_PRIVATE)
.getString(KEY_MIB_CARDS, null) ?: return emptyList()
return try {
val arr = JSONArray(CacheEncryption.decrypt(raw))
(0 until arr.length()).map { i ->
val o = arr.getJSONObject(i)
MibCard(
cardId = o.optString("cardId"),
maskedCardNumber = o.optString("maskedCardNumber"),
cardStatus = o.optString("cardStatus"),
cardType = o.optString("cardType"),
cardTypeDesc = o.optString("cardTypeDesc"),
customerId = o.optString("customerId"),
phoneNumber = o.optString("phoneNumber"),
cardHolderName = o.optString("cardHolderName"),
loginTag = o.optString("loginTag")
)
}
} catch (_: Exception) { emptyList() }
}
fun clear(context: Context) {
context.getSharedPreferences(PREFS, Context.MODE_PRIVATE).edit().clear().apply()
}
}