From e678f2dc48bd31d1712ce69414989619a2d7a0be Mon Sep 17 00:00:00 2001 From: student-i-nikolaevskiy Date: Wed, 25 Feb 2026 11:30:53 +0300 Subject: [PATCH] changed ui --- app/src/main/AndroidManifest.xml | 2 +- .../myitschool/work/ui/root/RootActivity.kt | 2 + .../work/ui/screen/auth/AuthIntent.kt | 4 +- .../work/ui/screen/auth/AuthScreen.kt | 70 ++++++++++++++----- app/src/main/res/values/strings.xml | 10 ++- 5 files changed, 67 insertions(+), 21 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a2c02bd..ac75dc3 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -18,7 +18,7 @@ diff --git a/app/src/main/java/ru/myitschool/work/ui/root/RootActivity.kt b/app/src/main/java/ru/myitschool/work/ui/root/RootActivity.kt index d373d0c..82b09f5 100644 --- a/app/src/main/java/ru/myitschool/work/ui/root/RootActivity.kt +++ b/app/src/main/java/ru/myitschool/work/ui/root/RootActivity.kt @@ -1,6 +1,7 @@ package ru.myitschool.work.ui.root import android.os.Bundle +import android.view.WindowManager.LayoutParams import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge @@ -16,6 +17,7 @@ class RootActivity : ComponentActivity() { super.onCreate(savedInstanceState) enableEdgeToEdge() actionBar?.hide() + window.setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE) setContent { WorkTheme { Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding -> diff --git a/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthIntent.kt b/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthIntent.kt index 74f200a..b4aec57 100644 --- a/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthIntent.kt +++ b/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthIntent.kt @@ -1,6 +1,6 @@ package ru.myitschool.work.ui.screen.auth sealed interface AuthIntent { - data class Send(val text: String): AuthIntent - data class TextInput(val text: String): AuthIntent + data class Send(val login: String, val password: String): AuthIntent + data class TextInput(val login: String, val password: String): AuthIntent } \ No newline at end of file diff --git a/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthScreen.kt b/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthScreen.kt index 4b91b98..5073c93 100644 --- a/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthScreen.kt +++ b/app/src/main/java/ru/myitschool/work/ui/screen/auth/AuthScreen.kt @@ -5,11 +5,17 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.imePadding import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll import androidx.compose.material3.Button import androidx.compose.material3.CircularProgressIndicator +import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Text import androidx.compose.material3.TextField import androidx.compose.runtime.Composable @@ -23,6 +29,7 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp @@ -51,13 +58,27 @@ fun AuthScreen( Column( modifier = Modifier .fillMaxSize() - .padding(all = 24.dp), + .padding(horizontal = 48.dp) + .verticalScroll(rememberScrollState()) + .imePadding(), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center ) { + Icon( + painter = painterResource(R.drawable.difference), + contentDescription = stringResource(R.string.icon_alter), + tint = MaterialTheme.colorScheme.primary, + modifier = Modifier.size(184.dp) + ) + Spacer(modifier = Modifier.size(48.dp)) Text( - text = stringResource(R.string.auth_title), - style = MaterialTheme.typography.headlineSmall, + text = stringResource(R.string.auth_title_1), + style = MaterialTheme.typography.headlineLarge, + textAlign = TextAlign.Center + ) + Text( + text = stringResource(R.string.auth_title_2), + style = MaterialTheme.typography.titleLarge, textAlign = TextAlign.Center ) when (val currentState = state) { @@ -76,26 +97,43 @@ private fun Content( viewModel: AuthViewModel, state: AuthState.Data ) { - var inputText by remember { mutableStateOf("") } - Spacer(modifier = Modifier.size(16.dp)) - TextField( + var login by remember { mutableStateOf("") } + var password by remember { mutableStateOf("") } + + Spacer(modifier = Modifier.size(48.dp)) + OutlinedTextField( modifier = Modifier.testTag(TestIds.Auth.CODE_INPUT).fillMaxWidth(), - value = inputText, + value = login, onValueChange = { - inputText = it - viewModel.onIntent(AuthIntent.TextInput(it)) + login = it + viewModel.onIntent(AuthIntent.TextInput(login, password)) }, - label = { Text(stringResource(R.string.auth_label)) } + placeholder = { Text(stringResource(R.string.auth_placeholder_login)) }, + label = { Text(stringResource(R.string.auth_label_login)) } ) Spacer(modifier = Modifier.size(16.dp)) - Button( - modifier = Modifier.testTag(TestIds.Auth.SIGN_BUTTON).fillMaxWidth(), - onClick = { - viewModel.onIntent(AuthIntent.Send(inputText)) + OutlinedTextField( + modifier = Modifier.testTag(TestIds.Auth.CODE_INPUT).fillMaxWidth(), + value = password, + onValueChange = { + password = it + viewModel.onIntent(AuthIntent.TextInput(login, password)) }, - enabled = state.isEnabledSend + placeholder = { Text(stringResource(R.string.auth_placeholder_password)) }, + label = { Text(stringResource(R.string.auth_label_passord)) } + ) + Spacer(modifier = Modifier.size(20.dp)) + Button( + modifier = Modifier.testTag(TestIds.Auth.SIGN_BUTTON).fillMaxWidth().height(64.dp), + onClick = { + viewModel.onIntent(AuthIntent.Send(login, password)) + }, + enabled = state.isEnabledSend, ) { - Text(stringResource(R.string.auth_sign_in)) + Text( + text = stringResource(R.string.auth_sign_in), + style = MaterialTheme.typography.titleMedium, + ) } if (state.error != null) { Text( diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a9273cf..82b7cfd 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,8 +1,12 @@ Work RootActivity - Привет! Введи код для авторизации - Код + Войдите + Используя аккаунт S-App + Логин + Введите логин + Пароль + Введите пароль Войти Обновить @@ -12,4 +16,6 @@ Забронировать Назад Всё забронировано + + Иконка \ No newline at end of file