diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/BitwardenErrorContent.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/BitwardenErrorContent.kt index 02bceeed60..df1972a7f3 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/BitwardenErrorContent.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/BitwardenErrorContent.kt @@ -5,6 +5,8 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.navigationBarsPadding +import androidx.compose.foundation.layout.padding import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -36,14 +38,18 @@ fun BitwardenErrorContent( color = MaterialTheme.colorScheme.onSurface, style = MaterialTheme.typography.bodyMedium, textAlign = TextAlign.Center, - modifier = Modifier.fillMaxWidth(), + modifier = Modifier + .padding(horizontal = 16.dp) + .fillMaxWidth(), ) onTryAgainClick?.let { Spacer(modifier = Modifier.height(16.dp)) BitwardenTextButton( label = stringResource(id = R.string.try_again), onClick = it, + modifier = Modifier.padding(horizontal = 16.dp), ) } + Spacer(modifier = Modifier.navigationBarsPadding()) } } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditError.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditError.kt deleted file mode 100644 index d54a350bb3..0000000000 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditError.kt +++ /dev/null @@ -1,40 +0,0 @@ -package com.x8bit.bitwarden.ui.vault.feature.addedit - -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.navigationBarsPadding -import androidx.compose.foundation.layout.padding -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.unit.dp - -/** - * The top level error UI state for the [VaultAddEditScreen]. - */ -@Composable -fun VaultAddEditError( - viewState: VaultAddEditState.ViewState.Error, - modifier: Modifier = Modifier, -) { - Column( - modifier = modifier, - verticalArrangement = Arrangement.Center, - horizontalAlignment = Alignment.CenterHorizontally, - ) { - Text( - text = viewState.message(), - style = MaterialTheme.typography.bodyMedium, - textAlign = TextAlign.Center, - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - ) - Spacer(modifier = Modifier.navigationBarsPadding()) - } -} diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditLoading.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditLoading.kt deleted file mode 100644 index 0adcef7d5f..0000000000 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditLoading.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.x8bit.bitwarden.ui.vault.feature.addedit - -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.navigationBarsPadding -import androidx.compose.material3.CircularProgressIndicator -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier - -/** - * The top level loading UI state for the [VaultAddEditScreen]. - */ -@Composable -fun VaultAddEditLoading( - modifier: Modifier = Modifier, -) { - Column( - modifier = modifier, - verticalArrangement = Arrangement.Center, - horizontalAlignment = Alignment.CenterHorizontally, - ) { - CircularProgressIndicator() - Spacer(modifier = Modifier.navigationBarsPadding()) - } -} diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreen.kt index 5a98d9437a..55c4a31a4d 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/addedit/VaultAddEditScreen.kt @@ -28,6 +28,8 @@ import com.x8bit.bitwarden.ui.platform.base.util.asText import com.x8bit.bitwarden.ui.platform.base.util.toAnnotatedString import com.x8bit.bitwarden.ui.platform.components.BasicDialogState import com.x8bit.bitwarden.ui.platform.components.BitwardenBasicDialog +import com.x8bit.bitwarden.ui.platform.components.BitwardenErrorContent +import com.x8bit.bitwarden.ui.platform.components.BitwardenLoadingContent import com.x8bit.bitwarden.ui.platform.components.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.components.BitwardenScaffold import com.x8bit.bitwarden.ui.platform.components.BitwardenTextButton @@ -137,8 +139,8 @@ fun VaultAddEditScreen( } is VaultAddEditState.ViewState.Error -> { - VaultAddEditError( - viewState = viewState, + BitwardenErrorContent( + message = viewState.message(), modifier = Modifier .padding(innerPadding) .fillMaxSize(), @@ -146,7 +148,7 @@ fun VaultAddEditScreen( } VaultAddEditState.ViewState.Loading -> { - VaultAddEditLoading( + BitwardenLoadingContent( modifier = Modifier .padding(innerPadding) .fillMaxSize(), diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemError.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemError.kt deleted file mode 100644 index f4a3357243..0000000000 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemError.kt +++ /dev/null @@ -1,52 +0,0 @@ -package com.x8bit.bitwarden.ui.vault.feature.item - -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.navigationBarsPadding -import androidx.compose.foundation.layout.padding -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.unit.dp -import com.x8bit.bitwarden.R -import com.x8bit.bitwarden.ui.platform.components.BitwardenTextButton - -/** - * The top level error UI state for the [VaultItemScreen]. - */ -@Composable -fun VaultItemError( - errorState: VaultItemState.ViewState.Error, - onRefreshClick: () -> Unit, - modifier: Modifier = Modifier, -) { - Column( - modifier = modifier, - verticalArrangement = Arrangement.Center, - horizontalAlignment = Alignment.CenterHorizontally, - ) { - Text( - text = errorState.message(), - style = MaterialTheme.typography.bodyMedium, - textAlign = TextAlign.Center, - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - ) - Spacer(modifier = Modifier.height(16.dp)) - BitwardenTextButton( - label = stringResource(id = R.string.try_again), - onClick = onRefreshClick, - modifier = Modifier.padding(horizontal = 16.dp), - ) - Spacer(modifier = Modifier.height(88.dp)) - Spacer(modifier = Modifier.navigationBarsPadding()) - } -} diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemLoading.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemLoading.kt deleted file mode 100644 index 8c4dc7919a..0000000000 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemLoading.kt +++ /dev/null @@ -1,30 +0,0 @@ -package com.x8bit.bitwarden.ui.vault.feature.item - -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.navigationBarsPadding -import androidx.compose.material3.CircularProgressIndicator -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp - -/** - * The top level loading UI state for the [VaultItemScreen]. - */ -@Composable -fun VaultItemLoading( - modifier: Modifier = Modifier, -) { - Column( - modifier = modifier, - verticalArrangement = Arrangement.Center, - horizontalAlignment = Alignment.CenterHorizontally, - ) { - CircularProgressIndicator() - Spacer(modifier = Modifier.height(88.dp)) - Spacer(modifier = Modifier.navigationBarsPadding()) - } -} diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreen.kt index d430ac4679..4746c1c3db 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/item/VaultItemScreen.kt @@ -34,6 +34,8 @@ import com.x8bit.bitwarden.ui.platform.base.util.asText import com.x8bit.bitwarden.ui.platform.base.util.toAnnotatedString import com.x8bit.bitwarden.ui.platform.components.BasicDialogState import com.x8bit.bitwarden.ui.platform.components.BitwardenBasicDialog +import com.x8bit.bitwarden.ui.platform.components.BitwardenErrorContent +import com.x8bit.bitwarden.ui.platform.components.BitwardenLoadingContent import com.x8bit.bitwarden.ui.platform.components.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.components.BitwardenMasterPasswordDialog import com.x8bit.bitwarden.ui.platform.components.BitwardenOverflowActionItem @@ -185,9 +187,9 @@ private fun VaultItemContent( modifier: Modifier = Modifier, ) { when (viewState) { - is VaultItemState.ViewState.Error -> VaultItemError( - errorState = viewState, - onRefreshClick = vaultCommonItemTypeHandlers.onRefreshClick, + is VaultItemState.ViewState.Error -> BitwardenErrorContent( + message = viewState.message(), + onTryAgainClick = vaultCommonItemTypeHandlers.onRefreshClick, modifier = modifier, ) @@ -226,7 +228,7 @@ private fun VaultItemContent( } } - VaultItemState.ViewState.Loading -> VaultItemLoading( + VaultItemState.ViewState.Loading -> BitwardenLoadingContent( modifier = modifier, ) } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingError.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingError.kt deleted file mode 100644 index 39bcb88b06..0000000000 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingError.kt +++ /dev/null @@ -1,52 +0,0 @@ -package com.x8bit.bitwarden.ui.vault.feature.itemlisting - -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.navigationBarsPadding -import androidx.compose.foundation.layout.padding -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.unit.dp -import com.x8bit.bitwarden.R -import com.x8bit.bitwarden.ui.platform.components.BitwardenTextButton - -/** - * The top level error UI state for the [VaultItemListingScreen]. - */ -@Composable -fun VaultItemListingError( - state: VaultItemListingState.ViewState.Error, - onRefreshClick: () -> Unit, - modifier: Modifier = Modifier, -) { - Column( - modifier = modifier, - verticalArrangement = Arrangement.Center, - horizontalAlignment = Alignment.CenterHorizontally, - ) { - Text( - text = state.message(), - style = MaterialTheme.typography.bodyMedium, - textAlign = TextAlign.Center, - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - ) - Spacer(modifier = Modifier.height(16.dp)) - BitwardenTextButton( - label = stringResource(id = R.string.try_again), - onClick = onRefreshClick, - modifier = Modifier.padding(horizontal = 16.dp), - ) - Spacer(modifier = Modifier.height(88.dp)) - Spacer(modifier = Modifier.navigationBarsPadding()) - } -} diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingLoading.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingLoading.kt deleted file mode 100644 index 503c7e9993..0000000000 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingLoading.kt +++ /dev/null @@ -1,27 +0,0 @@ -package com.x8bit.bitwarden.ui.vault.feature.itemlisting - -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.navigationBarsPadding -import androidx.compose.material3.CircularProgressIndicator -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier - -/** - * Loading view for the [VaultItemListingScreen]. - */ -@Composable -fun VaultItemListingLoading( - modifier: Modifier = Modifier, -) { - Column( - modifier = modifier, - verticalArrangement = Arrangement.Center, - horizontalAlignment = Alignment.CenterHorizontally, - ) { - CircularProgressIndicator() - Spacer(modifier = Modifier.navigationBarsPadding()) - } -} diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreen.kt index fe3fa50c05..b299b03b42 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/itemlisting/VaultItemListingScreen.kt @@ -20,6 +20,8 @@ import androidx.compose.ui.res.stringResource import androidx.hilt.navigation.compose.hiltViewModel import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.platform.base.util.EventsEffect +import com.x8bit.bitwarden.ui.platform.components.BitwardenErrorContent +import com.x8bit.bitwarden.ui.platform.components.BitwardenLoadingContent import com.x8bit.bitwarden.ui.platform.components.BitwardenOverflowActionItem import com.x8bit.bitwarden.ui.platform.components.BitwardenScaffold import com.x8bit.bitwarden.ui.platform.components.BitwardenSearchActionItem @@ -149,15 +151,15 @@ private fun VaultItemListingScaffold( } is VaultItemListingState.ViewState.Error -> { - VaultItemListingError( - state = state.viewState, - onRefreshClick = refreshClick, + BitwardenErrorContent( + message = state.viewState.message(), + onTryAgainClick = refreshClick, modifier = modifier, ) } is VaultItemListingState.ViewState.Loading -> { - VaultItemListingLoading(modifier = modifier) + BitwardenLoadingContent(modifier = modifier) } } } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/vault/VaultLoading.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/vault/VaultLoading.kt deleted file mode 100644 index a98fe6b984..0000000000 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/vault/VaultLoading.kt +++ /dev/null @@ -1,22 +0,0 @@ -package com.x8bit.bitwarden.ui.vault.feature.vault - -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Column -import androidx.compose.material3.CircularProgressIndicator -import androidx.compose.runtime.Composable -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier - -/** - * Loading view for the [VaultScreen]. - */ -@Composable -fun VaultLoading(modifier: Modifier = Modifier) { - Column( - modifier = modifier, - verticalArrangement = Arrangement.Center, - horizontalAlignment = Alignment.CenterHorizontally, - ) { - CircularProgressIndicator() - } -} diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/vault/VaultScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/vault/VaultScreen.kt index ea6a6eb6b4..e499a9f0e4 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/vault/VaultScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/vault/feature/vault/VaultScreen.kt @@ -39,6 +39,7 @@ import com.x8bit.bitwarden.ui.platform.components.BitwardenAccountActionItem import com.x8bit.bitwarden.ui.platform.components.BitwardenAccountSwitcher import com.x8bit.bitwarden.ui.platform.components.BitwardenBasicDialog import com.x8bit.bitwarden.ui.platform.components.BitwardenErrorContent +import com.x8bit.bitwarden.ui.platform.components.BitwardenLoadingContent import com.x8bit.bitwarden.ui.platform.components.BitwardenLoadingDialog import com.x8bit.bitwarden.ui.platform.components.BitwardenMediumTopAppBar import com.x8bit.bitwarden.ui.platform.components.BitwardenOverflowActionItem @@ -343,7 +344,10 @@ private fun VaultScreenScaffold( modifier = innerModifier, ) - is VaultState.ViewState.Loading -> VaultLoading(modifier = innerModifier) + is VaultState.ViewState.Loading -> BitwardenLoadingContent( + modifier = innerModifier, + ) + is VaultState.ViewState.NoItems -> VaultNoItems( modifier = innerModifier, addItemClickAction = addItemClickAction, @@ -352,8 +356,7 @@ private fun VaultScreenScaffold( is VaultState.ViewState.Error -> BitwardenErrorContent( message = viewState.message(), onTryAgainClick = tryAgainClick, - modifier = innerModifier - .padding(horizontal = 16.dp), + modifier = innerModifier, ) } }