diff options
| author | David Göransson <david.goransson90@gmail.com> | 2023-09-26 07:39:32 +0200 |
|---|---|---|
| committer | David Göransson <david.goransson90@gmail.com> | 2023-09-27 08:23:26 +0200 |
| commit | 1988046e5f10391d5de2b97557d6fc15f85284cf (patch) | |
| tree | b6c312e92f7d11b5ea18167b518d2f7eb1deeedc /android | |
| parent | badf818fc79cc4fd4d996da0478d942e3ec55adc (diff) | |
| download | mullvadvpn-1988046e5f10391d5de2b97557d6fc15f85284cf.tar.xz mullvadvpn-1988046e5f10391d5de2b97557d6fc15f85284cf.zip | |
Rename state to uiState
Diffstat (limited to 'android')
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/LoginScreen.kt | 52 | ||||
| -rw-r--r-- | android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/LoginFragment.kt | 4 |
2 files changed, 29 insertions, 27 deletions
diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/LoginScreen.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/LoginScreen.kt index 4d15c351ed..df815e3dec 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/LoginScreen.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/compose/screen/LoginScreen.kt @@ -59,36 +59,38 @@ import net.mullvad.mullvadvpn.lib.theme.Dimens @Preview @Composable private fun PreviewIdle() { - AppTheme { LoginScreen(state = LoginUiState()) } + AppTheme { LoginScreen(uiState = LoginUiState()) } } @Preview @Composable private fun PreviewLoggingIn() { - AppTheme { LoginScreen(state = LoginUiState(loginState = Loading.LoggingIn)) } + AppTheme { LoginScreen(uiState = LoginUiState(loginState = Loading.LoggingIn)) } } @Preview @Composable private fun PreviewCreatingAccount() { - AppTheme { LoginScreen(state = LoginUiState(loginState = Loading.CreatingAccount)) } + AppTheme { LoginScreen(uiState = LoginUiState(loginState = Loading.CreatingAccount)) } } @Preview @Composable private fun PreviewLoginError() { - AppTheme { LoginScreen(state = LoginUiState(loginState = Idle(LoginError.InvalidCredentials))) } + AppTheme { + LoginScreen(uiState = LoginUiState(loginState = Idle(LoginError.InvalidCredentials))) + } } @Preview @Composable private fun PreviewLoginSuccess() { - AppTheme { LoginScreen(state = LoginUiState(loginState = Success)) } + AppTheme { LoginScreen(uiState = LoginUiState(loginState = Success)) } } @Composable fun LoginScreen( - state: LoginUiState, + uiState: LoginUiState, onLoginClick: (String) -> Unit = {}, onCreateAccountClick: () -> Unit = {}, onDeleteHistoryClick: () -> Unit = {}, @@ -113,14 +115,14 @@ fun LoginScreen( ) { Spacer(modifier = Modifier.weight(1f)) LoginIcon( - state.loginState, + uiState.loginState, modifier = Modifier.align(Alignment.CenterHorizontally) .padding(bottom = Dimens.largePadding) ) - LoginContent(state, onAccountNumberChange, onLoginClick, onDeleteHistoryClick) + LoginContent(uiState, onAccountNumberChange, onLoginClick, onDeleteHistoryClick) Spacer(modifier = Modifier.weight(3f)) - CreateAccountPanel(onCreateAccountClick, isEnabled = state.loginState is Idle) + CreateAccountPanel(onCreateAccountClick, isEnabled = uiState.loginState is Idle) } } } @@ -128,14 +130,14 @@ fun LoginScreen( @Composable @OptIn(ExperimentalMaterial3Api::class) private fun LoginContent( - state: LoginUiState, + uiState: LoginUiState, onAccountNumberChange: (String) -> Unit, onLoginClick: (String) -> Unit, onDeleteHistoryClick: () -> Unit ) { Column(modifier = Modifier.fillMaxWidth().padding(horizontal = Dimens.sideMargin)) { Text( - text = state.loginState.title(), + text = uiState.loginState.title(), style = MaterialTheme.typography.headlineLarge, color = MaterialTheme.colorScheme.onPrimary, modifier = Modifier.fillMaxWidth().padding(bottom = Dimens.smallPadding) @@ -145,10 +147,10 @@ private fun LoginContent( Text( modifier = Modifier.padding(bottom = Dimens.smallPadding), - text = state.loginState.supportingText() ?: "", + text = uiState.loginState.supportingText() ?: "", style = MaterialTheme.typography.labelMedium, color = - if (state.loginState.isError()) { + if (uiState.loginState.isError()) { MaterialTheme.colorScheme.error } else { MaterialTheme.colorScheme.onPrimary @@ -160,10 +162,10 @@ private fun LoginContent( Modifier.then( // Using menuAnchor while not showing a dropdown will cause keyboard to // open and app to crash on navigation - if (state.lastUsedAccount != null) Modifier.menuAnchor() else Modifier + if (uiState.lastUsedAccount != null) Modifier.menuAnchor() else Modifier ) .fillMaxWidth(), - value = state.accountNumberInput, + value = uiState.accountNumberInput, label = { Text( text = stringResource(id = R.string.login_description), @@ -171,18 +173,18 @@ private fun LoginContent( ) }, keyboardActions = - KeyboardActions(onDone = { onLoginClick(state.accountNumberInput) }), + KeyboardActions(onDone = { onLoginClick(uiState.accountNumberInput) }), keyboardOptions = KeyboardOptions( imeAction = - if (state.loginButtonEnabled) ImeAction.Done else ImeAction.None, + if (uiState.loginButtonEnabled) ImeAction.Done else ImeAction.None, keyboardType = KeyboardType.NumberPassword ), onValueChange = onAccountNumberChange, singleLine = true, maxLines = 1, visualTransformation = accountTokenVisualTransformation(), - enabled = state.loginState is Idle, + enabled = uiState.loginState is Idle, colors = TextFieldDefaults.colors( focusedTextColor = Color.Black, @@ -198,11 +200,11 @@ private fun LoginContent( focusedLeadingIconColor = Color.Black, unfocusedSupportingTextColor = Color.Black, ), - isError = state.loginState.isError(), + isError = uiState.loginState.isError(), ) // If we have a previous account, show dropdown for quick re-login - state.lastUsedAccount?.let { token -> + uiState.lastUsedAccount?.let { token -> DropdownMenu( modifier = Modifier.background(MaterialTheme.colorScheme.background) @@ -233,8 +235,8 @@ private fun LoginContent( Spacer(modifier = Modifier.size(Dimens.largePadding)) ActionButton( - isEnabled = state.loginButtonEnabled, - onClick = { onLoginClick(state.accountNumberInput) }, + isEnabled = uiState.loginButtonEnabled, + onClick = { onLoginClick(uiState.accountNumberInput) }, colors = ButtonDefaults.buttonColors( contentColor = MaterialTheme.colorScheme.onPrimary, @@ -247,14 +249,14 @@ private fun LoginContent( } @Composable -private fun LoginIcon(state: LoginState, modifier: Modifier = Modifier) { +private fun LoginIcon(loginState: LoginState, modifier: Modifier = Modifier) { Box( contentAlignment = Alignment.Center, modifier = modifier.size(Dimens.loginIconContainerSize) ) { - when (state) { + when (loginState) { is Idle -> - if (state.loginError != null) { + if (loginState.loginError != null) { Image( painter = painterResource(id = R.drawable.icon_fail), contentDescription = stringResource(id = R.string.login_fail_title), diff --git a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/LoginFragment.kt b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/LoginFragment.kt index 175d34df82..466b0eca85 100644 --- a/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/LoginFragment.kt +++ b/android/app/src/main/kotlin/net/mullvad/mullvadvpn/ui/fragment/LoginFragment.kt @@ -38,7 +38,7 @@ class LoginFragment : BaseFragment(), NavigationBarPainter { return inflater.inflate(R.layout.fragment_compose, container, false).apply { findViewById<ComposeView>(R.id.compose_view).setContent { AppTheme { - val loginUiState by vm.uiState.collectAsState() + val uiState by vm.uiState.collectAsState() LaunchedEffect(Unit) { vm.viewActions.collect { when (it) { @@ -52,7 +52,7 @@ class LoginFragment : BaseFragment(), NavigationBarPainter { } } LoginScreen( - loginUiState, + uiState, vm::login, vm::createAccount, vm::clearAccountHistory, |
