diff --git a/app/detekt-baseline.xml b/app/detekt-baseline.xml
index 477abb65d..c563921dd 100644
--- a/app/detekt-baseline.xml
+++ b/app/detekt-baseline.xml
@@ -66,7 +66,7 @@
LongMethod:PremiumBuyingScreen.kt$@OptIn(ExperimentalMaterial3Api::class) @Composable private fun PremiumBuyingScreen( state: PremiumBuyingContract.UiState, eventPublisher: (PremiumBuyingContract.UiEvent) -> Unit, screenCallbacks: PremiumBuyingContract.ScreenCallbacks, )
LongMethod:PremiumContactListScreen.kt$@OptIn(ExperimentalMaterial3Api::class, ExperimentalFoundationApi::class) @Composable private fun PremiumContactListScreen( state: PremiumContactListContract.UiState, eventPublisher: (PremiumContactListContract.UiEvent) -> Unit, snackbarHostState: SnackbarHostState, onClose: () -> Unit, )
LongMethod:PremiumContentBackupScreen.kt$@OptIn(ExperimentalMaterial3Api::class) @Composable fun PremiumContentBackupScreen( state: PremiumContentBackupContract.UiState, eventPublisher: (PremiumContentBackupContract.UiEvent) -> Unit, onClose: () -> Unit, )
- LongMethod:PremiumHomeScreen.kt$@OptIn(ExperimentalMaterial3Api::class) @Composable private fun PremiumHomeScreen( state: PremiumHomeContract.UiState, onClose: () -> Unit, onRenewSubscription: (primalName: String) -> Unit, onManagePremium: () -> Unit, onSupportPrimal: () -> Unit, eventPublisher: (PremiumHomeContract.UiEvent) -> Unit, )
+ LongMethod:PremiumHomeScreen.kt$@OptIn(ExperimentalMaterial3Api::class) @Composable private fun PremiumHomeScreen( state: PremiumHomeContract.UiState, onClose: () -> Unit, onRenewSubscription: (primalName: String) -> Unit, onManagePremium: () -> Unit, onSupportPrimal: () -> Unit, onLegendCardClick: (String) -> Unit, eventPublisher: (PremiumHomeContract.UiEvent) -> Unit, )
LongMethod:PremiumOrderHistoryScreen.kt$@Composable private fun SubscriptionHeader( modifier: Modifier, state: PremiumOrderHistoryContract.UiState, onExtendSubscription: (primalName: String) -> Unit, onCancelSubscription: () -> Unit, )
LongMethod:PremiumOrderHistoryScreen.kt$@OptIn(ExperimentalMaterial3Api::class, ExperimentalFoundationApi::class) @Composable private fun PremiumOrderHistoryScreen( state: PremiumOrderHistoryContract.UiState, eventPublisher: (PremiumOrderHistoryContract.UiEvent) -> Unit, onExtendSubscription: (primalName: String) -> Unit, onClose: () -> Unit, )
LongMethod:PremiumPurchaseStage.kt$@ExperimentalMaterial3Api @Composable fun PremiumPurchaseStage( state: PremiumBuyingContract.UiState, onBack: () -> Unit, onLearnMoreClick: () -> Unit, eventPublisher: (PremiumBuyingContract.UiEvent) -> Unit, )
diff --git a/app/src/main/kotlin/net/primal/android/navigation/PrimalAppNavigation.kt b/app/src/main/kotlin/net/primal/android/navigation/PrimalAppNavigation.kt
index eace55926..13371356c 100644
--- a/app/src/main/kotlin/net/primal/android/navigation/PrimalAppNavigation.kt
+++ b/app/src/main/kotlin/net/primal/android/navigation/PrimalAppNavigation.kt
@@ -1155,6 +1155,7 @@ private fun NavGraphBuilder.premiumHome(route: String, navController: NavControl
onClose = { navController.navigateUp() },
onRenewSubscription = { navController.navigateToPremiumExtendSubscription(primalName = it) },
onManagePremium = { navController.navigateToPremiumManage() },
+ onLegendCardClick = { navController.navigateToPremiumLegendCard(profileId = it) },
onSupportPrimal = { navController.navigateToPremiumSupportPrimal() },
)
}
diff --git a/app/src/main/kotlin/net/primal/android/premium/home/PremiumHomeContract.kt b/app/src/main/kotlin/net/primal/android/premium/home/PremiumHomeContract.kt
index 9aabdf330..307e30663 100644
--- a/app/src/main/kotlin/net/primal/android/premium/home/PremiumHomeContract.kt
+++ b/app/src/main/kotlin/net/primal/android/premium/home/PremiumHomeContract.kt
@@ -8,6 +8,7 @@ import net.primal.android.premium.legend.domain.LegendaryCustomization
interface PremiumHomeContract {
data class UiState(
+ val profileId: String? = null,
val avatarCdnImage: CdnImage? = null,
val profileNostrAddress: String? = null,
val profileLightningAddress: String? = null,
diff --git a/app/src/main/kotlin/net/primal/android/premium/home/PremiumHomeScreen.kt b/app/src/main/kotlin/net/primal/android/premium/home/PremiumHomeScreen.kt
index 932dff5ae..5ba1e745c 100644
--- a/app/src/main/kotlin/net/primal/android/premium/home/PremiumHomeScreen.kt
+++ b/app/src/main/kotlin/net/primal/android/premium/home/PremiumHomeScreen.kt
@@ -45,6 +45,7 @@ import net.primal.android.premium.ui.PremiumBadge
import net.primal.android.premium.ui.PrimalPremiumTable
import net.primal.android.premium.ui.toHumanReadableString
import net.primal.android.premium.utils.isPremiumFreeTier
+import net.primal.android.premium.utils.isPrimalLegendTier
import net.primal.android.theme.AppTheme
@Composable
@@ -54,6 +55,7 @@ fun PremiumHomeScreen(
onRenewSubscription: (primalName: String) -> Unit,
onManagePremium: () -> Unit,
onSupportPrimal: () -> Unit,
+ onLegendCardClick: (String) -> Unit,
) {
val uiState = viewModel.state.collectAsState()
@@ -70,6 +72,7 @@ fun PremiumHomeScreen(
onRenewSubscription = onRenewSubscription,
onManagePremium = onManagePremium,
onSupportPrimal = onSupportPrimal,
+ onLegendCardClick = onLegendCardClick,
eventPublisher = viewModel::setEvent,
)
}
@@ -82,6 +85,7 @@ private fun PremiumHomeScreen(
onRenewSubscription: (primalName: String) -> Unit,
onManagePremium: () -> Unit,
onSupportPrimal: () -> Unit,
+ onLegendCardClick: (String) -> Unit,
eventPublisher: (PremiumHomeContract.UiEvent) -> Unit,
) {
val snackbarHostState = remember { SnackbarHostState() }
@@ -153,6 +157,9 @@ private fun PremiumHomeScreen(
if (state.membership != null) {
PremiumBadge(
+ modifier = Modifier.clickable(enabled = state.membership.isPrimalLegendTier()) {
+ state.profileId?.let { onLegendCardClick(it) }
+ },
firstCohort = state.membership.cohort1,
secondCohort = state.membership.cohort2,
membershipExpired = state.membership.isExpired(),
diff --git a/app/src/main/kotlin/net/primal/android/premium/home/PremiumHomeViewModel.kt b/app/src/main/kotlin/net/primal/android/premium/home/PremiumHomeViewModel.kt
index 9281870fc..9327b3fec 100644
--- a/app/src/main/kotlin/net/primal/android/premium/home/PremiumHomeViewModel.kt
+++ b/app/src/main/kotlin/net/primal/android/premium/home/PremiumHomeViewModel.kt
@@ -62,6 +62,7 @@ class PremiumHomeViewModel @Inject constructor(
activeAccountStore.activeUserAccount.collect {
setState {
copy(
+ profileId = it.pubkey,
avatarCdnImage = it.avatarCdnImage,
profileNostrAddress = it.internetIdentifier,
profileLightningAddress = it.lightningAddress,