diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml
index df93e79..bb61a5a 100644
--- a/common/src/main/res/values/strings.xml
+++ b/common/src/main/res/values/strings.xml
@@ -2766,4 +2766,5 @@
Trust Score
Apply & Actions
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.
+ Hejmara Kurd Le Cihane
diff --git a/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/data/model/PezkuwiDashboardData.kt b/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/data/model/PezkuwiDashboardData.kt
index ca64737..8718e05 100644
--- a/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/data/model/PezkuwiDashboardData.kt
+++ b/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/data/model/PezkuwiDashboardData.kt
@@ -4,5 +4,6 @@ import java.math.BigInteger
data class PezkuwiDashboardData(
val roles: List,
- val trustScore: BigInteger
+ val trustScore: BigInteger,
+ val welatiCount: Int
)
diff --git a/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/data/repository/PezkuwiDashboardRepository.kt b/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/data/repository/PezkuwiDashboardRepository.kt
index 8eabef3..919317e 100644
--- a/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/data/repository/PezkuwiDashboardRepository.kt
+++ b/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/data/repository/PezkuwiDashboardRepository.kt
@@ -9,24 +9,41 @@ import io.novafoundation.nova.runtime.storage.source.StorageDataSource
import io.novasama.substrate_sdk_android.runtime.AccountId
import io.novasama.substrate_sdk_android.runtime.metadata.moduleOrNull
import io.novasama.substrate_sdk_android.runtime.metadata.storage
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.withContext
+import org.json.JSONObject
import java.math.BigInteger
+import java.net.URL
class PezkuwiDashboardRepository(
private val remoteStorageDataSource: StorageDataSource
) {
+ companion object {
+ private const val WELATI_COUNTER_URL = "https://subquery.pezkuwichain.io/kurds"
+ }
+
suspend fun getDashboard(accountId: AccountId): PezkuwiDashboardData {
val chainId = ChainGeneses.PEZKUWI_PEOPLE
val roles = queryRoles(chainId, accountId)
val trustScore = queryTrustScore(chainId, accountId)
+ val welatiCount = fetchWelatiCount()
return PezkuwiDashboardData(
roles = roles.ifEmpty { listOf("Non-Citizen") },
- trustScore = trustScore
+ trustScore = trustScore,
+ welatiCount = welatiCount
)
}
+ private suspend fun fetchWelatiCount(): Int = withContext(Dispatchers.IO) {
+ runCatching {
+ val response = URL(WELATI_COUNTER_URL).readText()
+ JSONObject(response).getInt("count")
+ }.getOrDefault(0)
+ }
+
private suspend fun queryRoles(chainId: String, accountId: AccountId): List = runCatching {
remoteStorageDataSource.query(chainId) {
val tikiModule = runtime.metadata.moduleOrNull("Tiki") ?: return@query emptyList()
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 6343845..b28055b 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
@@ -64,6 +64,7 @@ import io.novafoundation.nova.feature_wallet_api.presentation.model.FractionPart
import io.novafoundation.nova.feature_wallet_connect_api.domain.sessions.WalletConnectSessionsUseCase
import io.novafoundation.nova.feature_wallet_connect_api.presentation.mapNumberOfActiveSessionsToUi
import io.novafoundation.nova.runtime.multiNetwork.chain.model.Chain
+import java.text.NumberFormat
import kotlinx.coroutines.async
import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.debounce
@@ -228,7 +229,8 @@ class BalanceListViewModel(
.map { data ->
PezkuwiDashboardModel(
roles = data.roles,
- trustScore = data.trustScore.toString()
+ trustScore = data.trustScore.toString(),
+ welatiCount = NumberFormat.getIntegerInstance().format(data.welatiCount)
)
}
.getOrNull()
diff --git a/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/balance/list/model/PezkuwiDashboardModel.kt b/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/balance/list/model/PezkuwiDashboardModel.kt
index 979426e..a312fb3 100644
--- a/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/balance/list/model/PezkuwiDashboardModel.kt
+++ b/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/balance/list/model/PezkuwiDashboardModel.kt
@@ -2,5 +2,6 @@ package io.novafoundation.nova.feature_assets.presentation.balance.list.model
data class PezkuwiDashboardModel(
val roles: List,
- val trustScore: String
+ val trustScore: String,
+ val welatiCount: String
)
diff --git a/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/balance/list/view/PezkuwiDashboardAdapter.kt b/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/balance/list/view/PezkuwiDashboardAdapter.kt
index 79bd358..512f04f 100644
--- a/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/balance/list/view/PezkuwiDashboardAdapter.kt
+++ b/feature-assets/src/main/java/io/novafoundation/nova/feature_assets/presentation/balance/list/view/PezkuwiDashboardAdapter.kt
@@ -58,6 +58,7 @@ class PezkuwiDashboardHolder(
fun bind(model: PezkuwiDashboardModel) {
bindRoles(model.roles)
binder.pezkuwiDashboardTrustValue.text = model.trustScore
+ binder.pezkuwiDashboardWelatiCount.text = model.welatiCount
}
private fun bindRoles(roles: List) {
diff --git a/feature-assets/src/main/res/layout/item_pezkuwi_dashboard.xml b/feature-assets/src/main/res/layout/item_pezkuwi_dashboard.xml
index 80966e0..7ac92be 100644
--- a/feature-assets/src/main/res/layout/item_pezkuwi_dashboard.xml
+++ b/feature-assets/src/main/res/layout/item_pezkuwi_dashboard.xml
@@ -72,15 +72,28 @@
-
+
+
+
+
+
+