PM-10729: Add a helper method for determining if the app is in portrait orientation (#3698)

This commit is contained in:
David Perez 2024-08-08 12:24:12 -05:00 committed by GitHub
parent a57a7e099c
commit 6c5c0c7c03
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 28 additions and 19 deletions

View file

@ -1,6 +1,5 @@
package com.x8bit.bitwarden.ui.auth.feature.welcome
import android.content.res.Configuration
import androidx.compose.animation.animateColorAsState
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.Image
@ -46,6 +45,7 @@ import com.x8bit.bitwarden.ui.platform.components.button.BitwardenFilledButton
import com.x8bit.bitwarden.ui.platform.components.button.BitwardenTextButton
import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold
import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter
import com.x8bit.bitwarden.ui.platform.util.isPortrait
/**
* Top level composable for the welcome screen.
@ -107,7 +107,7 @@ private fun WelcomeScreenContent(
onLoginClick: () -> Unit,
modifier: Modifier = Modifier,
) {
val isLandscape = LocalConfiguration.current.orientation == Configuration.ORIENTATION_LANDSCAPE
val isLandscape = !LocalConfiguration.current.isPortrait
val horizontalPadding = if (isLandscape) 128.dp else 16.dp
LaunchedEffect(pagerState.currentPage) {

View file

@ -0,0 +1,15 @@
@file:OmitFromCoverage
package com.x8bit.bitwarden.ui.platform.util
import android.content.res.Configuration
import com.x8bit.bitwarden.data.platform.annotation.OmitFromCoverage
/**
* A helper method to indicate if the current UI configuration is portrait or not.
*/
val Configuration.isPortrait: Boolean
get() = when (this.orientation) {
Configuration.ORIENTATION_LANDSCAPE -> false
else -> true
}

View file

@ -1,6 +1,5 @@
package com.x8bit.bitwarden.ui.vault.feature.qrcodescan
import android.content.res.Configuration
import android.view.ViewGroup
import android.view.ViewGroup.LayoutParams.MATCH_PARENT
import android.widget.Toast
@ -59,6 +58,7 @@ import com.x8bit.bitwarden.ui.platform.components.appbar.BitwardenTopAppBar
import com.x8bit.bitwarden.ui.platform.components.scaffold.BitwardenScaffold
import com.x8bit.bitwarden.ui.platform.components.text.BitwardenClickableText
import com.x8bit.bitwarden.ui.platform.components.util.rememberVectorPainter
import com.x8bit.bitwarden.ui.platform.util.isPortrait
import com.x8bit.bitwarden.ui.vault.feature.qrcodescan.util.QrCodeAnalyzer
import com.x8bit.bitwarden.ui.vault.feature.qrcodescan.util.QrCodeAnalyzerImpl
import java.util.concurrent.Executors
@ -81,8 +81,6 @@ fun QrCodeScanScreen(
{ viewModel.trySendAction(QrCodeScanAction.QrCodeScanReceive(it)) }
}
val orientation = LocalConfiguration.current.orientation
val context = LocalContext.current
val onEnterCodeManuallyClick = remember(viewModel) {
@ -129,20 +127,16 @@ fun QrCodeScanScreen(
modifier = Modifier.padding(innerPadding),
)
when (orientation) {
Configuration.ORIENTATION_LANDSCAPE -> {
LandscapeQRCodeContent(
onEnterCodeManuallyClick = onEnterCodeManuallyClick,
modifier = Modifier.padding(innerPadding),
)
}
else -> {
PortraitQRCodeContent(
onEnterCodeManuallyClick = onEnterCodeManuallyClick,
modifier = Modifier.padding(innerPadding),
)
}
if (LocalConfiguration.current.isPortrait) {
PortraitQRCodeContent(
onEnterCodeManuallyClick = onEnterCodeManuallyClick,
modifier = Modifier.padding(innerPadding),
)
} else {
LandscapeQRCodeContent(
onEnterCodeManuallyClick = onEnterCodeManuallyClick,
modifier = Modifier.padding(innerPadding),
)
}
}
}