diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml
index 7e68305..b5bd1c1 100644
--- a/common/src/main/res/values/strings.xml
+++ b/common/src/main/res/values/strings.xml
@@ -2764,7 +2764,7 @@
Pezkuwi
Trust Score
- Apply & Actions
+ Apply & Actions (KYC)
Use our Telegram MiniApp for Digital Kurdistan citizenship services.\n\nTo earn PEZ rewards, you must hold a Welatî ticket and stake at least 10 HEZ.\n\nNon-citizens can only benefit from HEZ rewards.
Start Tracking
Score tracking started!
diff --git a/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/balance/list/BalanceListFragment.kt b/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/balance/list/BalanceListFragment.kt
index e412963..c9d57b4 100644
--- a/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/balance/list/BalanceListFragment.kt
+++ b/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/balance/list/BalanceListFragment.kt
@@ -120,10 +120,19 @@ class BalanceListFragment :
.inject(this)
}
+ override fun onResume() {
+ super.onResume()
+ viewModel.refreshDashboard()
+ }
+
override fun subscribe(viewModel: BalanceListViewModel) {
setupBuySellSelectorMixin(viewModel.buySellSelectorMixin)
observeBrowserEvents(viewModel)
+ childFragmentManager.setFragmentResultListener("citizenship_dismissed", viewLifecycleOwner) { _, _ ->
+ viewModel.refreshDashboard()
+ }
+
viewModel.pezkuwiDashboardFlow.observe { model ->
if (model != null) {
pezkuwiDashboardAdapter.setModel(model)
diff --git a/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/balance/list/BalanceListViewModel.kt b/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/balance/list/BalanceListViewModel.kt
index 43d54f2..571568e 100644
--- a/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/balance/list/BalanceListViewModel.kt
+++ b/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/balance/list/BalanceListViewModel.kt
@@ -73,6 +73,7 @@ import io.novafoundation.nova.runtime.multiNetwork.chain.model.Chain
import io.novasama.substrate_sdk_android.runtime.extrinsic.call
import java.text.NumberFormat
import kotlinx.coroutines.async
+import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.debounce
import kotlinx.coroutines.flow.distinctUntilChanged
@@ -135,6 +136,8 @@ class BalanceListViewModel(
private val _trackingLoading = MutableLiveData(false)
val trackingLoading: LiveData = _trackingLoading
+ private val dashboardRefreshSignal = MutableStateFlow(0)
+
val bannersMixin = promotionBannersMixinFactory.create(bannerSourceFactory.assetsSource(), viewModelScope)
private val selectedCurrency = currencyInteractor.observeSelectCurrency()
@@ -245,6 +248,7 @@ class BalanceListViewModel(
.shareInBackground()
val pezkuwiDashboardFlow = selectedMetaAccount
+ .combine(dashboardRefreshSignal) { account, _ -> account }
.mapLatest { metaAccount ->
pezkuwiDashboardInteractor.getDashboard(metaAccount)
.map { data ->
@@ -291,11 +295,15 @@ class BalanceListViewModel(
fun fullSync() {
viewModelScope.launch {
syncWith(fullSyncActions, selectedMetaAccount.first())
-
+ refreshDashboard()
_hideRefreshEvent.value = Event(Unit)
}
}
+ fun refreshDashboard() {
+ dashboardRefreshSignal.value++
+ }
+
fun assetClicked(asset: Chain.Asset) {
val payload = AssetPayload(
chainId = asset.chainId,
@@ -455,7 +463,7 @@ class BalanceListViewModel(
}
result.getOrThrow()
_showTrackingSuccessEvent.postValue(Event(Unit))
- fullSync()
+ refreshDashboard()
} catch (e: Exception) {
showError(e.message ?: "Score tracking failed")
} finally {
diff --git a/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/citizenship/CitizenshipBottomSheet.kt b/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/citizenship/CitizenshipBottomSheet.kt
index 646b0a7..1f7472b 100644
--- a/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/citizenship/CitizenshipBottomSheet.kt
+++ b/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/citizenship/CitizenshipBottomSheet.kt
@@ -1,5 +1,6 @@
package io.novafoundation.nova.feature_assets.presentation.citizenship
+import android.content.DialogInterface
import android.content.Intent
import android.content.res.ColorStateList
import android.graphics.Color
@@ -34,6 +35,11 @@ class CitizenshipBottomSheet : BaseBottomSheetFragment(
requireContext(),