forked from shihaam/thijooree
auto and lazy load cards to dashbaord
This commit is contained in:
@@ -21,7 +21,6 @@ import sh.sar.basedbank.api.bml.BmlForeignLimit
|
|||||||
import sh.sar.basedbank.api.models.BankAccount
|
import sh.sar.basedbank.api.models.BankAccount
|
||||||
import sh.sar.basedbank.api.mib.MibCard
|
import sh.sar.basedbank.api.mib.MibCard
|
||||||
import sh.sar.basedbank.api.mib.MibFinanceDeal
|
import sh.sar.basedbank.api.mib.MibFinanceDeal
|
||||||
import sh.sar.basedbank.util.CardsCache
|
|
||||||
import kotlin.math.abs
|
import kotlin.math.abs
|
||||||
import sh.sar.basedbank.databinding.FragmentDashboardBinding
|
import sh.sar.basedbank.databinding.FragmentDashboardBinding
|
||||||
import sh.sar.basedbank.databinding.ItemForeignLimitBinding
|
import sh.sar.basedbank.databinding.ItemForeignLimitBinding
|
||||||
@@ -58,12 +57,6 @@ class DashboardFragment : Fragment() {
|
|||||||
binding.rvCards.adapter = cardAdapter
|
binding.rvCards.adapter = cardAdapter
|
||||||
LinearSnapHelper().attachToRecyclerView(binding.rvCards)
|
LinearSnapHelper().attachToRecyclerView(binding.rvCards)
|
||||||
|
|
||||||
val cached = CardsCache.load(requireContext())
|
|
||||||
if (cached.isNotEmpty()) {
|
|
||||||
cardAdapter.update(cached)
|
|
||||||
binding.sectionCards.visibility = View.VISIBLE
|
|
||||||
}
|
|
||||||
|
|
||||||
viewModel.mibCards.observe(viewLifecycleOwner) { cards ->
|
viewModel.mibCards.observe(viewLifecycleOwner) { cards ->
|
||||||
if (cards.isNullOrEmpty()) return@observe
|
if (cards.isNullOrEmpty()) return@observe
|
||||||
cardAdapter.update(cards)
|
cardAdapter.update(cards)
|
||||||
|
|||||||
@@ -178,6 +178,8 @@ class HomeActivity : AppCompatActivity() {
|
|||||||
byLoginId.forEach { (loginId, accs) -> AccountCache.saveFahipay(this, loginId, accs) }
|
byLoginId.forEach { (loginId, accs) -> AccountCache.saveFahipay(this, loginId, accs) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val cachedCards = CardsCache.load(this)
|
||||||
|
if (cachedCards.isNotEmpty()) viewModel.mibCards.value = cachedCards
|
||||||
val cachedFinancing = FinancingCache.load(this)
|
val cachedFinancing = FinancingCache.load(this)
|
||||||
if (cachedFinancing.isNotEmpty()) viewModel.financing.value = cachedFinancing
|
if (cachedFinancing.isNotEmpty()) viewModel.financing.value = cachedFinancing
|
||||||
val cachedBmlLoans = FinancingCache.loadBmlLoans(this)
|
val cachedBmlLoans = FinancingCache.loadBmlLoans(this)
|
||||||
@@ -191,6 +193,7 @@ class HomeActivity : AppCompatActivity() {
|
|||||||
}
|
}
|
||||||
for ((_, session) in app.bmlSessions) refreshBmlLimits(session)
|
for ((_, session) in app.bmlSessions) refreshBmlLimits(session)
|
||||||
refreshBmlLoanDetails()
|
refreshBmlLoanDetails()
|
||||||
|
triggerRefreshCards()
|
||||||
} else {
|
} else {
|
||||||
// Came from lock screen — show caches immediately, refresh everything in background
|
// Came from lock screen — show caches immediately, refresh everything in background
|
||||||
val store = CredentialStore(this)
|
val store = CredentialStore(this)
|
||||||
@@ -199,6 +202,8 @@ class HomeActivity : AppCompatActivity() {
|
|||||||
val cachedFahipay = AccountCache.loadFahipay(this, store.getFahipayLoginIds())
|
val cachedFahipay = AccountCache.loadFahipay(this, store.getFahipayLoginIds())
|
||||||
val merged = cachedMib + cachedBml + cachedFahipay
|
val merged = cachedMib + cachedBml + cachedFahipay
|
||||||
if (merged.isNotEmpty()) viewModel.accounts.value = merged
|
if (merged.isNotEmpty()) viewModel.accounts.value = merged
|
||||||
|
val cachedCards = CardsCache.load(this)
|
||||||
|
if (cachedCards.isNotEmpty()) viewModel.mibCards.value = cachedCards
|
||||||
val cachedFinancing = FinancingCache.load(this)
|
val cachedFinancing = FinancingCache.load(this)
|
||||||
if (cachedFinancing.isNotEmpty()) viewModel.financing.value = cachedFinancing
|
if (cachedFinancing.isNotEmpty()) viewModel.financing.value = cachedFinancing
|
||||||
val cachedBmlLoans = FinancingCache.loadBmlLoans(this)
|
val cachedBmlLoans = FinancingCache.loadBmlLoans(this)
|
||||||
@@ -709,6 +714,10 @@ fun applyNavLabelVisibility() {
|
|||||||
refreshFinancing(loginId, session, profiles.filterVisibleProfiles(loginId))
|
refreshFinancing(loginId, session, profiles.filterVisibleProfiles(loginId))
|
||||||
}
|
}
|
||||||
refreshBmlLoanDetails()
|
refreshBmlLoanDetails()
|
||||||
|
for ((loginId, session) in app.mibSessions) {
|
||||||
|
val profiles = app.mibProfilesMap[loginId] ?: emptyList()
|
||||||
|
refreshMibCards(loginId, session, profiles)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user