mirror of
https://github.com/bitwarden/android.git
synced 2025-02-17 04:19:54 +03:00
Add isActive and isVaultUnlocked to AccountSummary (#361)
This commit is contained in:
parent
5de9931d05
commit
8855fda026
9 changed files with 51 additions and 49 deletions
|
@ -14,7 +14,8 @@ import kotlinx.parcelize.Parcelize
|
|||
* @property avatarColorHex Hex color value for a user's avatar in the "#AARRGGBB" format.
|
||||
* @property environmentLabel Label for the environment associated with the user's account
|
||||
* (ex: "bitwarden.com"). This is purely for display purposes.
|
||||
* @property status The current status of the user's account locally.
|
||||
* @property isActive Whether or not the account is currently the active one.
|
||||
* @property isVaultUnlocked Whether or not the account's vault is currently unlocked.
|
||||
*/
|
||||
@Parcelize
|
||||
data class AccountSummary(
|
||||
|
@ -23,7 +24,8 @@ data class AccountSummary(
|
|||
val email: String,
|
||||
val avatarColorHex: String,
|
||||
val environmentLabel: String,
|
||||
val status: Status,
|
||||
val isActive: Boolean,
|
||||
val isVaultUnlocked: Boolean,
|
||||
) : Parcelable {
|
||||
|
||||
/**
|
||||
|
@ -32,6 +34,16 @@ data class AccountSummary(
|
|||
val avatarColor: Color
|
||||
get() = avatarColorHex.hexToColor()
|
||||
|
||||
/**
|
||||
* The current status of the user's account locally.
|
||||
*/
|
||||
val status: Status
|
||||
get() = when {
|
||||
isActive -> Status.ACTIVE
|
||||
isVaultUnlocked -> Status.UNLOCKED
|
||||
else -> Status.LOCKED
|
||||
}
|
||||
|
||||
/**
|
||||
* Describes the status of the given account.
|
||||
*/
|
||||
|
|
|
@ -36,9 +36,6 @@ fun UserState.Account.toAccountSummary(
|
|||
email = this.email,
|
||||
avatarColorHex = this.avatarColorHex,
|
||||
environmentLabel = this.environment.label,
|
||||
status = when {
|
||||
isActive -> AccountSummary.Status.ACTIVE
|
||||
this.isVaultUnlocked -> AccountSummary.Status.UNLOCKED
|
||||
else -> AccountSummary.Status.LOCKED
|
||||
},
|
||||
isActive = isActive,
|
||||
isVaultUnlocked = this.isVaultUnlocked,
|
||||
)
|
||||
|
|
|
@ -353,7 +353,8 @@ private val ACTIVE_ACCOUNT_SUMMARY = AccountSummary(
|
|||
email = "active@bitwarden.com",
|
||||
avatarColorHex = "#aa00aa",
|
||||
environmentLabel = "bitwarden.com",
|
||||
status = AccountSummary.Status.ACTIVE,
|
||||
isActive = true,
|
||||
isVaultUnlocked = true,
|
||||
)
|
||||
|
||||
private val DEFAULT_STATE = LandingState(
|
||||
|
|
|
@ -175,7 +175,8 @@ private val ACTIVE_ACCOUNT_SUMMARY = AccountSummary(
|
|||
email = "active@bitwarden.com",
|
||||
avatarColorHex = "#aa00aa",
|
||||
environmentLabel = "bitwarden.com",
|
||||
status = AccountSummary.Status.ACTIVE,
|
||||
isActive = true,
|
||||
isVaultUnlocked = true,
|
||||
)
|
||||
|
||||
private val DEFAULT_STATE =
|
||||
|
|
|
@ -206,7 +206,8 @@ private val ACTIVE_ACCOUNT_SUMMARY = AccountSummary(
|
|||
email = "active@bitwarden.com",
|
||||
avatarColorHex = "#aa00aa",
|
||||
environmentLabel = "bitwarden.com",
|
||||
status = AccountSummary.Status.ACTIVE,
|
||||
isActive = true,
|
||||
isVaultUnlocked = true,
|
||||
)
|
||||
|
||||
private val LOCKED_ACCOUNT_SUMMARY = AccountSummary(
|
||||
|
@ -215,7 +216,8 @@ private val LOCKED_ACCOUNT_SUMMARY = AccountSummary(
|
|||
email = "locked@bitwarden.com",
|
||||
avatarColorHex = "#00aaaa",
|
||||
environmentLabel = "bitwarden.com",
|
||||
status = AccountSummary.Status.LOCKED,
|
||||
isActive = false,
|
||||
isVaultUnlocked = false,
|
||||
)
|
||||
|
||||
private val ACCOUNT_SUMMARIES = listOf(
|
||||
|
|
|
@ -119,7 +119,8 @@ class VaultUnlockViewModelTest : BaseViewModelTest() {
|
|||
email = "active+test@bitwarden.com",
|
||||
avatarColorHex = "#00aaaa",
|
||||
environmentLabel = "bitwarden.com",
|
||||
status = AccountSummary.Status.ACTIVE,
|
||||
isActive = true,
|
||||
isVaultUnlocked = true,
|
||||
),
|
||||
),
|
||||
),
|
||||
|
@ -288,7 +289,8 @@ private val DEFAULT_STATE: VaultUnlockState = VaultUnlockState(
|
|||
email = "active@bitwarden.com",
|
||||
avatarColorHex = "#aa00aa",
|
||||
environmentLabel = "bitwarden.com",
|
||||
status = AccountSummary.Status.ACTIVE,
|
||||
isActive = true,
|
||||
isVaultUnlocked = true,
|
||||
),
|
||||
),
|
||||
avatarColorString = "#aa00aa",
|
||||
|
|
|
@ -481,7 +481,8 @@ private val ACTIVE_ACCOUNT_SUMMARY = AccountSummary(
|
|||
email = "active@bitwarden.com",
|
||||
avatarColorHex = "#aa00aa",
|
||||
environmentLabel = "bitwarden.com",
|
||||
status = AccountSummary.Status.ACTIVE,
|
||||
isActive = true,
|
||||
isVaultUnlocked = true,
|
||||
)
|
||||
|
||||
private val LOCKED_ACCOUNT_SUMMARY = AccountSummary(
|
||||
|
@ -490,7 +491,8 @@ private val LOCKED_ACCOUNT_SUMMARY = AccountSummary(
|
|||
email = "locked@bitwarden.com",
|
||||
avatarColorHex = "#00aaaa",
|
||||
environmentLabel = "bitwarden.com",
|
||||
status = AccountSummary.Status.LOCKED,
|
||||
isActive = false,
|
||||
isVaultUnlocked = false,
|
||||
)
|
||||
|
||||
private val DEFAULT_STATE: VaultState = VaultState(
|
||||
|
|
|
@ -135,7 +135,8 @@ class VaultViewModelTest : BaseViewModelTest() {
|
|||
email = "active@bitwarden.com",
|
||||
avatarColorHex = "#00aaaa",
|
||||
environmentLabel = "bitwarden.com",
|
||||
status = AccountSummary.Status.ACTIVE,
|
||||
isActive = true,
|
||||
isVaultUnlocked = true,
|
||||
),
|
||||
),
|
||||
),
|
||||
|
@ -487,7 +488,8 @@ private fun createMockVaultState(viewState: VaultState.ViewState): VaultState =
|
|||
email = "active@bitwarden.com",
|
||||
avatarColorHex = "#aa00aa",
|
||||
environmentLabel = "bitwarden.com",
|
||||
status = AccountSummary.Status.ACTIVE,
|
||||
isActive = true,
|
||||
isVaultUnlocked = true,
|
||||
),
|
||||
AccountSummary(
|
||||
userId = "lockedUserId",
|
||||
|
@ -495,7 +497,8 @@ private fun createMockVaultState(viewState: VaultState.ViewState): VaultState =
|
|||
email = "locked@bitwarden.com",
|
||||
avatarColorHex = "#00aaaa",
|
||||
environmentLabel = "bitwarden.com",
|
||||
status = AccountSummary.Status.LOCKED,
|
||||
isActive = false,
|
||||
isVaultUnlocked = false,
|
||||
),
|
||||
),
|
||||
viewState = viewState,
|
||||
|
|
|
@ -18,7 +18,8 @@ class UserStateExtensionsTest {
|
|||
email = "activeEmail",
|
||||
avatarColorHex = "activeAvatarColorHex",
|
||||
environmentLabel = "bitwarden.com",
|
||||
status = AccountSummary.Status.ACTIVE,
|
||||
isActive = true,
|
||||
isVaultUnlocked = true,
|
||||
),
|
||||
AccountSummary(
|
||||
userId = "lockedUserId",
|
||||
|
@ -26,7 +27,8 @@ class UserStateExtensionsTest {
|
|||
email = "lockedEmail",
|
||||
avatarColorHex = "lockedAvatarColorHex",
|
||||
environmentLabel = "bitwarden.eu",
|
||||
status = AccountSummary.Status.LOCKED,
|
||||
isActive = false,
|
||||
isVaultUnlocked = false,
|
||||
),
|
||||
AccountSummary(
|
||||
userId = "unlockedUserId",
|
||||
|
@ -34,7 +36,8 @@ class UserStateExtensionsTest {
|
|||
email = "unlockedEmail",
|
||||
avatarColorHex = "unlockedAvatarColorHex",
|
||||
environmentLabel = "vault.qa.bitwarden.pw",
|
||||
status = AccountSummary.Status.UNLOCKED,
|
||||
isActive = false,
|
||||
isVaultUnlocked = true,
|
||||
),
|
||||
),
|
||||
UserState(
|
||||
|
@ -86,7 +89,8 @@ class UserStateExtensionsTest {
|
|||
email = "email",
|
||||
avatarColorHex = "avatarColorHex",
|
||||
environmentLabel = "bitwarden.com",
|
||||
status = AccountSummary.Status.ACTIVE,
|
||||
isActive = true,
|
||||
isVaultUnlocked = true,
|
||||
),
|
||||
UserState.Account(
|
||||
userId = "userId",
|
||||
|
@ -102,7 +106,7 @@ class UserStateExtensionsTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
fun `toAccountSummary for an locked account should return a locked AccountSummary`() {
|
||||
fun `toAccountSummary for an inactive account should return an inactive AccountSummary`() {
|
||||
assertEquals(
|
||||
AccountSummary(
|
||||
userId = "userId",
|
||||
|
@ -110,7 +114,8 @@ class UserStateExtensionsTest {
|
|||
email = "email",
|
||||
avatarColorHex = "avatarColorHex",
|
||||
environmentLabel = "bitwarden.com",
|
||||
status = AccountSummary.Status.LOCKED,
|
||||
isActive = false,
|
||||
isVaultUnlocked = false,
|
||||
),
|
||||
UserState.Account(
|
||||
userId = "userId",
|
||||
|
@ -125,30 +130,6 @@ class UserStateExtensionsTest {
|
|||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun `toAccountSummary for a unlocked account should return a locked AccountSummary`() {
|
||||
assertEquals(
|
||||
AccountSummary(
|
||||
userId = "userId",
|
||||
name = "name",
|
||||
email = "email",
|
||||
avatarColorHex = "avatarColorHex",
|
||||
environmentLabel = "bitwarden.eu",
|
||||
status = AccountSummary.Status.UNLOCKED,
|
||||
),
|
||||
UserState.Account(
|
||||
userId = "userId",
|
||||
name = "name",
|
||||
email = "email",
|
||||
avatarColorHex = "avatarColorHex",
|
||||
environment = Environment.Eu,
|
||||
isPremium = true,
|
||||
isVaultUnlocked = true,
|
||||
)
|
||||
.toAccountSummary(isActive = false),
|
||||
)
|
||||
}
|
||||
|
||||
@Suppress("MaxLineLength")
|
||||
@Test
|
||||
fun `toActiveAccountSummary should return an active AccountSummary`() {
|
||||
|
@ -159,7 +140,8 @@ class UserStateExtensionsTest {
|
|||
email = "email",
|
||||
avatarColorHex = "avatarColorHex",
|
||||
environmentLabel = "bitwarden.com",
|
||||
status = AccountSummary.Status.ACTIVE,
|
||||
isActive = true,
|
||||
isVaultUnlocked = true,
|
||||
),
|
||||
UserState(
|
||||
activeUserId = "activeUserId",
|
||||
|
|
Loading…
Add table
Reference in a new issue