mirror of
https://github.com/bitwarden/android.git
synced 2026-06-04 03:36:32 -05:00
BIT-1897-vault-appearing-when-policy-set (#1064)
This commit is contained in:
committed by
Álison Fernandes
parent
c154da6f46
commit
85faf29c7b
@@ -272,11 +272,10 @@ private fun VaultScreenScaffold(
|
||||
.fillMaxSize()
|
||||
.padding(paddingValues)
|
||||
Column(modifier = outerModifier) {
|
||||
val vaultFilterData = state.vaultFilterData
|
||||
if (state.viewState.hasVaultFilter && vaultFilterData != null) {
|
||||
state.vaultFilterDataWithFilter?.let {
|
||||
VaultFilter(
|
||||
selectedVaultFilterType = vaultFilterData.selectedVaultFilterType,
|
||||
vaultFilterTypes = vaultFilterData.vaultFilterTypes.toImmutableList(),
|
||||
selectedVaultFilterType = it.selectedVaultFilterType,
|
||||
vaultFilterTypes = it.vaultFilterTypes.toImmutableList(),
|
||||
onVaultFilterTypeSelect = vaultHandlers.vaultFilterTypeSelect,
|
||||
topAppBarScrollBehavior = scrollBehavior,
|
||||
modifier = Modifier
|
||||
|
||||
@@ -28,6 +28,7 @@ import com.x8bit.bitwarden.ui.platform.components.model.IconRes
|
||||
import com.x8bit.bitwarden.ui.vault.feature.itemlisting.model.ListingItemOverflowAction
|
||||
import com.x8bit.bitwarden.ui.vault.feature.vault.model.VaultFilterData
|
||||
import com.x8bit.bitwarden.ui.vault.feature.vault.model.VaultFilterType
|
||||
import com.x8bit.bitwarden.ui.vault.feature.vault.util.vaultFilterDataIfRequired
|
||||
import com.x8bit.bitwarden.ui.vault.feature.vault.util.initials
|
||||
import com.x8bit.bitwarden.ui.vault.feature.vault.util.toAccountSummaries
|
||||
import com.x8bit.bitwarden.ui.vault.feature.vault.util.toActiveAccountSummary
|
||||
@@ -625,6 +626,12 @@ data class VaultState(
|
||||
val isPullToRefreshEnabled: Boolean
|
||||
get() = isPullToRefreshSettingEnabled && viewState.isPullToRefreshEnabled
|
||||
|
||||
/**
|
||||
* VaultFilterData that the user has access to.
|
||||
*/
|
||||
val vaultFilterDataWithFilter: VaultFilterData?
|
||||
get() = viewState.vaultFilterDataIfRequired(vaultFilterData = vaultFilterData)
|
||||
|
||||
/**
|
||||
* Represents the specific view states for the [VaultScreen].
|
||||
*/
|
||||
@@ -637,11 +644,6 @@ data class VaultState(
|
||||
*/
|
||||
abstract val hasFab: Boolean
|
||||
|
||||
/**
|
||||
* Determines whether or not the the Vault Filter may be shown (when applicable).
|
||||
*/
|
||||
abstract val hasVaultFilter: Boolean
|
||||
|
||||
/**
|
||||
* Indicates the pull-to-refresh feature should be available during the current state.
|
||||
*/
|
||||
@@ -653,7 +655,6 @@ data class VaultState(
|
||||
@Parcelize
|
||||
data object Loading : ViewState() {
|
||||
override val hasFab: Boolean get() = false
|
||||
override val hasVaultFilter: Boolean get() = false
|
||||
override val isPullToRefreshEnabled: Boolean get() = false
|
||||
}
|
||||
|
||||
@@ -663,7 +664,6 @@ data class VaultState(
|
||||
@Parcelize
|
||||
data object NoItems : ViewState() {
|
||||
override val hasFab: Boolean get() = true
|
||||
override val hasVaultFilter: Boolean get() = true
|
||||
override val isPullToRefreshEnabled: Boolean get() = true
|
||||
}
|
||||
|
||||
@@ -676,7 +676,6 @@ data class VaultState(
|
||||
val message: Text,
|
||||
) : ViewState() {
|
||||
override val hasFab: Boolean get() = false
|
||||
override val hasVaultFilter: Boolean get() = false
|
||||
override val isPullToRefreshEnabled: Boolean get() = true
|
||||
}
|
||||
|
||||
@@ -708,7 +707,6 @@ data class VaultState(
|
||||
val trashItemsCount: Int,
|
||||
) : ViewState() {
|
||||
override val hasFab: Boolean get() = true
|
||||
override val hasVaultFilter: Boolean get() = true
|
||||
override val isPullToRefreshEnabled: Boolean get() = true
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.x8bit.bitwarden.ui.vault.feature.vault.util
|
||||
|
||||
import com.x8bit.bitwarden.ui.vault.feature.vault.VaultState
|
||||
import com.x8bit.bitwarden.ui.vault.feature.vault.model.VaultFilterData
|
||||
import com.x8bit.bitwarden.ui.vault.feature.vault.model.VaultFilterType
|
||||
|
||||
/**
|
||||
* Converts the given [VaultState.ViewState] to a [VaultFilterData] (if applicable).
|
||||
*/
|
||||
fun VaultState.ViewState.vaultFilterDataIfRequired(
|
||||
vaultFilterData: VaultFilterData?,
|
||||
): VaultFilterData? =
|
||||
when (this) {
|
||||
is VaultState.ViewState.Content,
|
||||
is VaultState.ViewState.NoItems,
|
||||
-> vaultFilterData?.let {
|
||||
if (it.vaultFilterTypes.contains(VaultFilterType.MyVault) ||
|
||||
it.vaultFilterTypes.size > 2
|
||||
) {
|
||||
it
|
||||
} else {
|
||||
null
|
||||
}
|
||||
}
|
||||
|
||||
is VaultState.ViewState.Error,
|
||||
is VaultState.ViewState.Loading,
|
||||
-> null
|
||||
}
|
||||
Reference in New Issue
Block a user