add support for fahipay contacts

This commit is contained in:
2026-05-16 22:26:16 +05:00
parent fd531066cd
commit 93405aade2
7 changed files with 177 additions and 19 deletions
@@ -131,6 +131,66 @@ object ContactsCache {
} catch (e: Exception) { emptyList() }
}
fun saveFahipay(context: Context, contacts: List<MibBeneficiary>, categories: List<MibBeneficiaryCategory>) {
val prefs = context.getSharedPreferences(PREFS, Context.MODE_PRIVATE).edit()
val arr = JSONArray()
for (c in contacts) arr.put(JSONObject().apply {
put("benefNo", c.benefNo)
put("benefNickName", c.benefNickName)
put("benefAccount", c.benefAccount)
put("bankColor", c.bankColor)
put("benefBankName", c.benefBankName)
put("benefCategoryId", c.benefCategoryId)
})
prefs.putString("fahipay_contacts", CacheEncryption.encrypt(arr.toString()))
val catArr = JSONArray()
for (cat in categories) catArr.put(JSONObject().apply {
put("id", cat.id)
put("categoryName", cat.categoryName)
put("numBenef", cat.numBenef)
})
prefs.putString("fahipay_categories", CacheEncryption.encrypt(catArr.toString()))
prefs.apply()
}
fun loadFahipay(context: Context): List<MibBeneficiary> {
val raw = context.getSharedPreferences(PREFS, Context.MODE_PRIVATE)
.getString("fahipay_contacts", null) ?: return emptyList()
return try {
val arr = JSONArray(CacheEncryption.decrypt(raw))
(0 until arr.length()).map { i ->
val o = arr.getJSONObject(i)
MibBeneficiary(
benefNo = o.optString("benefNo"),
benefName = "",
benefNickName = o.optString("benefNickName"),
benefAccount = o.optString("benefAccount"),
benefType = "FAHIPAY",
bankColor = o.optString("bankColor", "#FF6B00"),
benefBankName = o.optString("benefBankName"),
bankCode = "",
benefStatus = "",
transferCyDesc = "",
customerImgHash = null,
benefCategoryId = o.optString("benefCategoryId"),
profileId = ""
)
}
} catch (_: Exception) { emptyList() }
}
fun loadFahipayCategories(context: Context): List<MibBeneficiaryCategory> {
val raw = context.getSharedPreferences(PREFS, Context.MODE_PRIVATE)
.getString("fahipay_categories", null) ?: return emptyList()
return try {
val arr = JSONArray(CacheEncryption.decrypt(raw))
(0 until arr.length()).map { i ->
val o = arr.getJSONObject(i)
MibBeneficiaryCategory(o.optString("id"), o.optString("categoryName"), o.optInt("numBenef"))
}
} catch (_: Exception) { emptyList() }
}
fun loadCategories(context: Context): List<MibBeneficiaryCategory> {
val raw = context.getSharedPreferences(PREFS, Context.MODE_PRIVATE)
.getString(KEY_CATEGORIES, null) ?: return emptyList()