From 00e36e16fc57302265f625d0646f8055d3e141cc Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 18 Apr 2025 09:54:20 +0300 Subject: [PATCH] screens_methods --- app/build.gradle.kts | 2 + .../java/com/example/testktor/MainActivity.kt | 24 +- .../main/java/com/example/testktor/Models.kt | 45 +++ .../main/java/com/example/testktor/getUser.kt | 45 +-- .../testktor/method/auth/AuthMethods.kt | 166 ++++++++ .../testktor/method/auth/BeforeAuthMethods.kt | 66 +++ .../method/auth/ForgotPasswordMethods.kt | 42 ++ .../method/auth/RegistrationMethods.kt | 163 ++++++++ .../method/auth/ResetPasswordMethods.kt | 55 +++ .../method/main/MainSneakersMethods.kt | 381 ++++++++++++++++++ .../testktor/screen/auth/AuthScreen.kt | 102 +---- .../testktor/screen/auth/BeforeAuthScreen.kt | 61 +-- .../screen/auth/ForgotPasswordScreen.kt | 25 +- .../screen/auth/MainSneakersScreen.kt | 63 --- .../screen/auth/RegistrationScreen.kt | 176 +------- .../screen/auth/ResetPasswordScreen.kt | 44 +- .../screen/main/MainSneakersScreen.kt | 99 +++++ app/src/main/res/drawable/add_sneaker.png | Bin 0 -> 835 bytes app/src/main/res/drawable/bottom.png | Bin 0 -> 10126 bytes app/src/main/res/drawable/buy_sneaker.png | Bin 0 -> 608 bytes app/src/main/res/drawable/frame.png | Bin 0 -> 699 bytes app/src/main/res/drawable/frame31.png | Bin 0 -> 937 bytes app/src/main/res/drawable/group12.png | Bin 0 -> 2363 bytes app/src/main/res/drawable/group123.png | Bin 0 -> 14743 bytes app/src/main/res/drawable/hamburger.png | Bin 0 -> 191 bytes app/src/main/res/drawable/heart.png | Bin 0 -> 650 bytes app/src/main/res/drawable/heart_sneaker.png | Bin 0 -> 715 bytes app/src/main/res/drawable/home.png | Bin 0 -> 553 bytes app/src/main/res/drawable/icon.png | Bin 0 -> 631 bytes app/src/main/res/drawable/img.png | Bin 0 -> 45330 bytes app/src/main/res/drawable/img_1.png | Bin 0 -> 45330 bytes 31 files changed, 1058 insertions(+), 501 deletions(-) create mode 100644 app/src/main/java/com/example/testktor/Models.kt create mode 100644 app/src/main/java/com/example/testktor/method/auth/AuthMethods.kt create mode 100644 app/src/main/java/com/example/testktor/method/auth/BeforeAuthMethods.kt create mode 100644 app/src/main/java/com/example/testktor/method/auth/ForgotPasswordMethods.kt create mode 100644 app/src/main/java/com/example/testktor/method/auth/RegistrationMethods.kt create mode 100644 app/src/main/java/com/example/testktor/method/auth/ResetPasswordMethods.kt create mode 100644 app/src/main/java/com/example/testktor/method/main/MainSneakersMethods.kt delete mode 100644 app/src/main/java/com/example/testktor/screen/auth/MainSneakersScreen.kt create mode 100644 app/src/main/java/com/example/testktor/screen/main/MainSneakersScreen.kt create mode 100644 app/src/main/res/drawable/add_sneaker.png create mode 100644 app/src/main/res/drawable/bottom.png create mode 100644 app/src/main/res/drawable/buy_sneaker.png create mode 100644 app/src/main/res/drawable/frame.png create mode 100644 app/src/main/res/drawable/frame31.png create mode 100644 app/src/main/res/drawable/group12.png create mode 100644 app/src/main/res/drawable/group123.png create mode 100644 app/src/main/res/drawable/hamburger.png create mode 100644 app/src/main/res/drawable/heart.png create mode 100644 app/src/main/res/drawable/heart_sneaker.png create mode 100644 app/src/main/res/drawable/home.png create mode 100644 app/src/main/res/drawable/icon.png create mode 100644 app/src/main/res/drawable/img.png create mode 100644 app/src/main/res/drawable/img_1.png diff --git a/app/build.gradle.kts b/app/build.gradle.kts index ace528d..acd9028 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -90,4 +90,6 @@ dependencies { implementation(platform("io.github.jan-tennert.supabase:bom:3.0.3")) implementation("io.github.jan-tennert.supabase:postgrest-kt") implementation("io.ktor:ktor-client-android:3.0.3") + + implementation("io.coil-kt:coil-compose:2.4.0") } \ No newline at end of file diff --git a/app/src/main/java/com/example/testktor/MainActivity.kt b/app/src/main/java/com/example/testktor/MainActivity.kt index 54ee8a0..1c0fddb 100644 --- a/app/src/main/java/com/example/testktor/MainActivity.kt +++ b/app/src/main/java/com/example/testktor/MainActivity.kt @@ -1,18 +1,9 @@ package com.example.testktor import android.os.Bundle -import android.util.Log import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.padding -import androidx.compose.material3.Scaffold -import androidx.compose.material3.Text -import androidx.compose.material3.CircularProgressIndicator -import androidx.compose.runtime.* -import androidx.compose.ui.Modifier -import androidx.compose.ui.tooling.preview.Preview import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController @@ -20,25 +11,12 @@ import com.example.matuletest.ui.auth.FirstScreen import com.example.matuletest.ui.auth.SliderScreen import com.example.testktor.screen.auth.AuthScreen import com.example.testktor.screen.auth.ForgotPasswordScreen -import com.example.testktor.screen.auth.MainSneakersScreen +import com.example.testktor.screen.main.MainSneakersScreen import com.example.testktor.screen.auth.RegScreen import com.example.testktor.screen.auth.ResetPasswordScreen //import com.example.testktor.auth.AuthScreen //import com.example.testktor.auth.RegistrationScreen import com.example.testktor.ui.theme.TestKtorTheme -import io.ktor.client.* -import io.ktor.client.request.* -import io.ktor.client.engine.android.* -import io.ktor.client.plugins.contentnegotiation.* -import io.ktor.client.statement.HttpResponse -import io.ktor.client.statement.bodyAsText -import io.ktor.http.ContentType -import io.ktor.http.contentType -import kotlinx.coroutines.launch -import kotlinx.serialization.Serializable -import io.ktor.serialization.kotlinx.json.* -import kotlinx.serialization.decodeFromString -import kotlinx.serialization.json.Json class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { diff --git a/app/src/main/java/com/example/testktor/Models.kt b/app/src/main/java/com/example/testktor/Models.kt new file mode 100644 index 0000000..430a32d --- /dev/null +++ b/app/src/main/java/com/example/testktor/Models.kt @@ -0,0 +1,45 @@ +package com.example.testktor + +import kotlinx.serialization.Serializable + +@Serializable +data class User( + val id: Int, + val name: String, + val email: String, + val password: String, + val resetToken: String) + +@Serializable +data class Sneaker( + val id: Int, + val name: String, + val description: String, + val cost: Double, + val discount: Int, + val photo: String, + val gender: Char, + val bootSize: Int, + val categoryId: Int +) + +@Serializable +data class SneakerShop( + val sneaker: Sneaker, + var likeOrNot: Boolean +) + +@Serializable +data class Category( + val id: Int, + val name: String, + val description: String +) + +@Serializable +data class SneakerCategoryResponse( + val sneakers: List, + val categories: List +) + +var Token: String = ""; \ No newline at end of file diff --git a/app/src/main/java/com/example/testktor/getUser.kt b/app/src/main/java/com/example/testktor/getUser.kt index d3e34d4..304f80f 100644 --- a/app/src/main/java/com/example/testktor/getUser.kt +++ b/app/src/main/java/com/example/testktor/getUser.kt @@ -34,40 +34,6 @@ import kotlinx.serialization.json.Json import java.math.BigDecimal import java.sql.Time -@Serializable -data class User( - val id: Int, - val name: String, - val email: String, - val password: String, - val resetToken: String) - -//@Serializable -//data class Sneaker( -// val id: Int, -// val name: String, -// val description: String, -// @Contextual val cost: BigDecimal, -// val discount: Int, -// val photo: String, -// val gender: Char, -// val bootSize: Int -//) - -@Serializable -data class Sneaker( - val id: Int, - val name: String, - val description: String, - val cost: Double, - val discount: Int, - val photo: String, - val gender: Char, - val bootSize: Int -) - -var Token: String = ""; - suspend fun authUser(client: HttpClient, email: String, password: String): Boolean { try { val response: HttpResponse = client.post("http://10.0.2.2:8080/login") { @@ -153,8 +119,8 @@ suspend fun resetPassword(client: HttpClient, code: String, newPassword: String) } } -suspend fun getSneakers(client: HttpClient): List{ - try { +suspend fun getSneakers(client: HttpClient): SneakerCategoryResponse?{ + return try { val response: HttpResponse = client.get("http://10.0.2.2:8080/mainWindow") { headers { append(HttpHeaders.Authorization, "Bearer $Token") @@ -165,11 +131,10 @@ suspend fun getSneakers(client: HttpClient): List{ Log.d("getSneakers", "Response: $responseBody") val json = Json { ignoreUnknownKeys = true } - val responseMap = json.decodeFromString>>(responseBody) + json.decodeFromString(responseBody) - return responseMap["sneakers"] ?: emptyList() } catch (e: Exception) { - Log.e("getSneakers", "error fetching sneakers", e) - return emptyList() + Log.e("getSneakers", "error fetching sneakers or category", e) + null } } diff --git a/app/src/main/java/com/example/testktor/method/auth/AuthMethods.kt b/app/src/main/java/com/example/testktor/method/auth/AuthMethods.kt new file mode 100644 index 0000000..e00c411 --- /dev/null +++ b/app/src/main/java/com/example/testktor/method/auth/AuthMethods.kt @@ -0,0 +1,166 @@ +package com.example.testktor.method.auth + +import androidx.compose.foundation.Canvas +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.text.ClickableText +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.ArrowBack +import androidx.compose.material.icons.filled.Lock +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.Text +import androidx.compose.material3.TextField +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.buildAnnotatedString +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.input.PasswordVisualTransformation +import androidx.compose.ui.text.input.VisualTransformation +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavController + +@Composable +fun ButtonBack(navController: NavController){ + Row( + modifier = Modifier + .fillMaxWidth() + .padding(start = 20.dp, top = 20.dp), + horizontalArrangement = Arrangement.Start + ) { + IconButton(onClick = { navController.navigate("slider_screen") }) { + Box( + contentAlignment = Alignment.Center, + modifier = Modifier.size(56.dp) + ) { + Canvas(modifier = Modifier.matchParentSize()) { + drawCircle(color = Color.LightGray) + } + Icon( + imageVector = Icons.Default.ArrowBack, + contentDescription = "Назад", + modifier = Modifier.size(28.dp), + tint = Color.Black + ) + } + } + } +} + +@Composable +fun TopBar(email: String, + onEmailChange: (String) -> Unit, + password: String, + onPasswordChange: (String) -> Unit +){ + var passwordVisible by remember { mutableStateOf(false) } + + Text( + text = "Привет!", + style = TextStyle(fontSize = 32.sp, fontWeight = FontWeight.Bold), + modifier = Modifier.height(60.dp).padding(bottom = 8.dp) + ) + + Text( + text = "Заполните Свои Данные Или Продолжите Через Социальные Медиа", + modifier = Modifier + .fillMaxWidth() + .padding(bottom = 20.dp), + style = TextStyle(fontSize = 16.sp), + textAlign = TextAlign.Center, + maxLines = 2 + ) + + Text(text = "Email", modifier = Modifier.padding(end = 280.dp)) + TextField( + modifier = Modifier.width(350.dp).height(70.dp).padding(bottom = 16.dp), + value = email, + onValueChange = { onEmailChange(it)}, + ) + + Text(text = "Password", modifier = Modifier.padding(end = 250.dp)) + TextField( + modifier = Modifier.width(350.dp).height(70.dp).padding(bottom = 16.dp), + value = password, + onValueChange = {onPasswordChange(it)}, + visualTransformation = if (!passwordVisible) PasswordVisualTransformation() else VisualTransformation.None, + trailingIcon = { + IconButton(onClick = { passwordVisible = !passwordVisible }) { + Icon( + imageVector = Icons.Default.Lock, + contentDescription = "Lock", + tint = Color.Gray + ) + } + } + ) +} + +@Composable +fun Restore(navController: NavController) { + Row( + modifier = Modifier + .fillMaxWidth() + .padding(top = 6.dp, bottom = 20.dp, end = 16.dp), + horizontalArrangement = Arrangement.End + ) { + ClickableText( + text = buildAnnotatedString { append("Восстановить") }, + onClick = { + navController.navigate("forgotPassword_screen") + }, + style = TextStyle( + fontSize = 16.sp, + color = Color.LightGray + ), + ) + } +} + +@Composable +fun BotBar(navController: NavController) { + Box( + modifier = Modifier + .fillMaxSize() + .padding(16.dp) + ) { + Row( + modifier = Modifier + .align(Alignment.BottomCenter) + .padding(bottom = 16.dp), + horizontalArrangement = Arrangement.Center + ) { + Text( + text = "Вы впервые? ", + style = TextStyle(fontSize = 16.sp, color = Color.Gray) + ) + + ClickableText( + text = buildAnnotatedString { append("Создать пользователя") }, + onClick = { + navController.navigate("registration_screen") + }, + style = TextStyle( + fontSize = 16.sp, + color = Color.Black + ), + ) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/testktor/method/auth/BeforeAuthMethods.kt b/app/src/main/java/com/example/testktor/method/auth/BeforeAuthMethods.kt new file mode 100644 index 0000000..a0f05fd --- /dev/null +++ b/app/src/main/java/com/example/testktor/method/auth/BeforeAuthMethods.kt @@ -0,0 +1,66 @@ +package com.example.testktor.method.auth + +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.material3.Slider +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.font.FontStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp + +@Composable +fun Textik(imageId: Int, textList: List, textList2: List, currentIndex: Int){ + Image( + painter = painterResource(id = imageId), + contentDescription = "Изображение", + modifier = androidx.compose.ui.Modifier.width(670.dp).height(600.dp).padding(start = 20.dp) + ) + + Text( + color = Color.White, + fontStyle = FontStyle.Italic, + text = textList[currentIndex], + fontSize = 24.sp, + fontWeight = FontWeight.Bold, + textAlign = TextAlign.Center, + modifier = androidx.compose.ui.Modifier + .fillMaxWidth() + .padding(top = 40.dp) + .width(700.dp).height(30.dp) + ) + Text( + color = Color.White, + fontStyle = FontStyle.Italic, + text = textList2[currentIndex], + fontSize = 18.sp, + fontWeight = FontWeight.Bold, + textAlign = TextAlign.Center, + modifier = androidx.compose.ui.Modifier + .fillMaxWidth() + .padding(top = 40.dp) + ) +} + +@Composable +fun Sliderik(sliderValue: Float, maxIndex: Int, onClick: (Float) -> Unit, ){ + Slider( + value = sliderValue, + onValueChange = onClick, + valueRange = 0f..maxIndex.toFloat(), + steps = maxIndex - 1, + colors = androidx.compose.material3.SliderDefaults.colors( + thumbColor = Color.White, + activeTrackColor = Color(0xFF0076B1), + inactiveTrackColor = Color(0xFFB0B0B0) + ), + modifier = androidx.compose.ui.Modifier.fillMaxWidth() + ) +} diff --git a/app/src/main/java/com/example/testktor/method/auth/ForgotPasswordMethods.kt b/app/src/main/java/com/example/testktor/method/auth/ForgotPasswordMethods.kt new file mode 100644 index 0000000..2e90472 --- /dev/null +++ b/app/src/main/java/com/example/testktor/method/auth/ForgotPasswordMethods.kt @@ -0,0 +1,42 @@ +package com.example.testktor.method.auth + +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.material3.Text +import androidx.compose.material3.TextField +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp + + +@Composable +fun BarForgot(emailIn: String, onEmailChane: (String) -> Unit){ + Text( + text = "Забыл Пароль", + style = TextStyle(fontSize = 32.sp, fontWeight = FontWeight.Bold), + modifier = Modifier.height(60.dp).padding(bottom = 20.dp) + ) + + Text( + text = "Введите свою учетную запись для сброса", + modifier = Modifier + .fillMaxWidth() + .padding(bottom = 20.dp), + style = TextStyle(fontSize = 16.sp), + textAlign = TextAlign.Center, + maxLines = 2 + ) + + Text(text = "Email", modifier = Modifier.padding(end = 255.dp)) + TextField( + modifier = Modifier.width(300.dp).height(70.dp).padding(bottom = 16.dp), + value = emailIn, + onValueChange = {onEmailChane(it)} + ) +} \ No newline at end of file diff --git a/app/src/main/java/com/example/testktor/method/auth/RegistrationMethods.kt b/app/src/main/java/com/example/testktor/method/auth/RegistrationMethods.kt new file mode 100644 index 0000000..2cdfbdb --- /dev/null +++ b/app/src/main/java/com/example/testktor/method/auth/RegistrationMethods.kt @@ -0,0 +1,163 @@ +package com.example.testktor.method.auth + +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Row +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.padding +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.text.ClickableText +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Lock +import androidx.compose.material3.Checkbox +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.Text +import androidx.compose.material3.TextField +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.SpanStyle +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.buildAnnotatedString +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.input.PasswordVisualTransformation +import androidx.compose.ui.text.input.VisualTransformation +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.text.style.TextDecoration +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavController + +@Composable +fun TopBarReg(name: String, + onNameChange: (String) -> Unit, + email: String, + onEmailChange: (String) -> Unit, + password: String, + onPasswordChange: (String) -> Unit +){ + var passwordVisible by remember { mutableStateOf(false) } + var isChecked by remember { mutableStateOf(false) } + + Text( + text = "Регистрация", + style = TextStyle(fontSize = 32.sp, fontWeight = FontWeight.Bold), + modifier = Modifier.height(60.dp).padding(bottom = 20.dp) + ) + + Text( + text = "Заполните Свои данные или продолжите через социальные медиа", + modifier = Modifier + .fillMaxWidth() + .padding(bottom = 20.dp), + style = TextStyle(fontSize = 16.sp), + textAlign = TextAlign.Center, + maxLines = 2 + ) + + Text(text = "Ваше имя", modifier = Modifier.padding(end = 270.dp)) + TextField( + modifier = Modifier.width(350.dp).height(70.dp).padding(bottom = 16.dp), + value = name, + onValueChange = {onNameChange(it)} + ) + + Text(text = "Email", modifier = Modifier.padding(end = 290.dp)) + TextField( + modifier = Modifier.width(350.dp).height(70.dp).padding(bottom = 16.dp), + value = email, + onValueChange = {onEmailChange(it)} + ) + + Text(text = "Password", modifier = Modifier.padding(end = 260.dp)) + TextField( + modifier = Modifier.width(350.dp).height(70.dp).padding(bottom = 16.dp), + value = password, + onValueChange = {onPasswordChange(it)}, + visualTransformation = if (!passwordVisible) PasswordVisualTransformation() else VisualTransformation.None, + trailingIcon = { + IconButton(onClick = { passwordVisible = !passwordVisible }) { + Icon( + imageVector = Icons.Default.Lock, + contentDescription = "Lock", + tint = Color.Gray + ) + } + } + ) + + Row( + modifier = Modifier + .fillMaxWidth() + .padding(16.dp), + horizontalArrangement = Arrangement.Start, + verticalAlignment = Alignment.CenterVertically + ) { + Checkbox( + checked = isChecked, + onCheckedChange = { isChecked = it } + ) + + Spacer(modifier = Modifier.width(8.dp)) + + ClickableText( + text = buildAnnotatedString { + append("Даю согласие на обработку персональных данных") + addStyle( + style = SpanStyle( + color = Color.Black, + textDecoration = TextDecoration.Underline + ), + start = 0, + end = this.length + ) + }, + onClick = { /* */ }, + modifier = Modifier + .fillMaxWidth() + .padding(bottom = 20.dp), + style = TextStyle(fontSize = 16.sp, textAlign = TextAlign.Center) + ) + } +} + +@Composable +fun BotBarReg(navController: NavController) { + Box( + modifier = Modifier + .fillMaxSize() + .padding(16.dp) + ) { + Row( + modifier = Modifier + .align(Alignment.BottomCenter) + .padding(bottom = 16.dp), + horizontalArrangement = Arrangement.Center + ) { + Text( + text = "Есть аккаунт? ", + style = TextStyle(fontSize = 16.sp, color = Color.Gray) + ) + + ClickableText( + text = buildAnnotatedString { append("Войти") }, + onClick = { + navController.navigate("auth_screen") + }, + style = TextStyle( + fontSize = 16.sp, + color = Color.Black + ), + ) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/testktor/method/auth/ResetPasswordMethods.kt b/app/src/main/java/com/example/testktor/method/auth/ResetPasswordMethods.kt new file mode 100644 index 0000000..60a6cab --- /dev/null +++ b/app/src/main/java/com/example/testktor/method/auth/ResetPasswordMethods.kt @@ -0,0 +1,55 @@ +package com.example.testktor.method.auth + +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.width +import androidx.compose.material3.Text +import androidx.compose.material3.TextField +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp + +@Composable +fun TopBarReset(){ + Text( + text = "ОТР Проверка", + style = TextStyle(fontSize = 32.sp, fontWeight = FontWeight.Bold), + modifier = Modifier.height(60.dp).padding(bottom = 20.dp) + ) + + Text( + text = "Пожалуйста, проверьте свою электронную почту, чтобы увидеть код подтверждения", + modifier = Modifier + .fillMaxWidth() + .padding(bottom = 20.dp), + style = TextStyle(fontSize = 16.sp), + textAlign = TextAlign.Center, + maxLines = 3 + ) +} + + +@Composable +fun TextFieldsReset(codeIn: String, + onCodeChange: (String) -> Unit, + newPassword: String, + onNewPasswordChange: (String) -> Unit){ + Text(text = "OTP Code", modifier = Modifier.padding(end = 255.dp)) + TextField( + modifier = Modifier.width(350.dp).height(70.dp).padding(bottom = 16.dp), + value = codeIn, + onValueChange = {onCodeChange(it)} + ) + + Text(text = "New Password", modifier = Modifier.padding(end = 255.dp)) + TextField( + modifier = Modifier.width(300.dp).height(70.dp).padding(bottom = 16.dp), + value = newPassword, + onValueChange = {onNewPasswordChange(it)} + ) +} diff --git a/app/src/main/java/com/example/testktor/method/main/MainSneakersMethods.kt b/app/src/main/java/com/example/testktor/method/main/MainSneakersMethods.kt new file mode 100644 index 0000000..462dc81 --- /dev/null +++ b/app/src/main/java/com/example/testktor/method/main/MainSneakersMethods.kt @@ -0,0 +1,381 @@ +package com.example.testktor.method.main + +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.aspectRatio +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.offset +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width +import androidx.compose.foundation.lazy.LazyRow +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.text.ClickableText +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Add +import androidx.compose.material.icons.filled.Favorite +import androidx.compose.material.icons.filled.FavoriteBorder +import androidx.compose.material.icons.filled.Home +import androidx.compose.material.icons.filled.Notifications +import androidx.compose.material.icons.filled.Person +import androidx.compose.material.icons.filled.Search +import androidx.compose.material.icons.filled.ShoppingCart +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton +import androidx.compose.material3.Text +import androidx.compose.material3.TextField +import androidx.compose.material3.TextFieldDefaults +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.buildAnnotatedString +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import coil.compose.AsyncImage +import com.example.testktor.Category +import com.example.testktor.R +import com.example.testktor.Sneaker +import com.example.testktor.SneakerShop + +@Preview(showBackground = true) +@Composable +fun TopNavigationBar(){ + Row ( + modifier = Modifier + .fillMaxWidth() + .padding(16.dp), + verticalAlignment = Alignment.CenterVertically + ){ + IconButton(onClick = { /* TODO: действие кнопки */ }) { + Image( + painter = painterResource(id = R.drawable.hamburger), + contentDescription = "menu", + modifier = Modifier.size(40.dp) + ) + } + + Box( + modifier = Modifier + .fillMaxWidth() + .weight(1f), + contentAlignment = Alignment.Center + ) { + Text( + text = "Главная", + fontSize = 30.sp + ) + } + + IconButton(onClick = { /* TODO: действие кнопки */ }) { + Image( + painter = painterResource(id = R.drawable.frame31), + contentDescription = "menu", + modifier = Modifier.size(40.dp) + ) + } + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +fun Searchbar(searchBox: String, onSearchChange: (String) -> Unit){ + Row( + modifier = Modifier + .fillMaxWidth() + .padding(16.dp), + verticalAlignment = Alignment.CenterVertically + ){ + TextField( + modifier = Modifier + .width(300.dp) + .height(70.dp) + .padding(bottom = 16.dp), + value = searchBox, + onValueChange = { onSearchChange(it) }, + placeholder = { + Text( + text = "Поиск", + color = Color.Gray, + fontSize = 14.sp + ) + }, + colors = TextFieldDefaults.textFieldColors( + containerColor = Color.White, + focusedIndicatorColor = Color.Transparent, + unfocusedIndicatorColor = Color.Transparent, + cursorColor = Color.Black + ), + shape = RoundedCornerShape(12.dp), + leadingIcon = { + Icon( + imageVector = Icons.Default.Search, + contentDescription = "Search", + tint = Color.Gray + ) + } + ) + + IconButton(onClick = { /* TODO: действие кнопки */ }) { + Image( + painter = painterResource(id = R.drawable.group12), + contentDescription = "settings", + modifier = Modifier.size(60.dp) + ) + } + } +} + +@Composable +fun OverSmth(smth: String){ + Row( + modifier = Modifier + .fillMaxWidth() + .padding(16.dp), + verticalAlignment = Alignment.CenterVertically + ) { + ClickableText( + modifier = Modifier.weight(1f), + text = buildAnnotatedString { append(smth) }, + onClick = {/* TODO: действие кнопки */}, + style = TextStyle( + fontSize = 16.sp, + color = Color.Black + ), + ) + + ClickableText( + text = buildAnnotatedString { append("Все") }, + onClick = {/* TODO: действие кнопки */}, + style = TextStyle( + fontSize = 12.sp, + color = Color.Cyan + ), + ) + } +} + +@Preview(showBackground = true) +@Composable +fun SalesBar() { + Column( + modifier = Modifier + .fillMaxWidth() + .padding(16.dp) + ) { + OverSmth("Акции") + + Box( + modifier = Modifier + .fillMaxWidth() + .height(160.dp) + .background(Color(0xFFF7F7F9)), + contentAlignment = Alignment.Center, + ) { + Image( + painter = painterResource(id = R.drawable.img), + contentDescription = "sales", + modifier = Modifier.fillMaxSize(), + contentScale = ContentScale.Fit + ) + } + } +} + +@Preview(showBackground = true) +@Composable +fun BottomNavigationBar() { + Box( + modifier = Modifier.fillMaxSize(), + contentAlignment = Alignment.BottomCenter + ) { + Image( + painter = painterResource(id = R.drawable.bottom), + contentDescription = null, + contentScale = ContentScale.FillWidth, + modifier = Modifier + .fillMaxWidth() + .aspectRatio(3f) + ) + + Row( + modifier = Modifier + .fillMaxWidth() + .padding(bottom = 16.dp), + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.Center + ) { + IconButton(onClick = { /* TODO: действие кнопки */ }) { + Icon( + imageVector = Icons.Default.Home, + contentDescription = "home", + modifier = Modifier.size(40.dp) + ) + } + Spacer(modifier = Modifier.width(20.dp)) + IconButton(onClick = { /* TODO: действие кнопки */ }) { + Icon( + imageVector = Icons.Default.FavoriteBorder, + contentDescription = "favourite", + modifier = Modifier.size(40.dp) + ) + } + Spacer(modifier = Modifier.width(20.dp)) + IconButton( + onClick = { /* TODO: действие кнопки */ }, + modifier = Modifier.offset(y = (-20).dp).size(80.dp) + ) { + Image( + painter = painterResource(id = R.drawable.group123), + contentDescription = "korzina", + modifier = Modifier.size(80.dp) + ) + } + Spacer(modifier = Modifier.width(20.dp)) + IconButton(onClick = { /* TODO: действие кнопки */ }) { + Icon( + imageVector = Icons.Default.Notifications, + contentDescription = "notice", + modifier = Modifier.size(40.dp) + ) + } + Spacer(modifier = Modifier.width(20.dp)) + IconButton(onClick = { /* TODO: действие кнопки */ }) { + Icon( + imageVector = Icons.Default.Person, + contentDescription = "profile", + modifier = Modifier.size(40.dp) + ) + } + } + } +} + +@Composable +fun CategorySelection( + categories: List, + selectedCategory: Category?, + onCategorySelected: (Category?) -> Unit +) { + LazyRow { + items(categories) { category -> + CategoryButton( + category = category, + isSelected = category == selectedCategory, + onClick = { + if (selectedCategory == category) { + onCategorySelected(null) + } else { + onCategorySelected(category) + } + } + ) + } + } +} + +@Composable +fun CategoryButton(category: Category, isSelected: Boolean, onClick: () -> Unit) { + Button( + onClick = onClick, + modifier = Modifier + .padding(8.dp), + colors = ButtonDefaults.buttonColors( + containerColor = if (isSelected) Color.Blue else Color.White + ) + ) { + Text(text = category.name, color = Color.Black) + } +} + +@Composable +fun SneakerSelection(sneakers: List) { + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceEvenly + ) { + sneakers.take(2).forEachIndexed { index ,sneakerShop -> + SneakerButton( + sneakerShop = sneakerShop, + onClick = { /* TODO: Действие кнопки */ }, + onFavoriteClick = { /* TODO: Действие кнопки */ } + ) + } + } +} + +@Composable +fun SneakerButton(sneakerShop: SneakerShop, onClick: () -> Unit, onFavoriteClick: () -> Unit) { + val cost = "₽${sneakerShop.sneaker.cost}" + + var isLiked by remember { mutableStateOf(false) } + var isAddedToCart by remember { mutableStateOf(false) } + + Box(modifier = Modifier.padding(8.dp)) { + Button( + onClick = onClick, + modifier = Modifier + .width(140.dp) + .height(180.dp), + colors = ButtonDefaults.buttonColors( + containerColor = Color.White + ), + shape = RoundedCornerShape(12.dp) + ) { + Column(horizontalAlignment = Alignment.CenterHorizontally) { + AsyncImage( + model = sneakerShop.sneaker.photo, + contentDescription = "Sneaker Image", + modifier = Modifier + .width(200.dp) + .height(90.dp) + ) + Text(text = sneakerShop.sneaker.name, fontSize = 20.sp, color = Color.DarkGray) + Text(text = cost, fontSize = 15.sp, color = Color.Black) + } + } + + IconButton( + onClick = {isLiked = !isLiked}, + modifier = Modifier + .align(Alignment.TopStart) + .size(28.dp) + .padding(4.dp) + ) { + val iconRes = if (sneakerShop.likeOrNot) Icons.Default.Favorite else Icons.Default.FavoriteBorder + Icon(imageVector = iconRes, contentDescription = "Favourite", tint = Color.Red) + } + + IconButton( + onClick = { + isAddedToCart = !isAddedToCart + }, + modifier = Modifier + .align(Alignment.BottomEnd) + .size(32.dp) + .padding(4.dp) + ) { + val iconRes = if (isAddedToCart) Icons.Default.ShoppingCart else Icons.Default.Add + Icon(imageVector = iconRes, contentDescription = "Favourite", tint = Color.Cyan) + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/example/testktor/screen/auth/AuthScreen.kt b/app/src/main/java/com/example/testktor/screen/auth/AuthScreen.kt index c317886..ce1c8a1 100644 --- a/app/src/main/java/com/example/testktor/screen/auth/AuthScreen.kt +++ b/app/src/main/java/com/example/testktor/screen/auth/AuthScreen.kt @@ -1,21 +1,16 @@ package com.example.testktor.screen.auth -import androidx.compose.foundation.hoverable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row +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.width import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.text.ClickableText import androidx.compose.material3.Button import androidx.compose.material3.Text -import androidx.compose.material3.TextField import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -23,15 +18,16 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.unit.dp import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.TextStyle -import androidx.compose.ui.text.buildAnnotatedString -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.sp import androidx.navigation.NavController import com.example.testktor.authUser +import com.example.testktor.method.auth.BotBar +import com.example.testktor.method.auth.ButtonBack +import com.example.testktor.method.auth.Restore +import com.example.testktor.method.auth.TopBar import io.ktor.client.HttpClient import io.ktor.client.engine.android.Android @@ -72,17 +68,12 @@ fun AuthContent( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center ) { - // Отображение текста "Success" в левом верхнем углу + ButtonBack(navController) + + Spacer(modifier = Modifier.height(140.dp)) + if (authSuccess != null){ if (authSuccess == "Success") { -// Text( -// text = "Success", -// modifier = Modifier -// .padding(start = 16.dp, top = 16.dp) -// .align(Alignment.Start), -// color = Color.Green, -// style = TextStyle(fontSize = 18.sp, fontWeight = FontWeight.Bold) -// ) navController.navigate("mainSneakers_screen") } else{ Text( @@ -96,36 +87,8 @@ fun AuthContent( } } - Text( - text = "Привет!", - style = TextStyle(fontSize = 32.sp, fontWeight = FontWeight.Bold), - modifier = Modifier.height(60.dp).padding(bottom = 20.dp) - ) - - Text( - text = "Заполните Свои данные или продолжите через социальные медиа", - modifier = Modifier - .fillMaxWidth() - .padding(bottom = 20.dp), - style = TextStyle(fontSize = 16.sp), - textAlign = TextAlign.Center, - maxLines = 2 - ) - - Text(text = "Email", modifier = Modifier.padding(end = 255.dp)) - TextField( - modifier = Modifier.width(300.dp).height(70.dp).padding(bottom = 16.dp), - value = emailIn, - onValueChange = { emailIn = it } - ) - - Text(text = "Password", modifier = Modifier.padding(end = 225.dp)) - TextField( - modifier = Modifier.width(300.dp).height(70.dp).padding(bottom = 16.dp), - value = passwordIn, - onValueChange = { passwordIn = it }, - visualTransformation = PasswordVisualTransformation() - ) + TopBar(emailIn, {emailIn = it}, passwordIn, {passwordIn = it}) + Restore(navController) Button( modifier = Modifier.width(350.dp).height(50.dp), @@ -138,45 +101,6 @@ fun AuthContent( Text("Войти") } - Row( - modifier = Modifier - .padding(top = 16.dp) - .fillMaxWidth(), - horizontalArrangement = Arrangement.Center - ) { - Text( - text = "Вы впервые? ", - style = TextStyle(fontSize = 16.sp, color = Color.Black) - ) - - ClickableText( - text = buildAnnotatedString { append("Создать пользователя") }, - onClick = { - navController.navigate("registration_screen") - }, - style = TextStyle( - fontSize = 16.sp, - color = Color.Black - ), - ) - } - - Row( - modifier = Modifier - .padding(top = 8.dp) - .fillMaxWidth(), - horizontalArrangement = Arrangement.Center - ) { - ClickableText( - text = buildAnnotatedString { append("Восстановить") }, - onClick = { - navController.navigate("forgotPassword_screen") - }, - style = TextStyle( - fontSize = 16.sp, - color = Color.LightGray - ), - ) - } + BotBar(navController) } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/example/testktor/screen/auth/BeforeAuthScreen.kt b/app/src/main/java/com/example/testktor/screen/auth/BeforeAuthScreen.kt index 7ad5f32..6e69d2f 100644 --- a/app/src/main/java/com/example/testktor/screen/auth/BeforeAuthScreen.kt +++ b/app/src/main/java/com/example/testktor/screen/auth/BeforeAuthScreen.kt @@ -1,19 +1,13 @@ package com.example.matuletest.ui.auth -import androidx.compose.foundation.Image import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box 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.padding -import androidx.compose.foundation.layout.size -import androidx.compose.foundation.layout.width import androidx.compose.material3.Button -import androidx.compose.material3.Slider import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -24,17 +18,11 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color -import androidx.compose.ui.res.painterResource -import androidx.compose.ui.text.font.FontStyle -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.text.style.LineHeightStyle -import androidx.compose.ui.text.style.TextAlign -import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.example.testktor.R -import io.ktor.websocket.Frame -import java.lang.reflect.Modifier +import com.example.testktor.method.auth.Sliderik +import com.example.testktor.method.auth.Textik @Composable fun FirstScreen(onNavigateToSliderScreen: () -> Unit) { @@ -78,52 +66,11 @@ fun SliderScreen(onNavigateToAuthScreen: () -> Unit) { .background(Brush.horizontalGradient(listOf(Color(0xFF48B2E7), Color(0xFF0076B1)))), horizontalAlignment = Alignment.CenterHorizontally ) { - Image( - painter = painterResource(id = imageId), - contentDescription = "Изображение", - modifier = androidx.compose.ui.Modifier.width(670.dp).height(600.dp).padding(start = 20.dp) - ) - - Text( - color = Color.White, - fontStyle = FontStyle.Italic, - text = textList[currentIndex], - fontSize = 24.sp, - fontWeight = FontWeight.Bold, - textAlign = TextAlign.Center, - modifier = androidx.compose.ui.Modifier - .fillMaxWidth() - .padding(top = 40.dp) - .width(700.dp).height(30.dp) - ) - Text( - color = Color.White, - fontStyle = FontStyle.Italic, - text = textList2[currentIndex], - fontSize = 18.sp, - fontWeight = FontWeight.Bold, - textAlign = TextAlign.Center, - modifier = androidx.compose.ui.Modifier - .fillMaxWidth() - .padding(top = 40.dp) - ) + Textik(imageId, textList, textList2, currentIndex) Spacer(modifier = androidx.compose.ui.Modifier.weight(1f)) - Slider( - value = sliderValue, - onValueChange = { newValue -> sliderValue = newValue }, - valueRange = 0f..maxIndex.toFloat(), - steps = maxIndex - 1, - colors = androidx.compose.material3.SliderDefaults.colors( - thumbColor = Color.White, - activeTrackColor = Color(0xFF0076B1), - inactiveTrackColor = Color(0xFFB0B0B0) - ), - modifier = androidx.compose.ui.Modifier.fillMaxWidth() - ) - -// Spacer(modifier = androidx.compose.ui.Modifier.height(20.dp)) + Sliderik(sliderValue, maxIndex){ newValue -> sliderValue = newValue } Button( onClick = { diff --git a/app/src/main/java/com/example/testktor/screen/auth/ForgotPasswordScreen.kt b/app/src/main/java/com/example/testktor/screen/auth/ForgotPasswordScreen.kt index b13d9f5..ddcc53d 100644 --- a/app/src/main/java/com/example/testktor/screen/auth/ForgotPasswordScreen.kt +++ b/app/src/main/java/com/example/testktor/screen/auth/ForgotPasswordScreen.kt @@ -30,6 +30,7 @@ import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.navigation.NavController import com.example.testktor.forgotPassword +import com.example.testktor.method.auth.BarForgot import com.example.testktor.resetPassword import io.ktor.client.HttpClient import io.ktor.client.engine.android.Android @@ -67,7 +68,6 @@ fun ForgotPasswordContent( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center ) { - // Отображение текста "Success" в левом верхнем углу if (forgotSuccess != null){ if (forgotSuccess == "Success") { navController.navigate("resetPassword_screen") @@ -83,28 +83,7 @@ fun ForgotPasswordContent( } } - Text( - text = "Забыл Пароль", - style = TextStyle(fontSize = 32.sp, fontWeight = FontWeight.Bold), - modifier = Modifier.height(60.dp).padding(bottom = 20.dp) - ) - - Text( - text = "Введите свою учетную запись для сброса", - modifier = Modifier - .fillMaxWidth() - .padding(bottom = 20.dp), - style = TextStyle(fontSize = 16.sp), - textAlign = TextAlign.Center, - maxLines = 2 - ) - - Text(text = "Email", modifier = Modifier.padding(end = 255.dp)) - TextField( - modifier = Modifier.width(300.dp).height(70.dp).padding(bottom = 16.dp), - value = emailIn, - onValueChange = { emailIn = it } - ) + BarForgot(emailIn){emailIn = it} Button( modifier = Modifier.width(350.dp).height(50.dp), diff --git a/app/src/main/java/com/example/testktor/screen/auth/MainSneakersScreen.kt b/app/src/main/java/com/example/testktor/screen/auth/MainSneakersScreen.kt deleted file mode 100644 index 6e2b14c..0000000 --- a/app/src/main/java/com/example/testktor/screen/auth/MainSneakersScreen.kt +++ /dev/null @@ -1,63 +0,0 @@ -package com.example.testktor.screen.auth - -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.lazy.LazyColumn -import androidx.compose.foundation.lazy.items -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.rememberCoroutineScope -import androidx.compose.runtime.setValue -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp -import androidx.navigation.NavController -import com.example.testktor.Sneaker -import com.example.testktor.authUser -import com.example.testktor.getSneakers -import io.ktor.client.HttpClient -import io.ktor.client.engine.android.Android -import kotlinx.coroutines.launch - -@Composable -fun MainSneakersScreen(navController: NavController) { - var sneakers by remember { mutableStateOf>(emptyList()) } - val coroutineScope = rememberCoroutineScope() - - val client = HttpClient(Android) - - LaunchedEffect(Unit) { - coroutineScope.launch { - sneakers = getSneakers(client) - } - } - - SneakersContent(sneakers) -} - -@Composable -fun SneakersContent( - sneakers: List -) { - Column( - modifier = Modifier - .fillMaxSize() - .padding(16.dp), - horizontalAlignment = Alignment.CenterHorizontally - ) { - Text(text = "Список кроссовок", fontSize = 24.sp, modifier = Modifier.padding(bottom = 16.dp)) - - LazyColumn(modifier = Modifier.fillMaxWidth()) { - items(sneakers) { sneaker -> - Text(text = sneaker.name, fontSize = 18.sp, modifier = Modifier.padding(8.dp)) - } - } - } -} \ No newline at end of file diff --git a/app/src/main/java/com/example/testktor/screen/auth/RegistrationScreen.kt b/app/src/main/java/com/example/testktor/screen/auth/RegistrationScreen.kt index 084c49b..92e783f 100644 --- a/app/src/main/java/com/example/testktor/screen/auth/RegistrationScreen.kt +++ b/app/src/main/java/com/example/testktor/screen/auth/RegistrationScreen.kt @@ -2,19 +2,15 @@ package com.example.testktor.screen.auth import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row +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.padding import androidx.compose.foundation.layout.width -import androidx.compose.foundation.text.ClickableText import androidx.compose.material3.Button import androidx.compose.material3.Text -import androidx.compose.material3.TextField import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect -import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -23,15 +19,12 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.TextStyle -import androidx.compose.ui.text.buildAnnotatedString import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.text.input.PasswordVisualTransformation -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.lifecycle.viewmodel.compose.viewModel import androidx.navigation.NavController -import com.example.testktor.authUser +import com.example.testktor.method.auth.BotBarReg +import com.example.testktor.method.auth.TopBarReg import com.example.testktor.regUser import io.ktor.client.HttpClient import io.ktor.client.engine.android.Android @@ -77,17 +70,9 @@ fun RegContent( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center ) { - // Отображение текста "Success" в левом верхнем углу if (regSuccess != null){ if (regSuccess == "Success") { - Text( - text = "Success", - modifier = Modifier - .padding(start = 16.dp, top = 16.dp) - .align(Alignment.Start), - color = Color.Green, - style = TextStyle(fontSize = 18.sp, fontWeight = FontWeight.Bold) - ) + navController.navigate("auth_screen") } else{ Text( text = "Error", @@ -100,42 +85,9 @@ fun RegContent( } } - Text( - text = "Регистрация!", - style = TextStyle(fontSize = 32.sp, fontWeight = FontWeight.Bold), - modifier = Modifier.height(60.dp).padding(bottom = 20.dp) - ) + Spacer(modifier = Modifier.height(140.dp)) - Text( - text = "Заполните Свои данные или продолжите через социальные медиа", - modifier = Modifier - .fillMaxWidth() - .padding(bottom = 20.dp), - style = TextStyle(fontSize = 16.sp), - textAlign = TextAlign.Center, - maxLines = 2 - ) - - Text(text = "Ваше имя", modifier = Modifier.padding(end = 255.dp)) - TextField( - modifier = Modifier.width(300.dp).height(70.dp).padding(bottom = 16.dp), - value = nameIn, - onValueChange = { nameIn = it } - ) - - Text(text = "Email", modifier = Modifier.padding(end = 255.dp)) - TextField( - modifier = Modifier.width(300.dp).height(70.dp).padding(bottom = 16.dp), - value = emailIn, - onValueChange = { emailIn = it } - ) - - Text(text = "Password", modifier = Modifier.padding(end = 225.dp)) - TextField( - modifier = Modifier.width(300.dp).height(70.dp).padding(bottom = 16.dp), - value = passwordIn, - onValueChange = { passwordIn = it } - ) + TopBarReg(nameIn, {nameIn = it}, emailIn, {emailIn = it}, passwordIn, {passwordIn = it}) Button( modifier = Modifier.width(350.dp).height(50.dp), @@ -148,120 +100,8 @@ fun RegContent( Text("Зарегистрироваться") } - Row( - modifier = Modifier - .padding(top = 16.dp) - .fillMaxWidth(), - horizontalArrangement = Arrangement.Center - ) { - Text( - text = "Есть аккаунт? ", - style = TextStyle(fontSize = 16.sp, color = Color.Black) - ) + Spacer(modifier = Modifier.height(140.dp)) - ClickableText( - text = buildAnnotatedString { append("Войти") }, - onClick = { - navController.navigate("auth_screen") - }, - style = TextStyle( - fontSize = 16.sp, - color = Color.Black - ), - ) - } + BotBarReg(navController) } } - - -//@Composable -//fun RegistrationContent(viewModel: AuthScreenViewModel, navController: NavController){ -// val regState = viewModel.registrationScreenState.collectAsState() -// -// if (regState.value.isSignUp) { -// Text("Success Registration") -// } -// -// Column( -// modifier = Modifier.fillMaxSize(), -// horizontalAlignment = Alignment.CenterHorizontally, -// verticalArrangement = Arrangement.Center -// ) { -// Text( -// text = "Регистрация!", -// style = TextStyle(fontSize = 32.sp, fontWeight = FontWeight.Bold), -// modifier = Modifier.height(60.dp).padding(bottom = 20.dp) -// ) -// -// Text( -// text = "Заполните Свои данные или продолжите через социальные медиа", -// modifier = Modifier -// .fillMaxWidth() -// .padding(bottom = 20.dp), -// style = TextStyle(fontSize = 16.sp), -// textAlign = TextAlign.Center, -// maxLines = 2 -// ) -// -//// Text(text = "Ваше имя", modifier = Modifier.padding(end = 255.dp)) -//// TextField( -//// modifier = Modifier.width(300.dp).height(70.dp).padding(bottom = 16.dp), -//// value = regState.value.email, -//// onValueChange = { -//// viewModel.setEmail(it) -//// }) -// -// Text(text = "Email", modifier = Modifier.padding(end = 255.dp)) -// TextField( -// modifier = Modifier.width(300.dp).height(70.dp).padding(bottom = 16.dp), -// value = regState.value.email, -// onValueChange = { -// viewModel.setEmail(it, true) -// }) -// -// Text(text = "Password", modifier = Modifier.padding(end = 225.dp)) -// TextField( -// modifier = Modifier.width(300.dp).height(70.dp).padding(bottom = 16.dp), -// value = regState.value.password, -// onValueChange = { -// viewModel.setPassword(it, true) -// }, -// visualTransformation = PasswordVisualTransformation() -// ) -// -// Button( -// modifier = Modifier.width(350.dp).height(50.dp), -// colors = androidx.compose.material3.ButtonDefaults.buttonColors( -// containerColor = Color(0xFF48B2E7), -// contentColor = Color.White -// ), -// onClick = { -// viewModel.reg() -// }) { -// Text("Зарегестрироваться") -// } -// -// Row( -// modifier = Modifier -// .padding(top = 16.dp) -// .fillMaxWidth(), -// horizontalArrangement = Arrangement.Center -// ) { -// Text( -// text = "Есть аккаунт? ", -// style = TextStyle(fontSize = 16.sp, color = Color.Black) -// ) -// -// ClickableText( -// text = buildAnnotatedString { append("Войти") }, -// onClick = { -// navController.navigate("auth_screen") -// }, -// style = TextStyle( -// fontSize = 16.sp, -// color = Color.Black -// ), -// ) -// } -// } -//} \ No newline at end of file diff --git a/app/src/main/java/com/example/testktor/screen/auth/ResetPasswordScreen.kt b/app/src/main/java/com/example/testktor/screen/auth/ResetPasswordScreen.kt index 690c06e..3203456 100644 --- a/app/src/main/java/com/example/testktor/screen/auth/ResetPasswordScreen.kt +++ b/app/src/main/java/com/example/testktor/screen/auth/ResetPasswordScreen.kt @@ -25,7 +25,10 @@ import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.navigation.NavController +import com.android.identity.cbor.Uint import com.example.testktor.authUser +import com.example.testktor.method.auth.TextFieldsReset +import com.example.testktor.method.auth.TopBarReset import com.example.testktor.resetPassword import io.ktor.client.HttpClient import io.ktor.client.engine.android.Android @@ -67,17 +70,9 @@ fun ResetPasswordContent( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center ) { - // Отображение текста "Success" в левом верхнем углу if (resetSuccess != null){ if (resetSuccess == "Success") { - Text( - text = "Success", - modifier = Modifier - .padding(start = 16.dp, top = 16.dp) - .align(Alignment.Start), - color = Color.Green, - style = TextStyle(fontSize = 18.sp, fontWeight = FontWeight.Bold) - ) + navController.navigate("auth_screen") } else{ Text( text = "Error", @@ -90,35 +85,8 @@ fun ResetPasswordContent( } } - Text( - text = "ОТР Проверка", - style = TextStyle(fontSize = 32.sp, fontWeight = FontWeight.Bold), - modifier = Modifier.height(60.dp).padding(bottom = 20.dp) - ) - - Text( - text = "Пожалуйста, проверьте свою электронную почту, чтобы увидеть код подтверждения", - modifier = Modifier - .fillMaxWidth() - .padding(bottom = 20.dp), - style = TextStyle(fontSize = 16.sp), - textAlign = TextAlign.Center, - maxLines = 3 - ) - - Text(text = "OTP Code", modifier = Modifier.padding(end = 255.dp)) - TextField( - modifier = Modifier.width(300.dp).height(70.dp).padding(bottom = 16.dp), - value = codeIn, - onValueChange = { codeIn = it } - ) - - Text(text = "New Password", modifier = Modifier.padding(end = 255.dp)) - TextField( - modifier = Modifier.width(300.dp).height(70.dp).padding(bottom = 16.dp), - value = newPasswordIn, - onValueChange = { newPasswordIn = it } - ) + TopBarReset() + TextFieldsReset(codeIn, {codeIn = it}, newPasswordIn, {newPasswordIn = it}) Button( modifier = Modifier.width(350.dp).height(50.dp), diff --git a/app/src/main/java/com/example/testktor/screen/main/MainSneakersScreen.kt b/app/src/main/java/com/example/testktor/screen/main/MainSneakersScreen.kt new file mode 100644 index 0000000..f128cee --- /dev/null +++ b/app/src/main/java/com/example/testktor/screen/main/MainSneakersScreen.kt @@ -0,0 +1,99 @@ +package com.example.testktor.screen.main + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect +import androidx.compose.runtime.derivedStateOf +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateListOf +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.rememberCoroutineScope +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.navigation.NavController +import com.example.testktor.Category +import com.example.testktor.Sneaker +import com.example.testktor.SneakerCategoryResponse +import com.example.testktor.SneakerShop +import com.example.testktor.getSneakers +import com.example.testktor.method.main.BottomNavigationBar +import com.example.testktor.method.main.CategorySelection +import com.example.testktor.method.main.OverSmth +import com.example.testktor.method.main.SalesBar +import com.example.testktor.method.main.Searchbar +import com.example.testktor.method.main.SneakerSelection +import com.example.testktor.method.main.TopNavigationBar +import io.ktor.client.HttpClient +import io.ktor.client.engine.android.Android + +@Composable +fun MainSneakersScreen(navController: NavController) { + val searchBox by remember { mutableStateOf("") } + var sneakersCategories by remember { mutableStateOf(SneakerCategoryResponse(emptyList(), emptyList())) } + val coroutineScope = rememberCoroutineScope() + val client = remember { HttpClient(Android) } + + LaunchedEffect(Unit) { + sneakersCategories = getSneakers(client) ?: SneakerCategoryResponse(emptyList(), emptyList()) + } + + Box(modifier = Modifier + .fillMaxSize() + .background(Color(0xFFF7F7F9))) { + SneakersContent(sneakersCategories, searchBox) + } + +} + +@Composable +fun SneakersContent( + sneakersCategories: SneakerCategoryResponse, + searchBox: String +) { + var searchBoxIn by remember { mutableStateOf(searchBox) } + var selectedCategory by remember { mutableStateOf(null) } + var sneakers by remember(selectedCategory) { + mutableStateOf( + sneakersCategories.sneakers.filter { + selectedCategory == null || it.categoryId == selectedCategory?.id + }.map { + sneaker -> SneakerShop(sneaker, false) + } + ) + } + + Column( + modifier = Modifier + .fillMaxSize() + .padding(16.dp), + ) + { + TopNavigationBar() + Searchbar(searchBoxIn, {searchBoxIn = it}) + + + Column { + Text(text = "Категории", fontSize = 16.sp) + + CategorySelection( + categories = sneakersCategories.categories, + selectedCategory = selectedCategory, + onCategorySelected = { selectedCategory = it } + ) + } + + OverSmth("Популярное") + SneakerSelection(sneakers = sneakers) + SalesBar() + BottomNavigationBar() + } +} diff --git a/app/src/main/res/drawable/add_sneaker.png b/app/src/main/res/drawable/add_sneaker.png new file mode 100644 index 0000000000000000000000000000000000000000..48f2d7ac3f991ed3b1ac1ce7a2af83e10e123c63 GIT binary patch literal 835 zcmV-J1HAl+P)Xt-zwfvA8irjIp{Ocz1;=#;HqOCa=mMrf{E@U54$O(+G=WW&N>7W^3-k#oL?)(&*W#NOeL}B%J`f@CHcmd9I9404Z0uoG9NiUC z7A4xGkS`w}tc~46j;;z}lS|(M94yjovMS{9_!!*74t)Ia3kT)PRuSR&w&}c19n-9> zRTnmrIm}!b-RB`y$fM!7`Mk~hgD~c zyEwPra&o`Rh$Qk-%%u~9SopjPyHHp&`4Se^t?$uznc3RJjAS0UVp)dAZiw!k8G%fqUC%8DJ3CP1q4;W z`^^G6iIR|!!N2{6JVS?Fp1k{MInOxDDhV+}qEa=q)9RbS8CMe`Ly{@TR^Le&=O2`W zQ17VbN%+%_Y59`f%*CTMyH<$(ZcRxD^^R)Ex`%W;eEYpEyBY(CDfzgXtb}h&Z`-ay zEIR2)DG4zudktaLtnAuJ7(((S-rhMBI9qwbgm~j>+fKuL^tLBRL**9VN`Qi0O8m|Y z{nOMZ82BT~4fI(^@YU2Qqy9oqg^0g3vLqrp<(Y4sQ_hh#i17g)tPe-8g`~t0YUYKm z3X$&T<&+q{;TkidcRVpW_vzx!8)ySfb7ad}iDD0Dp^!E1p2^|>`~gCE6G0NpdPD#K N002ovPDHLkV1i%ng#Z8m literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/bottom.png b/app/src/main/res/drawable/bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..26077f358b43dbf508755bc30a59abdef742fdc1 GIT binary patch literal 10126 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 LNkvXXu0mjf7HG0P literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/group12.png b/app/src/main/res/drawable/group12.png new file mode 100644 index 0000000000000000000000000000000000000000..9e5af625991e5c63a8b80a59ed3d3ddf811312a3 GIT binary patch literal 2363 zcmV-B3B>k^P)TKiN3&hNvQqf*SNqp<0MSbG6zJRT*V(URfsBOfUyD>kNxd~6 z%s3U$w}~jV*1ytKk*RDZ!a_PlSYrb;{}GT6E^kmurJbfJAEM%8&5?jr?Eiok5R`JZ zx9nQeCWKJQo~Kh-G1<3hfkBYfz+_WCPf8f-)}QG=KyzfuFV~do!xIQm``GDg!BmfD z5C&O{kR*AS<_IfGEPZ$dA*_bR#zu>|%y^dY7Bk^@oDOpYV{N4c3sL*dqu;NkBtFV# zE(}@7TX(uI=Y#;JnT=WlwsQNHiE_! z2HB>jCf;BWLAp;M>_syy)esh+NbjttImW<*)Q8s)LRLYgnkbVR^G>TKCnS$YsBH8z_(I9=K7p(5b2Y}qme|73zK-80xXZUW(Om}GSF1my~m z=kr|4PJ?u!A#=^nI2LRrBoEjJ;-B`H|IiWim9J`{0;5oQFmSu~gU^5Xi|@U=cI{fH zt*uR}yIUVBmOQwgT46N)`BYU%Ia488sF1Sj+%wxcFI~DsD^{#fuDppG0Js6OM(_~` z1mx7{@Xx5gDAfAw+`4g`m5q^vpb2x>g@C$nT$smiKD{-hWMNfKwLa$qPJOSu@$H9C zT)TEHX0h)4)r@Cs;w@gh7=?{<-BZ`2j5e$UC=>|6}ilAM=!ScsX)7ad3>YGG%=66=3J?c8HA; z;_ONG|Eu}v>M!m8s<5nwXdVNm-2eCAAH}85=TorMcxPoWJwj0KW`JZ5CsDEMS3eo~ zs3TO*)jUrsJOlR)rrdY>I2?lRJ8$h6b51ClG9=;(a9*mivQk}r>DkLSuUxFBd5W7? z-mib>xjhlT-|x6{H|CwEBN<_Z$jcoeSz21^*tV@gKiu9qd1Lqx%`>1+?;Uxvll_e< zE-sc!mMlTPH3ynz&OoZqr6xz#4fOW*>PET_*S>Nyaz{bybt#Z-f`eA|H_oCc~`l#$|J0BQ3P^SuezOx)&^#SL3b+HxGnl2VG# z9{$a`2Ort?TEUksC)$2<;OYxK&p#ewqS6%rPD;870=UKp8cE?x_YPEy+r!q4;@}tP z8*Jj%|6hD2GCVxIW&0nyzq9Cp@SkB%Xk(f0$HfBR%c4*e}<;w-GQD#%apC2h*^O-}!S5%X; z>g3ji(>wrM$g&@rJ_vArg5;Q-n(CI5lid@8z3u;N zda{eHhK!*$^RNfQ%z@^Ky!7#}l%;Eh-?=&9!(^#_=fgFES4my(a*H hIPwYSd>l|N_!upLube&@0$cz9002ovPDHLkV1lu@is}FW literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/group123.png b/app/src/main/res/drawable/group123.png new file mode 100644 index 0000000000000000000000000000000000000000..06845fd3650f4ab03c97d4c60bb5b98778e0a6cf GIT binary patch literal 14743 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/hamburger.png b/app/src/main/res/drawable/hamburger.png new file mode 100644 index 0000000000000000000000000000000000000000..5dd0a50180f54a39b7c25f98acb6fbec8c3ab4cf GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^Qa~)k!3HEovt>1D0ebC=F+EacE@+U jY@9DL$7sfvxO=R8JNUU|AFA*J&1dj*^>bP0l+XkKEFwGy literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/heart.png b/app/src/main/res/drawable/heart.png new file mode 100644 index 0000000000000000000000000000000000000000..d082c130419e33687667bc6cbe7d4e504da5ba27 GIT binary patch literal 650 zcmV;50(Jd~P)3&MgB- zyf5v7*A`=AD0$7U^riRozw|!QE0#d`CYw^0={ndaG9ei%kq`;Kr)qFGM686^9>zO} zS8R+Zp`z|8DU+oFQM8olSMz*`lJ^#JHOhm&us#JjXF!gK@)&X&JTpyWR|3S;WW=ZbANSFpN%Ho*uQvM-Trum-#Y2w z66?nK5{ba2wxNI1x+v%y875c)Km${DTMIvQE`S`WyWo`7b%2iNNnUSh2JhqY`z ze+Rd^;oK{JSzoM5&TEbSVfWtX#%wGnV9ljXM10vW-6|q81}(#&jd_C><~OjJs@vg( zHJujq>P~n*{u?J=axRM|CVxu-$dBdE`89!WqZ-H|?%|VbWXR;8*I6KM9i7;kTNaS_ zu*U;$yS^vk{!&QOw=LP!=%&E+KEb$R=N{=>D+$~SwI$lO$Y;SFb%W$G=dUDSMO-!# kck_<4j!?!4z2YTs2WJrQViV(#IsgCw07*qoM6N<$f;U$v{r~^~ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/heart_sneaker.png b/app/src/main/res/drawable/heart_sneaker.png new file mode 100644 index 0000000000000000000000000000000000000000..f1e458eae7a831092fd9efffb6b1f912949ac3b5 GIT binary patch literal 715 zcmV;+0yO=JP)_xCiL`#?r5nx-!m}pXb=>ji1G9v_?}qQ{mDTl*Yy4HIgFQwHDVGQ5rYg zYqUHug;EK3XVi@&(QV8Z%BAXPtyKgUB-DM5R&+$ywINb{ZLNKeDWE4$fonI5d=A9@%?%csM%kEAK+$oeZ)(mRE5`QcjyM;`zH002ovPDHLkV1hOPHOv42 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/home.png b/app/src/main/res/drawable/home.png new file mode 100644 index 0000000000000000000000000000000000000000..dfbd0f335ae26be82ddc484438d7dec3920a7d05 GIT binary patch literal 553 zcmV+^0@nSBP)mIdwWfD}?7 z;kVFNm1L6XdGn^z^M+_oP^$v0mU}@=Su{;W%46b&oiwT&6Q^sv$j8BPg_+Y6!Y(E- zF~UT*Lx&W%6Na;Fyk7Lts=4MshhN8}eAiB%oj_&WP8m^j=P&`$C-tzJ0tHoUJ-S&n zQe`OgbSRX0x;pJHni!JqFWCP zw3_Y>o)sYtQbxb3Z@7~808%!z{H2&}9_y8NkLoLTv1;RcX6ae6hfX`EKv^zM!g7%3odlAE9)u+9800000NkvXXu0mjfFJ|){ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/icon.png b/app/src/main/res/drawable/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ff1199c6217ab9162676e2daf08e3282d28e3986 GIT binary patch literal 631 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�@(Wt!29`qM`iNDhJ(GV-~Fd+64Ow{|2vn~ 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πS{N-Y8#38|Hv_b1*RlHY}>KRl;Y-eRcvxhy`yc z!vJGF^bE|)D}<#qf(PNzn2C!@N+Y49PdEnKF;+j7nb6^_rTlVGvS_CJ<9|XDh{j;P zY7^0Eh|_kE?!Z$GUMZD;QtC%{R0=+ZE~vy}!H01ADp31m)Ch;b59yourI783C^3Gdp*yg4pNBzF&FxjfTv`UzLh8s{XzVpy z=mj&H7ju;v7lNr)y1(3UiH*9?0FVf@A4)$ALXInSWe51nitQ{y?K}vEF;YOYk zz2&OcFoNC^R81q_3A#$V9Khr%oeojj8sbKI&MEzm8gSr`yiFj0mfe)^Fxh=bsEo4< zm}O#Z3~EF0&q6VVuR*XNu4Ts0lQb(F=xOi^%CP6dt-O^&C{FVWOcZT@73@Vx09Jtl z^4k`D8|1|ZAQJD{13iXT>;vW62v%b6Ll121`~T=$wZyQJ(N2l0tPpV;;1!h{fh!mP z>6TMi;lE?;Sdg_DjGo*hJwlBC)!4a+zys>BeC3Pjgc*AHTC@Ee;y2sKZJTzCFm0?v zs(YsvgkKRvX?&-OsK1pZk_fJccLOtd$w%&DP47RvA2NzzoVVR?7U*AdL^ zFi~$e@KDnzCj+?^T{ZFwRxrM(QnoXyV=OELLAxxUc7|rDoWcltVT$n5)bj5(n}$kC zGB;}_F-weDH;Zfl6P)+&Sk;HfAgNKp4!w@%E7Qz!*o0wCkvKys|GW8Y^q1!|V&|>h4?2 zLc_4xV1R_t5u$)mqz2fwwj9I@e{8X~)%G5xW00AFbC3RcI(4f-A78f!^{4CqQ`Q&; z?5H%=%Aksu3k_@U`6`{KVI8jpK3qL*)2zCsT~U$pLJ0i}$y8ZRS@LG8buUyIKa8k3 z1yq~wRPIkABcqmdVjwFZ;03Pz?*(LUGSMk5l((T7;=$_xw;R3yVkYC47{}YI)I{+$ zf}bta16;t{tEy=1Fosh7$9;1bJ^Y!yY7U69z?=Jm^wGvXlrvUde_>3vTSwGM(VZ_G z!BQai#;3M9Q&ZcDS^v8oOKHY3Sh0&)6*>kh2(w7IkLjrL0;f^o@$!)vhMyCzTey8h z;BwRG6Q98)H+(2&#c_z$8?c!7TmGIVti*pE`P5!M8mo4|NK}@Bt0n!XP#SVeVxrzc z3+1n2!Et42&QBd6==I{5v<6cqsYp!Bc(cc5NcsF4nzBT5-8yGu9UhtW4mMf7ra@T@ zg9ZZL`j5)*u|fyz#DOQ~PgDN8?7CIhM@QNhY44k&3bBcx)*w1>CT*Dhdt_~muw(WV ziQNUZ?v5k(p&Yh`yhMD*XM#Ssd`u;bcUj6qyGWigqeA?wA!7%2+zpLF;6m{!;kJIZ5du>d7}lrLsTNr&D;)ew%L>JJP| zC)^1WUb%Y6%3qIbp8)mogMU~*qn0P^UBJ$7C)H57Hh}ePONHHCpNkT;gn#;Hw*h6u z8KAQ*@OXZQ3I_84n|S3-Rq!GMZf}?Dv=xX}UHj!8>4~m}VPCXntTAutOn+H{Y6lu4 zbJ>t3xlAasyC-u?|MrvWe`HrTR$4J92mJqbFaDHJ<4QU7rg^)`(FBIv1@mDJT?`^@ zZ~X~6D98TjX<1(Svbc3`Wo=7M&wdH7e(6q_Tbgoz9ix_-)=UnWA0yuM9~JDpvhb)r zm_X*HW40Bpy$0Pgi*gSvXeelyIBcZoE~+-pKUk{`OWO0F3$H+8@_+u;pd77SaM`kQ r@M%E?4a3pZEO^^tin$|V`{Ybcc}UAfEuTFd@VjMXcD>TjG3NgOb@5NL literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/img_1.png b/app/src/main/res/drawable/img_1.png new file mode 100644 index 0000000000000000000000000000000000000000..735b36674241e4a3f7aecf0cc978d5d1a762bbf0 GIT binary patch literal 45330 zcmYiNbyQp5^F0pZTC8|+C{WyryIX-GL4y}58lbqlYjLMgS_rP8xKrF+g1fsv>FfRZ z{?>E<$jVA`bLY&NGiRSYdm=xp%41=?!+?W>!%|d`(SU=82z|0~C~Nre2akXNG{!Y+y;oXMQE{?(4X)ocdTd{9eGI6Hx;+(# zZuSFx9TTt!7i%y}LsZJw8M zuXV{#(u&;^+l}=Y%yEpse6H`+eydwVnI=rSf&-^)zch7u+%+UK= zPgP>D)5ew)vKKw0LP|T@pP!`3H-G_)XKp4Yrji;hIXRT1q@;xG?3nCq@@F&HXBfX3 z_tiMZYpC>J7s!XSSvyn9vpAivIHxO&DO`3&lKIOt#6Qs^ub9#3Sb~1SY|wAPS5r|T z3>fk_-w5?1{P!0O`uK7&?}8fq>!qZmdNfaP`>E692ztNscejf! zEBo|J%T(fw-ygTHH~W5TFi8v+KHE&9TQ!rgIoIl)DU`=iuN`%q->sH!|DC|io%>^D z%^sJ4{P#awE4X=a%W<~`^&$W6VsrBq^SS#hRgtVkkLPXh=i6yOX!PzOG2z>><2It! zc8qQf4U2LFe+RCFq0q@ZjXW)iafQ_>^@PX=Swb9XWTxJ ze|5!Zz4!y(?R2H&pP?sax!T6|k`fie8?YI9M)SQpD@XtYCJbeaZRx@>l|)r$)cz`P zUD_EGe3EEa*jv8m`E7K#h6dUA1-t!PIyo)Pn84YBNJmNOKt4jxpd28HMU5IZ|uuy%=B1dn_EQyFrzmmDT&!}A2qwgAK&Y%X#(u7 zyTuk){Fm!Ie}eNB=eH4ZDu-q>2iu{!X-N+glU^>b%BoNQxyOv6yRPn|G*Q~rgL6j) zUlz;ZHY^f8`wn*h$~G8iZ^GD}T`KT8UNc#()G0t(nBG6JK9@Il%2if;{`8eG;*R5g z4_B*ZuW+l%n9a@i6{Dw@^>F*=?1YOoI*x5LXLBoBaT5_AqHnUXLhXf`bM0?Zh;)e? zwO4EeK;xRXW=th{bPOQmtpno!R&A&U;z%^LuMhLU#rgf^ZkVgJ>A33o&>M~dSSBc? z-NV1oRHNp%WOm-%p}xKF=&?HrmW#E?H!56&c>F~zb6F{L*Lg!BhDIemn59(`MKe?L zZ&fIj4$BxIbn-GX%6~H`Ju4Nnw6r85Ma(bH8j_bfUuty3ET^NVzuvswACcbb8)c99 zopI-3`7vnMU7`?$R~>A``?ONRCZ~@jJw=3thfh}S-;_M9hR<@NFaY!Z14FCFIRYsu zDQ&KpZxo|iZUieUJRlUn260Xx?bN}6l-AVNVripXyAI#^J>99dmnJ7q<7oITl5WYV z;p;8O&#j#8j7vbSD#8!y5AuzI7k_KEzbl=25`S7~Bc%K#HrozVI{2kn{(oc9GD`)7 z>Y5jX1Ee@>n~P<<5o()C?Ij<*#N-ngv}z5s^ht|~{1Pt2sZU>sw)%!~6CPLRu=kg| zx<|{J0+#={9x~?}U|zqQl^GFw4O|Iv>KzSZpuaA>J~yuj0m9;cGP0v|WY(rr8>@?n zr`niIK@PGVz+=8N-c|7@d&xphxAfoxH8osnYN~FlSAA8p0sz-{SkmE%7Unw*33tBL zJgVRjLJB9}T0)^l`?yS$@p3kaMz8YM;NaR;B*PL6x(3F#&afy^VzUH%nkT5rJs!-eKa(Zs$jc|r~-ifoc5zx58BgZ-m6S73KlLg@h@Z91IGQS zrGDf9WpRgL))sNw*d=8l==nPOy!g`F>w_6t3S?(YiN;Z@@n`MT6rj#$P#^U_{muq$z1B=Yq3gTZIKf$SuJFla$UF7 zCL;H+Ksx+~*Y&|~0GNo~sO9(nOc?6nNC5XdV)8}kPoU$(3qU6dB1ueVv1e>&i4s^O z8pVA7@SYpQ`gd7o1FHF9sZ3m|<>bG(VdgpSlA8yt1AMn!$d5~v45-rJ9_!&P?aKE0 zx4pbfQcGJlM&g>91Z`%^B43|&#pmm7)BFfa@`}_JCTN3MsQLZa#gINp99>{52=k(U zHNrm2=0&TwA=V|T%QtA0#G0HP7|_ z0v58f6_EtH?N(Ux=IFtwhffzglRUZ8TsQVkj(&k$ImZH!@SE-IGu94~DCqAT>S})r zr_0T^Hx#Ckl&#GXitmNozQ&)l3YlM}C(hT{(#*MFXI@y1III+_)xlcXvmiFLze1`6~|2kcEXMqok7h zAsPRY{ySL0!D#x^d;5dHEonXl;q@p+BW&H%Nn+lQsmO?Xv*7r?>!m{N=pJRwE3#(adVWh?k`oPH8WSNk|k4|ni^s;luD>Cm*-k27aL+xVBQ}W#+3KduR^Rf z;uWDuX^SbbuAcbhlq&YuZZRxe&?Dx>h>rDnCGBJF3shG!tye(Q4}2?u+A4q6yY5*Y zREX7ebw7Ar9lhaqCr1C10wgz}`DejF8eVf58u#$dWO2s<8uQkmvq_3ti@IKuGd(ti zkk-bZ-rdn0{DnoEnbOYA&Vq4nBed6tLk{>RHiHHN`t2gWwhQBxNA5FL)j%M!$Eo89 zJN50tHmL{51VJNSpu=7!O$u?`X0AMrJ=W@n&f!8jj|)XtMeiQJy_WmQ`ya6Ve!j)E z&@b`der%fF^O@%MKS1CIc@F~=iYegvGdw#0P6glARV$(9aPdl;FPV{%kuC&8Gny@E zuFL1RD)Myt`cnBj40OE6I|Ba1!p*Ibj0RROL_v8&@)<2|e}a-419%e>`Uh;tJeZ$2xCf~0*5K+W)mY2R@I`hP1eoP!}B8iiXpWW(>qr_mT zW1*Re)`_<<2ek;JaZ{YmJ!t9=mG3jf%rW#E9D?MT;$gc#bD*`TIWPGtn(}|?+@dEe zKEr?w%H8}}|ChGNugscozSW!m;rcMVFP4mq6$Oioucy`fwnwPeYK-sBmfvnZe<{d` zD|qY}&$;>AzQ&ffyR-A#)86f0YI*E+Wu;8F-QF#VH{HMPt|gwBw=DbeY5ydM`+CI1 zS6^b(G?9C_tzb10)k*Hix_@~bBS;w1Fgy3QpJ?^P?B2q4J(!h??;GN>>|lQblXC`9i=__3wvCj>cTJHjvZ0|Z zcTFC?t0?Q3i|aEpO&)HZe*%DVnQ3$k`fd`}@9GH#%7Y)S-~F&EHE_cdF_A&nSp?b_5hFrDi6DXZog4*@}mkOdYglE#g+WHA8gnls|WmzA; z(z2pBI5^0GiO(KMh26^FMi%RBF-eYBTZMs!hSl~~K4pBOGQ? z?4ZBb>af&M4!1j7ZV-)Gpp9f8#k1zWKl$_D09(DzQP8;*BjPLAqArfg=oLO%Z&Fb*|;n;N5 z8nyV3-Df{dd{c*6RNvvpAKs0Wx}5%!)zEITk}#EnF7sETXW9}a>fF~BJ#Css+WCq9 zEt_UEZM&LNG0N|H{C-yW44-g= z2h#Tq+x=QSR;Q-$SN^zm*L|JpaR(F9G#WO$ZHS@`wBXvfKHWLNk1VeiDSpRb12b<3 zo12)+v{6~6oC_DGIG)8!@VE(u`OU~5G);G-K+65p-NRiB@S zw=bTNVNN)K<1dZ`?;iMmVl3%$A>N6)m$kjAFN_c0YP*9xvrHUM%a(DQOvXEC5WbO$ zdSAUod>6a#ruF_EUrF%U+2Mn%Mv6pB#*7sEP~@}Se|zc!jTu8UuZ!ShW@p&A?p%}B z0y7ua1m_-DEl*4q#rNDyrk$0i1ZjN3r@2%hzsUV`)hr7JSh~0VexIoOs;SNp6C95= zbiC9kZ)aDgn@22epTQ}*rBOEBQS*h6=23H&IlEUyPUFZPI*KCF?u0g$t37;xaj(Wf zC+^3Wn^!Fbt=k#EP7iD>z&u-a59^FKfc|w2*gb;(t=UL3oaG?%=!MU@;L263YV=0F zUlHV*gCHzy^@g021Qw@g@eXTZ&mguUYl}ETZ?~ue45petQa|xoihpY(^WOO@4!ucD z`!7m7*GFOna4tb1-@$ zZ@D53hn8S`qs$9vG{roBSoA5%apwKv6v{ZaM9EYBm~UH1xVLN~hJsVqd9eK`OXNOT z^p_S0WH4VAkVpO&jy8V0GW13|{Eam1EM3s(=A1!Y{5UdFo(|=(&~Fh0)Iw~uLNGA@ zgQG>IReR+C)Tnycj;TOQ3#R|=r~B{~fTyZQTju}za&~t1A<1>u&NalcO?w3T)&cgh zN)}(3eH+1!P2o6+~HS&wa3zv25eI zCQO;L4VPtzbg-D1J}d}SpJkc=|h)<&GM1Ao@nwTgl>v`c$z|bZSpJ7rQ?D@@eJmL2g=@H$U+U7D@ zh7nRAMZ9 zbYQXLI`Kmm3-n7@B)SDWc1|)aKi4+6=4^dlwAM?G6kKls(whcH7?NiGG|<=mpT+DgsU5 zw@{2byr&532X*o;&h}?0kR4hRh$}nnLxhcTDP#9!?VWtp<-bHJVIUKQreQ#fbFxE{ zyWKpBLe^?L)6LqbR>;bFJ62D08@}-Gj2OkAZ{`p{T!RY>!3YhT)jsz&W;`!+0#(-_vlKJJWtLz`XdhR6$6jz5mTqXQkySJR3al?xnKW{zyT3D|RR__e@W2y$Ng zk`8Zi7Y6+cKVScupiaY%>HMFKPJ< zV#payTB^VD-9Ef;5#d!bJyDI&U55XQ+7ERd@KI+j>-fQm|Fxgu{4Rp6qC6*%zWXL$ zZS#0e%&3;v z`}g~=YOigZn0ivj-whpSSMxa0fjjBKj;Vf?Kbg}#;%Zb(X0;7eB$t-DFO8eCGgk5v zBT8Y!WdsGEUAnc5-d=X?c2&U_(#+TUyjQ%-d>53wEPhArlCatz(fwZiaTK)Xmt+1f znm$wqc5+X7#5?V;FJxr=4y+qEtmX5BLksC1iCF096C9~YrAcOPsr>Fp8iec_Kd~?{ zCM%ggS_~3&f3hr71QR+6&3s}3bK(lXkQ$2}W}nT$LGJ-pHbGG3?oD}F87zt|?YwV} zm}&+N{G1;b%Q(Li_)si4VPZzVZMCxa97x;Jt_ zovdjFE6cvo3^e3xy#{*Q7n2pz~zOyeu zBrs^O300?)HytWg5pbI(3&*DHYiYXVvbfM9*M4zx%Z-3BsZkkYMa*#?Vzo*LG%2L| zU0}ZeQh1#)J-c6ZMusmVwhex*7g|3Rv1RZV0zR;?2(^~yF0Nf z8G8Fw;kk0+1J~joS1=^M#>sr*E*KT3tG{2~N1S}1>j;-e==H8&yvlOq-Sdz#{fy&4 z^m}Do7_o=3(Ho4|r8Ph=flDn2Q5HALF~f<8dc2~+%ya&cnCFM>sc4XxRz>33SPV6fpj*vulzV9NQ_!8k!;5~AIG&;(Izhk-`Erj)B;FOe+MXM%V-YT$m`aCt z+SH|daO~gpt9+rlqM9ZyDIs)EiYaC8Vq}xPn&&>A&;gs7A}kNG!M5g696joGu|N1d@*GkqW|t zG^3mo`zC(BrkMNn6n}U1054{NM9tyJc=0xkn%_p~qKk1oxShg?k}7Q4z7@Ce$#L0e zf)rhtHPLHO@{5h2EQjq{+ndbbGUcfRw=U$bMmLb%ui;ZJX(ncA!F#%n=nuDQg~-E}(Tv=uMxZ-H#UmUl{g?A2YA87;%bT z1Y4(F>rhwbT?lBhs}R9tm++_sN;t0)RPM4tf2bR@5{ZHNH}(<)t73??lg# zSoY6hytMU(qx;j{IjyFgghjD-x%AMk_0(jXwIv5eZ7XnRZ%=oxaf~l4*CS_Yv{+yUk9Hv0rSZ0fLlo)I`b53YjNGHRpYfbAXN`374Y^5j>F97fZ>7bybX z=iC)xVVl|>0u{)}G`dabe<aO#;|8r1LpQ@Z` zfPS~io+*yvgHhIBxxR*iP{ZTL1h&D4KR_m$vYHcGm1 z=U-vi(U-VsLNn358|&29KG9|V?O(D#v~GH+J!OaG0ms(rH0vYv$Otx=C`rBzblEQQ zgX)axr#I*8kqTm*l&HIJf_*DJ_f|lR56`Uxnk%y=y)`Q!cLTITE_@T)L*PJWhY7>n z>MC+DoBW5lL44h2ze2d>PU-Njetx(##2}#nyofFuv4`cr39VRX^YYOr*P|Oy8TahMOfZIlWt|D&`t3C4KF!1aiM=JrSr@y`nYlM?qsQk6gzx0a(~8O3*OKT?jWyfxi4Vt@({-9baxfP z=BJmn*GGSZMXl=Gt$#;rGG-)Bo-RyO_!v#yi=fL>|5q|qRaFG$1;erLnTS;oY>xN9 zaK$qyf~mgfLhW2 z+t(g;6$H_E;dVMHzT1?~BbZeWzP9W4wh2S#l2yA_UrOk-J)u^+=g`}(-FqN_#qd4g zTK1G>2`}5@-jN)H;8xmtn2NaPC-mEH zSs6*Lwz>|)<^;A3Fx`>t1&~+LcvKaTnWa9*?$x)RjoXsfu&ecEeU>_w+I9*=Xu9kT zsIf}>MR(luo+|^ynLNBxT< z1vxPKiz6vM1BChb5@ff~g7t_)PV{nSWNC?DlF{kvqgq}}Ks69@kb2M5!(tqu7 zjp|A9X^63_aiZ26q(t@5BMIPc6-JOP|chY90 zR6%sN2Co@Sj#q4#2z|HO9DY9Uhc5*1SUt1#5MqqMJX!~G{ zk(LQdj^yO8+dDh!db5~`y(0=^UC%w?vedT@Pjp8so9I@=R`fupRdaUS{UV7yJES}h zEf18Bi*IwoSwPK1OJeHcYH?| zRr$Wyqc`HgxBu+j_Ws7yxdzEkPA2y=v0K6-YnmTl~OQ6OC`^aXUkDXAMT>; zPDW@G$il#br=Zaud{BKv-xfTVl8m{=+J`$YGOA!YK-&gy-kgC^7GQpxPEgkS_=`ay z`y2-ky~7fLrcWg^+ZK1M>cG}tsd)>;;l3r8?mz|4b)puK!D(0<8B*F zikG|mpgv5%L2ZMQ9#9sQFogNGd3P*Zu+URBPflYFZtIwe5ZX8Jd+VO44R_Q_IXrNGV0%gaNrh6bUw%|1s1W(z!^*TsCc zOb=z8e!c?Oq@kNT&sQxUN$FQUZ|N)yOyh@=EA-tYALl$!wlwj%QYsSejU3*Fv7UTS zW|S?%coJu(rF0>L`{I3ka1h4yeI>zT5gB3;@6E_Zd!(TnD1K|scR_Wm19f9?u58}u zJ;#I8UN|lT$FaGx*v_tkz;H`JNyeB+)6Sd=mqSyst|9%as$pfv!HC&mI)MfpsLM-^ z@v+|@3RbAF#>-A{)A<*p)rl~x?9Sa{sv9&Hht3Cid(`2Vf7~GPrY}%%`LG@xGi=m2 z!ae9+$s2BG{&5;|Lo#fRvjA(8p-3OV>x}F;-`}h}!Za8fNT5n&RI|1zMaYdNoO?b3 z1o55(%N_aKFI_o0q3J7EsZyWbo6xzh_6@0=;Gj~s;#$XQ*3^2~glmZ8BjNL%AyM#+ zA0;uORR>zJY4fcvCibmiHX+Gb%3P(w0gyOP5NnJ3+D!cJL$r)U>R$Au*p2%gzL}fx z>D04TDNm*goCoPUN%=Zzb3)zf^SaZ26c);McgJ8ilaYh~gAOKtDqn;B0U|rY0~a3S zw4Gz%*s11>%LQ&>@C_^8M-NRE2%sRC|A)TQ8ME&}hzW{u|4s5P&RXz-iTUwDB`da>1(w?l zZZ$s}_XS_lca5{71!XQMD}9r-MQHOmj?+mU4g=F1>tZhn`}gH4Py2zrFT zHQsnQv%WnP6(VHMgSNV`(yU>sv=>&XE{K`tUj%b$J^I>-(ZuU=|-!&^de6#`= zyRi|h0aX?^H;D*;5FA90*STD9S^w0@#p?5p*BNo>e!P~*8;#Sg0kMSP)CSF13nPPa zI30kU!xml;01rf4`)1J5fnYSJJpvs&ZsX5K{|PgA$ddap;T*GO02syJoX2tmFE#Wq zj}7x`H!R$+_n>JteVU^N7h1Y*i5IFzXNE`ia=j{9a)IxEsXuNp#xPRw}@^{554VpXhw3<=bb*C zBG@YBM;<0RlN*?}+P%CI#7Ee(PhAC;4ASQ6v;=P5_vGR~OW>~VanXTq;7V5dM1J8= zi2_p3(AZVP;pqsM7aAsGL z-}#Ch5id-$vV^V{CxjMYA#zW?FHe!OOVR7X6wXNNwd-+|!}YntzI@S@po89LHdt?} z{ti6hF`V6oz&DG}X%>Rj7w7s`52!i>4qrm($SGoV@92OJb~=Navg$QR0j(H6eG6zu z02}qI6+9dJN3O+F+FW<8>G^N#yZ#l&ofE^6Xm%1sQnqpoG|$6Dwl6}rfB~LR&28GEeMb_r{2Yxrb#@c|l@Io$Eu9}{YP-wcgFl{;x5DZvI{gAq zHf9$RtreVs9T;rn_O3p&F#@^8d*+U+7t_qPXKQN=-f7-P zIvz(Z90>)_fmlQcqIcN4Ax6KrEKGoSRWsoRuOHx>DOo6Kc}ot`iop?+i}==aT8HbU z87oow%;-&}cgXXLi&1hphI1{5yP^5-6NZjXZzU?+&eF6k;G2q-^1jmO9P>e`Ir)Uh z(fXbB%FJz<1y&e&Dv;#eR8mp5N`Ht3t^68Buv=1@y3{=#!=OXA;}` z5x3;0Avy0q0)D-NRr#Cm>>kFzuSaR@hRlGU*f50`ldBZk%+MH_u(_GA1j(jX2&PyK z`46rApQ&Frp<)e^!?`Xk2yE6|6Xye?ez7rEpF~ttO+$@)Raf^P2DH!O{hGHUQzmvE$;iKNFHng|ygt7MyZ@XxJkBL~;8 z@4!D>FP=#1z6v3zkX=a!|H)AYySYsN) z7c!p*9ZKl|kKg0OpyQ`^x^|fisizBB2*L7c2%mogpn~Jrspk<1A*iym^KVlRETJx4 z3SJUXQ-9D6Jl-dnuxLhroXZ9@K%gddq}^stUpCD}QmY=jdnwI*BRO9xPxT)3N+%PP zou~=d)vujuSaPBLVYxidB>3x5*XGxx@q05^I!%X29t-DCh0y0@JETb|ARr^iu2{84J8oC z-x|HqVpgec(~FrNh%iCyY|tWvbipI@hJf@d#@6cYd)(Vl9Deo(O4S^J@O_K{(qN!v zc!txi%Khn#t!cJ}@D{KdnKm2O>F$HJiXU3D-<;{xC9~Z~m#LLoA@#81hgV{x*G68< zZpdmU$_VjQ8B%rRhFf+dEMm$ERFcupPOP+mZo zn9{CK2!dpS{gKR;$LP(++A0!ilRTa@&=N(y4tr;;%vjf_Z|8VH1e!OS-Qfw8;%6^Oyi5?jNAw_qr z#Mf>3))Zi19xw#GJTlcnwFQ8U$mkwlA{oUt0}QYguJuq)c@xu3@#D`eX-Jk1OA%^| zX^}Q%fts^enoxeA$Xawo&1Z@=IiTS z@koK-iJL0&k4RRd+2L7_1n1saJpMElAt9ZY<9O1ZLZUr>Y!Hs?L%zPV(Pqw(3(8__ zrO&jKnkc6B zo7&ghWOeF1qHpd&k3V3wAYgmr6UV856UpqyH2hSPl|?-mjT)!}um}NmQJ244{zb}T zNpk%c2mwic6bSLJ$9-y)U>7HAZKxyXR2~}ZdXq%NdC%YKNB+6byaPU{E&=rR&H9AR zf`%^E)rQNkjFW%eDhx)Vu5j{HYTH7QBRZ5Ext^VUMqrx97(XlWz5cn$T#aRwfMhLM z0{Po1@6jx0Y@f--U=0g!Z!~fADuX`3Y?)E)KkjOI;Zi}_H_A#+kTzO*z(Pj8KjJie zt{}+Sv=3eMbQy62h-mYz>0v|8kJh>d z(&!*O;B}qtW2Yu2$a~>FG)0 zH1tVzRCp5X#KcMO{oF;SUnm-sZ7BvD0eRDVxZPTxNlTLxltE@qjC>f`Jpu7Z^4b8C z**MMPw?1h6A&GG)(8NP{#eN|W(&*%9bxsri z*4Fue?Tr5Y$ZT4QoiP&HMugf#?$e8@@02jK*;!WKFqGHuCWr<;hf_Yms?~@Rm9M2m z;%%pm&~i#gI7s9-4e`SBAUt1c(i-`i6rP*zaLoeVMvb1U>Sn%Oh-p2%Zu5d(kG#l*E@qE*{J+zsX)CaCxpO%lnCm=KP+DD_PE4V+0jN` z1jX=UBC}y?i;kLq{sk*6_92guxg)G=udvfJsz1-}E%`7Ceay(O%Ms;Tv}tiJ|FV;6 zVvsOXPkQ(ps1|0j-qkDMauQ^%EX;EJxPM6;iZkbWk*x6uij_SU;+4r+fr+FFOrMLD z>LfN%%Gaw8-=Flibf#$P3DmJ8v*es&MEt~=i~TM`0uQu@Fn<=B>xCAG{LF!q zl5!x8A_aOCp~>1&qg8}Zbb&G2%AE5#Oh$!qg4pC|@Hf!RLnyoiJm*HX?efzB)7YOi zpIaX?ll7~GqaQy5U6Earkd2LvyDyP6PokMlVJ!@LirR>r$W7UDX=e%vGmrZB?^3sD zSubiYp6~r&=Q+Hqg#I~j@2238-q)T{2snOX+Svx1inaOxnD1ROWeSJ^sJTicr6&Djy{4bUw@_pam1OwJhClTQxHn`tBpFbDe*y;i8 zwJPsPzqO+OQN1Iu4BtE)?X>qGu=7HRWT2;QTaI+K!&km03BN+IH}Qo@sG(YBtqqaW=1KtBEk_nsM}3Qpt%{}*&|r1C`on&u zX$}!ao0wfTP;9)@Uv5idPlr+3!m45yWH5rIoZN{QIV=82jVkf^2D+BnJur#FaoUt9L3NL-OHKPxvi>S~(N_z7|zNeiw( zU4e|WZzVb;<)%vHY$PIWql6N~USzWL zB%Chxv6#Af$vExrF>xs2D7u1YdVw9?A=q5DsLjx31n7$LQ8VVM5I|22li?~I=ny%+ zd|H_&VqAqDc>7*$^hUP=>x3uRuUNe2^r8|G$3EP|(KGaHe)Ym!&9V2SG**_m6t$m zZRg4(`>q#%xNI_E9G%F{$ze{E8S#5~Q4$amz;xn)>e{mq0$ijumd>i$yt@@Kpn2!2 zZk(DaLXaZ;%?Ub$_w86NOV#5=M!?+Nk{Za)ikm1d9$yn4-(lv+A^p|-ix^9KV04Ea zb0_Wfvss3=pCh5gIO%_iXQcyTf?D%BET@=&)rulQF!%4^C2RP{6x7Cv{;_lFVGW8) zvAAc-M?8FAGE%iX5()lmrzjHCg0ZbhzTO2oLETI}po4r)nLLhn@rFAxf{qGhG?wND zbn>+L?fPBwb_9YNIPqE;Kg3X<6m8l=xsBudO5u3qAW&3N`?Oz@=$h#<4 zGX6rzXB7Id%On(k<1$FMdH3D+A}G5BTKtyRnab+Mx?|UQOJu}u81OG zYZkfI$aVX+<>%51rGKK*|?(Zu0-#4NCO!3KC!9fQYi=Wup3`&X9@V_OafJp0Y<^qP& zbJBUau}6I?yJt3t`fkOd8L;$O#`XAS17QH&^ejOV4IQhWdMLv zffnbu`s<%l^f;__5B#{w4}{PIsW0xvBARV^pJc*{*Iy`*K~xNw-Uc={HlfV+^w;L^ z|7pPg%?ZbyjRh=nQQhC+AD)&X%Akjv-Sap#asP zH>Na?U9HXT1d!N{*s)w7rMQ=~XKhDk&CkGP{d(IU(!xBfPBCH1YoNql3y8jqnarG_ z_2)bu5h4l`?M$d+U}`c;pib|nFIVe-AWhvIACO>`D-&Dsf?<1%VKg4Mqj{P#PA`zf zxJ`%o*k@F}b3siv6n&Ch(XpOxc^o9DnAeqphwRL$+QD4n|CDLQT4h097!1Qj)%oJ6 z_BOKZ>{k9-Lo$R`ws!y-s>_MOe$eZx^cM?DItC#*UA!QKV5s+f4V(etw~PhftFyow z)w;9I(F`6`R(iR$uV3NP)C~fGR$vZ2AfYp<15qPa%OUp1(zT6R*Ff!{u^9}p*Jt`D zhb+nQFTEMhsMzb!#KMgxG2h4aWm)4pmV{=vZp-QxR(p(PB5$-En4kta#o6%*A4zXk zgYox4aJ!DBHF_12G24|hsqa)NK$3!>7y6j~u7eFw|NrKM5S&o8l#S?@USe2nCR?z5 zC0}Dlz~hr06B?}K=i2J~NQsj~MaM%&M!K(O*2nYUi2kSSy~}+P2P`eT%?Im~khHa> zAwwtUhPb1C2KK_Zw0ztC7hP+rpD^VeWCn%j&+H1$=9uO4=SrjCpv+n<{ixr@mDO*t z)GHl)alh#W7MOG_ruqKXZhdDtmKzM7>zb(dcK>KU`-T!V9<4*v?c$A)+d+uFg`Flf zbP?9#am0!mx(}Zw88Ops@6>rsIt=AT8_@5V>8lipxX}53^Q6n#+W(0?*l;hK=`$hY zUv=N+tE88M9~`&$muViU*9dwUf&-t1WTbqg5+yB(IgF$}o8+gnN`)G}9DDD-9Ud9( z;hI6r+y5}o@h9#)zD{c7oK*6%H*h zyy^bY?e)!`2i-mk=k0g)@galOhts{eF$8``S<{0ny^Uh4iOFpQke-U^k3yG>PY?N6 zl!&QqbP*Rjia3pLf__t)sUWj(gA9gOx$F3l?ayvUwx6=#hRZ6nW>Wqy0(Fo48XFq; zI#`?Im@GX3U<96~Y`Yzuxkq=Zgp5Q@IEY$aWG1A{u_7FZ&3$=!-Q85Xdq#cV_Pb4D zd}Pq4w8Ie&1)H2&qUQYqY!Q_f>ZGlw^N77Q_a@3|YqTa94$yu-Oj2NG`BC_i%xpz{ zMXk`i8TqbI4~JZABeo-fGyQfyy27xzv!7q$4%8Z#Co`n+5Z+F7U{@&OR>!oro+>$3 zPHFa4l)B}@@tK>~1st|o++oKBpXNG$-}aPOxqaI^sRL_``Jax}&uM}~>CS{Nt(Kss zd2VgZSb_vTtyXCeURXl)h6QoUQsgheck%J>;85Tq(VfS`^j9v5lhPCxJVHVyhWLE7 zwEV2>Z#cDY1Yi&;wscF|{_>5sbP|7B!$q5&!%%b0;Gu2ePyhT<0O+U7d8r-O$(E}f3@0hm-c>xLkn zN{ml}jY>~4u$J9nu}<&P19WEx!-|-gYri`XF*i(a(%N)jSfM|$J6whrQS%1b(rM&R zTo-GWH9TZi;33>3q|0yif$Mi{8S$yF@RxuXh+w4I{^%|8mf<8^o=zpID<@~s5+ zUZjAB-Z(F?bc_w@v8VtvOgIq@$f1600(+mbI=5d#Y!KM3(6qoGWn^U|cdd;R5GP8D z{}V?mDn{;)&p508lbX`)1M=8upgMCy#Ffa)7y~L}QgR2H?|TUEoX{ai{2Uw{!@0Z$ zpROcucu+G-QgKv&SDW2)7m4}3hfAwc-fJavLe$nS!~(EuQE%l}!P-zdo#rKD_MMTt zmmW=Yn=wf)c0J!XxL~K2kC}c3^N`GM5TJY%k9-+XH8UBSGFymf=U_T}r%O9ezcpHe zC2#G4bmKveo1v|`27Yjwv!BpO+2k44X^E^I z`ld+Chqa|~c;hW-u1t>(n(7KdZ-f;W^~M+L577eZs!4;h_$$b2{va6zofgNEjTdyU zZQRZM)yZS1N>I9p#o3>)^}90uYKX1MNN!yjjO><{-+&16$a~* zF8B;tjvZRj*XfIS@nq}Ewy1KA!br6b{p00}@W^hWCKFdkeME?V_(UtaTy;sLq<(P0 zDm?4>t1Z621~!Z?a6)b)r>v)T)C%){zVBSa8ye3M@vPB}MhI>|5QU^N)QJJRSl0p9 z>#MEab7vy2mNz-^2eujTskH?F(f_&_l9Jw@04|`>lkFak%hWw%6D7!Dco^T1a<(r@#<_o1nJJ6iYLk#{*Bel%v>^Q&wR zjSWx+{ySa3;@8@C$xnID7cz_n4#-MKFiD?H%P_E9+n?CRg4qDmE6w;nYoq}Gmo7nA=&4tB%0?mXW2_O7q52xBNP((p1-I;FKbxt6m$Sz-sRmBFLwe`TWm zjMS-3Hdq5lMbk46MAT$t$@i8ETz=jI9Ofg`!iT}z*o?;yvHt&_jtIcLqf zSnLzYX$OT$ueZqez9J$48^XwFc?|9qw*p9tYf>r^E)FKMRi-RUQ2M{&Ru`k2OBvws zYNGzG*Fc2NNbKVKqeaihS3e_^d6$-?fA>G7$(JwVVMcp?Fv&p$bQ1QAKX}1Z=<9R^;K7IBPEO# zPfl+0pHhO?MK$;?^dYDUqtm#M7aUR3I23^nFx>=+bi7;y_uEg!j$^Td8VJvlt4PfjT`3 z!>0!UD1|J&v}n02*=CH)IAMTX+MP>f-v6fB&*b<@l@=DnKb$a`gT`R=n1`n;#ujXt zAv)NS{mA2J=1-YQ@b?XwEW=&(Y6ZbK$|Ib&a8bqc*!=_y@^%XG25C8#0IQVACf*G)+h{ zES7uvHm$Nl#`flFzDgV|m3^l!LQx(bZr22fSJV1gVfQzyG~&5Ga$fjFY(OyzNQV*1y$dl$900rk$cz*VH)Ew1SNsLZk(nhT*wc{2n%g zE%j(?Y`nj6u<>eEB5-qXIwjG;XWS#ZuNm8q1zY{!`sDB5xT8ftt5^CX!E~e1cKh`M zuPAafLkcCm9{?s7tBH*jsDi21iSEA>h5=5e7Xa9|tXU_d94`8>_d)=LrHD z(=x^3;FTglC!6h2*w^?40Fg%X6omHq?RuvYf<{oi33JPo^Qf3GrB|n?4EW?vKE3CA zl6c*O3qhPBVft39Iyl1&dQ&v)=)v+EQWMKfogewunqbT>J=WMx$2a<>pQ{A!x2x8K z{a7`*xf?pL@;I=H=DiXjm2L^`&l1�@(Wt!29`qM`iNDhJ(GV-~Fd+64Ow{|2vn~ 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πS{N-Y8#38|Hv_b1*RlHY}>KRl;Y-eRcvxhy`yc z!vJGF^bE|)D}<#qf(PNzn2C!@N+Y49PdEnKF;+j7nb6^_rTlVGvS_CJ<9|XDh{j;P zY7^0Eh|_kE?!Z$GUMZD;QtC%{R0=+ZE~vy}!H01ADp31m)Ch;b59yourI783C^3Gdp*yg4pNBzF&FxjfTv`UzLh8s{XzVpy z=mj&H7ju;v7lNr)y1(3UiH*9?0FVf@A4)$ALXInSWe51nitQ{y?K}vEF;YOYk zz2&OcFoNC^R81q_3A#$V9Khr%oeojj8sbKI&MEzm8gSr`yiFj0mfe)^Fxh=bsEo4< zm}O#Z3~EF0&q6VVuR*XNu4Ts0lQb(F=xOi^%CP6dt-O^&C{FVWOcZT@73@Vx09Jtl z^4k`D8|1|ZAQJD{13iXT>;vW62v%b6Ll121`~T=$wZyQJ(N2l0tPpV;;1!h{fh!mP z>6TMi;lE?;Sdg_DjGo*hJwlBC)!4a+zys>BeC3Pjgc*AHTC@Ee;y2sKZJTzCFm0?v zs(YsvgkKRvX?&-OsK1pZk_fJccLOtd$w%&DP47RvA2NzzoVVR?7U*AdL^ zFi~$e@KDnzCj+?^T{ZFwRxrM(QnoXyV=OELLAxxUc7|rDoWcltVT$n5)bj5(n}$kC zGB;}_F-weDH;Zfl6P)+&Sk;HfAgNKp4!w@%E7Qz!*o0wCkvKys|GW8Y^q1!|V&|>h4?2 zLc_4xV1R_t5u$)mqz2fwwj9I@e{8X~)%G5xW00AFbC3RcI(4f-A78f!^{4CqQ`Q&; z?5H%=%Aksu3k_@U`6`{KVI8jpK3qL*)2zCsT~U$pLJ0i}$y8ZRS@LG8buUyIKa8k3 z1yq~wRPIkABcqmdVjwFZ;03Pz?*(LUGSMk5l((T7;=$_xw;R3yVkYC47{}YI)I{+$ zf}bta16;t{tEy=1Fosh7$9;1bJ^Y!yY7U69z?=Jm^wGvXlrvUde_>3vTSwGM(VZ_G z!BQai#;3M9Q&ZcDS^v8oOKHY3Sh0&)6*>kh2(w7IkLjrL0;f^o@$!)vhMyCzTey8h z;BwRG6Q98)H+(2&#c_z$8?c!7TmGIVti*pE`P5!M8mo4|NK}@Bt0n!XP#SVeVxrzc z3+1n2!Et42&QBd6==I{5v<6cqsYp!Bc(cc5NcsF4nzBT5-8yGu9UhtW4mMf7ra@T@ zg9ZZL`j5)*u|fyz#DOQ~PgDN8?7CIhM@QNhY44k&3bBcx)*w1>CT*Dhdt_~muw(WV ziQNUZ?v5k(p&Yh`yhMD*XM#Ssd`u;bcUj6qyGWigqeA?wA!7%2+zpLF;6m{!;kJIZ5du>d7}lrLsTNr&D;)ew%L>JJP| zC)^1WUb%Y6%3qIbp8)mogMU~*qn0P^UBJ$7C)H57Hh}ePONHHCpNkT;gn#;Hw*h6u z8KAQ*@OXZQ3I_84n|S3-Rq!GMZf}?Dv=xX}UHj!8>4~m}VPCXntTAutOn+H{Y6lu4 zbJ>t3xlAasyC-u?|MrvWe`HrTR$4J92mJqbFaDHJ<4QU7rg^)`(FBIv1@mDJT?`^@ zZ~X~6D98TjX<1(Svbc3`Wo=7M&wdH7e(6q_Tbgoz9ix_-)=UnWA0yuM9~JDpvhb)r zm_X*HW40Bpy$0Pgi*gSvXeelyIBcZoE~+-pKUk{`OWO0F3$H+8@_+u;pd77SaM`kQ r@M%E?4a3pZEO^^tin$|V`{Ybcc}UAfEuTFd@VjMXcD>TjG3NgOb@5NL literal 0 HcmV?d00001