Skip to content

Commit

Permalink
Merge pull request #1336 from radixdlt/feature/ABW-4081-security-shie…
Browse files Browse the repository at this point in the history
…lds-list

[ABW-4081] Security shields list
  • Loading branch information
giannis-rdx authored Feb 18, 2025
2 parents 4138ec3 + e90a2e7 commit 15e582e
Show file tree
Hide file tree
Showing 25 changed files with 1,059 additions and 87 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ import com.babylon.wallet.android.presentation.ui.composables.statusBarsAndBanne
import com.babylon.wallet.android.presentation.ui.model.factors.FactorSourceCard
import com.babylon.wallet.android.presentation.ui.model.factors.FactorSourceKindCard
import com.babylon.wallet.android.presentation.ui.model.factors.FactorSourceStatusMessage
import com.babylon.wallet.android.presentation.ui.model.factors.StatusMessage
import com.babylon.wallet.android.presentation.ui.model.shared.StatusMessage
import com.radixdlt.sargon.Account
import com.radixdlt.sargon.FactorSourceId
import com.radixdlt.sargon.FactorSourceKind
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import com.babylon.wallet.android.presentation.common.UiState
import com.babylon.wallet.android.presentation.ui.model.factors.FactorSourceCard
import com.babylon.wallet.android.presentation.ui.model.factors.FactorSourceKindCard
import com.babylon.wallet.android.presentation.ui.model.factors.FactorSourceStatusMessage
import com.babylon.wallet.android.presentation.ui.model.factors.StatusMessage
import com.babylon.wallet.android.presentation.ui.model.shared.StatusMessage
import com.babylon.wallet.android.utils.relativeTimeFormatted
import com.radixdlt.sargon.Account
import com.radixdlt.sargon.DeviceFactorSource
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ import com.babylon.wallet.android.presentation.common.OneOffEventHandler
import com.babylon.wallet.android.presentation.common.OneOffEventHandlerImpl
import com.babylon.wallet.android.presentation.common.StateViewModel
import com.babylon.wallet.android.presentation.common.UiState
import com.babylon.wallet.android.utils.callSafely
import com.radixdlt.sargon.os.SargonOsManager
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.flow.flowOn
Expand All @@ -19,8 +21,9 @@ import javax.inject.Inject

@HiltViewModel
class SecurityCenterViewModel @Inject constructor(
private val sargonOsManager: SargonOsManager,
getSecurityProblemsUseCase: GetSecurityProblemsUseCase,
@DefaultDispatcher dispatcher: CoroutineDispatcher
@DefaultDispatcher private val defaultDispatcher: CoroutineDispatcher
) : StateViewModel<SecurityCenterViewModel.SecurityCenterUiState>(),
OneOffEventHandler<SecurityCenterViewModel.Event> by OneOffEventHandlerImpl() {

Expand All @@ -37,14 +40,15 @@ class SecurityCenterViewModel @Inject constructor(
)
)
}
.flowOn(dispatcher)
.flowOn(defaultDispatcher)
.launchIn(viewModelScope)
}

fun onSecurityShieldsClick() {
viewModelScope.launch {
// TODO perform the actual check
val hasSecurityShields = false
val hasSecurityShields = sargonOsManager.callSafely(defaultDispatcher) {
getShieldsForDisplay().isNotEmpty()
}.getOrElse { false }
sendEvent(
if (hasSecurityShields) {
Event.ToSecurityShields
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import com.babylon.wallet.android.R
import com.babylon.wallet.android.designsystem.theme.RadixTheme
import com.babylon.wallet.android.presentation.dialogs.info.GlossaryItem
import com.babylon.wallet.android.presentation.ui.composables.StatusMessageText
import com.babylon.wallet.android.presentation.ui.model.factors.StatusMessage
import com.babylon.wallet.android.presentation.ui.model.shared.StatusMessage
import com.babylon.wallet.android.presentation.ui.modifier.noIndicationClickable
import com.babylon.wallet.android.utils.formattedSpans

Expand Down Expand Up @@ -53,8 +53,7 @@ fun ShieldSetupNotEnoughFactorsStatusView(
StatusMessageText(
modifier = modifier.noIndicationClickable { onInfoClick(GlossaryItem.buildingshield) },
message = StatusMessage(
// TODO crowdin
message = "You haven’t chosen enough factors to build a Shield. Learn about **Factors required for Shield**".formattedSpans(
message = stringResource(R.string.shieldSetupStatus_notEnoughFactors).formattedSpans(
boldStyle = SpanStyle(
color = RadixTheme.colors.blue2,
fontWeight = RadixTheme.typography.body1StandaloneLink.fontWeight,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import androidx.navigation.NavGraphBuilder
import androidx.navigation.NavOptionsBuilder
import androidx.navigation.compose.composable
import androidx.navigation.navigation
import com.babylon.wallet.android.presentation.dialogs.info.infoDialog
import com.babylon.wallet.android.presentation.settings.securitycenter.applyshield.applyShieldNavGraph
import com.babylon.wallet.android.presentation.settings.securitycenter.securityshields.addfactor.addFactor
import com.babylon.wallet.android.presentation.settings.securitycenter.securityshields.factorsready.factorsReady
Expand Down Expand Up @@ -70,8 +71,10 @@ fun NavGraphBuilder.securityShieldsScreen(
) {
SecurityShieldsScreen(
viewModel = hiltViewModel(),
onNavigateToSecurityShieldDetails = { /* TODO security shield details screen */ },
onCreateNewSecurityShieldClick = { navController.securityShieldOnboarding() },
onInfoClick = { glossaryItem -> navController.infoDialog(glossaryItem) },
onBackClick = { navController.navigateUp() },
onCreateShieldClick = { navController.securityShieldOnboarding() }
)
}
}
Loading

0 comments on commit 15e582e

Please sign in to comment.