forked from shihaam/thijooree
implement viewing contacts
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
package sh.sar.basedbank.util
|
||||
|
||||
import android.content.Context
|
||||
import org.json.JSONArray
|
||||
import org.json.JSONObject
|
||||
import sh.sar.basedbank.api.mib.MibBeneficiary
|
||||
import sh.sar.basedbank.api.mib.MibBeneficiaryCategory
|
||||
|
||||
object ContactsCache {
|
||||
|
||||
private const val PREFS = "contacts_cache"
|
||||
private const val KEY_CONTACTS = "mib_contacts"
|
||||
private const val KEY_CATEGORIES = "mib_categories"
|
||||
|
||||
fun save(
|
||||
context: Context,
|
||||
contacts: List<MibBeneficiary>,
|
||||
categories: List<MibBeneficiaryCategory>
|
||||
) {
|
||||
val prefs = context.getSharedPreferences(PREFS, Context.MODE_PRIVATE).edit()
|
||||
|
||||
val contactsArr = JSONArray()
|
||||
for (c in contacts) {
|
||||
contactsArr.put(JSONObject().apply {
|
||||
put("benefNo", c.benefNo)
|
||||
put("benefName", c.benefName)
|
||||
put("benefNickName", c.benefNickName)
|
||||
put("benefAccount", c.benefAccount)
|
||||
put("benefType", c.benefType)
|
||||
put("bankColor", c.bankColor)
|
||||
put("benefBankName", c.benefBankName)
|
||||
put("bankCode", c.bankCode)
|
||||
put("benefStatus", c.benefStatus)
|
||||
put("transferCyDesc", c.transferCyDesc)
|
||||
put("customerImgHash", c.customerImgHash ?: "")
|
||||
put("benefCategoryId", c.benefCategoryId)
|
||||
})
|
||||
}
|
||||
prefs.putString(KEY_CONTACTS, contactsArr.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(KEY_CATEGORIES, catArr.toString())
|
||||
prefs.apply()
|
||||
}
|
||||
|
||||
fun loadContacts(context: Context): List<MibBeneficiary> {
|
||||
val json = context.getSharedPreferences(PREFS, Context.MODE_PRIVATE)
|
||||
.getString(KEY_CONTACTS, null) ?: return emptyList()
|
||||
return try {
|
||||
val arr = JSONArray(json)
|
||||
(0 until arr.length()).map { i ->
|
||||
val o = arr.getJSONObject(i)
|
||||
MibBeneficiary(
|
||||
benefNo = o.optString("benefNo"),
|
||||
benefName = o.optString("benefName"),
|
||||
benefNickName = o.optString("benefNickName"),
|
||||
benefAccount = o.optString("benefAccount"),
|
||||
benefType = o.optString("benefType"),
|
||||
bankColor = o.optString("bankColor", "#888888"),
|
||||
benefBankName = o.optString("benefBankName"),
|
||||
bankCode = o.optString("bankCode"),
|
||||
benefStatus = o.optString("benefStatus"),
|
||||
transferCyDesc = o.optString("transferCyDesc", "MVR"),
|
||||
customerImgHash = o.optString("customerImgHash").takeIf { it.isNotBlank() },
|
||||
benefCategoryId = o.optString("benefCategoryId", "0")
|
||||
)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
emptyList()
|
||||
}
|
||||
}
|
||||
|
||||
fun loadCategories(context: Context): List<MibBeneficiaryCategory> {
|
||||
val json = context.getSharedPreferences(PREFS, Context.MODE_PRIVATE)
|
||||
.getString(KEY_CATEGORIES, null) ?: return emptyList()
|
||||
return try {
|
||||
val arr = JSONArray(json)
|
||||
(0 until arr.length()).map { i ->
|
||||
val o = arr.getJSONObject(i)
|
||||
MibBeneficiaryCategory(
|
||||
id = o.optString("id"),
|
||||
categoryName = o.optString("categoryName"),
|
||||
numBenef = o.optInt("numBenef", 0)
|
||||
)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
emptyList()
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user