diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 8b26d11..f7a329b 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -59,6 +59,7 @@ dependencies {
implementation("androidx.compose.ui:ui-graphics")
implementation("androidx.compose.ui:ui-tooling-preview")
implementation("androidx.compose.material:material")
+ implementation("androidx.navigation:navigation-runtime-ktx:2.7.4")
testImplementation("junit:junit:4.13.2")
androidTestImplementation("androidx.test.ext:junit:1.1.5")
androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
diff --git a/app/src/main/java/com/example/android_programming/Header/HeaderWithLogo.kt b/app/src/main/java/com/example/android_programming/Header/HeaderWithLogo.kt
new file mode 100644
index 0000000..e293015
--- /dev/null
+++ b/app/src/main/java/com/example/android_programming/Header/HeaderWithLogo.kt
@@ -0,0 +1,40 @@
+package com.example.android_programming.Header
+
+import androidx.compose.foundation.Image
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.padding
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import com.example.android_programming.R
+
+@Composable
+fun Header() {
+ Box(
+ modifier = Modifier
+ .fillMaxWidth()
+ .background(Color.White)
+ ) {
+ Image(
+ painter = painterResource(id = R.drawable.logo),
+ contentDescription = "image",
+ modifier = Modifier
+ .fillMaxWidth()
+ .height(50.dp)
+ .padding(0.dp, 10.dp, 0.dp, 0.dp)
+ )
+ }
+}
+
+
+@Composable
+@Preview
+fun NavigatePreview(){
+ Header()
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/android_programming/HomeScreen/BrandScrollBar/ItemFilterByBrand.kt b/app/src/main/java/com/example/android_programming/HomeScreen/BrandScrollBar/ItemFilterByBrand.kt
deleted file mode 100644
index e8e5efd..0000000
--- a/app/src/main/java/com/example/android_programming/HomeScreen/BrandScrollBar/ItemFilterByBrand.kt
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.example.android_programming.HomeScreen.BrandScrollBar
-
-data class ItemFilterByBrand(
- val imageId: Int,
-)
diff --git a/app/src/main/java/com/example/android_programming/HomeScreen/SneakerRecyclerView/CardSneaker.kt b/app/src/main/java/com/example/android_programming/HomeScreen/SneakerRecyclerView/CardSneaker.kt
deleted file mode 100644
index 097ad1a..0000000
--- a/app/src/main/java/com/example/android_programming/HomeScreen/SneakerRecyclerView/CardSneaker.kt
+++ /dev/null
@@ -1,72 +0,0 @@
-package com.example.android_programming.HomeScreen.SneakerRecyclerView
-
-import androidx.compose.foundation.Image
-import androidx.compose.foundation.background
-import androidx.compose.foundation.layout.Arrangement
-import androidx.compose.foundation.layout.Column
-import androidx.compose.foundation.layout.Row
-import androidx.compose.foundation.layout.padding
-import androidx.compose.foundation.layout.size
-import androidx.compose.foundation.shape.RoundedCornerShape
-import androidx.compose.material.Button
-import androidx.compose.material.Text
-import androidx.compose.runtime.Composable
-import androidx.compose.ui.Alignment
-import androidx.compose.ui.Modifier
-import androidx.compose.ui.draw.clip
-import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.layout.ContentScale
-import androidx.compose.ui.res.painterResource
-import androidx.compose.ui.tooling.preview.Preview
-import androidx.compose.ui.unit.dp
-import androidx.compose.ui.unit.sp
-import com.example.android_programming.R
-import com.example.android_programming.SneakerItem
-
-@Composable
-fun CardSneaker(item: SneakerItem) {
- Column(
- horizontalAlignment = Alignment.CenterHorizontally,
- modifier = Modifier
- .padding(20.dp)
- .clip(RoundedCornerShape(10.dp))
- .background(Color.LightGray)
- ) {
- Image(
- painter = painterResource(id = item.imageId),
- contentDescription = "image",
- contentScale = ContentScale.Crop,
- modifier = Modifier
- .padding(43.dp, 5.dp, 43.dp)
- .size(70.dp)
- )
- Row(
- horizontalArrangement = Arrangement.SpaceEvenly
- ){
- Column(
- horizontalAlignment = Alignment.Start
- ) {
- Text(text = item.name)
- Text(text = item.price.toString(), color = Color.Red)
- }
- Column(
- horizontalAlignment = Alignment.CenterHorizontally
- ) {
- Button(
- onClick = { /*TODO*/ },
- modifier = Modifier
- .size(20.dp)
- ) {
- Text(text = "+", fontSize = 16.sp)
- }
- }
- }
- }
-}
-
-
-@Composable
-@Preview
-fun CardSneakerPreview(){
- CardSneaker(SneakerItem(R.drawable.sneaker, "Jordan", 159.99))
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/android_programming/MainActivity.kt b/app/src/main/java/com/example/android_programming/MainActivity.kt
index 600d7df..a5e10a3 100644
--- a/app/src/main/java/com/example/android_programming/MainActivity.kt
+++ b/app/src/main/java/com/example/android_programming/MainActivity.kt
@@ -3,13 +3,29 @@ package com.example.android_programming
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Modifier
+import com.example.android_programming.Header.Header
import com.example.android_programming.Navigation.Navigate
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
- Navigate()
+ MainContent()
}
}
}
+
+@Composable
+fun MainContent() {
+ Column(
+ modifier = Modifier
+ .fillMaxSize()
+ ) {
+ Header()
+ Navigate()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/android_programming/Navigation/NavController.kt b/app/src/main/java/com/example/android_programming/Navigation/NavController.kt
index 4a89694..4189853 100644
--- a/app/src/main/java/com/example/android_programming/Navigation/NavController.kt
+++ b/app/src/main/java/com/example/android_programming/Navigation/NavController.kt
@@ -4,11 +4,13 @@ import androidx.compose.runtime.Composable
import androidx.navigation.NavHostController
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
-import com.example.android_programming.HomeScreen.HomeScreen
-import com.example.android_programming.LikeScreen.LikeScreen
-import com.example.android_programming.Screens.OrderScreen
-import com.example.android_programming.ProfileScreen.Profile.ProfileScreen
-import com.example.android_programming.ProfileScreen.SignIn.LoginScreen
+import com.example.android_programming.Screens.HomeScreen.HomeScreen
+import com.example.android_programming.Screens.LikeScreen.LikeScreen
+import com.example.android_programming.Screens.OrderScreen.OrderScreen
+import com.example.android_programming.Screens.ProfileScreen.Profile.Person
+import com.example.android_programming.Screens.ProfileScreen.Profile.ProfileScreen
+import com.example.android_programming.Screens.ProfileScreen.SignIn.LoginScreen
+import com.example.android_programming.Screens.ProfileScreen.SignUp.SignUpScreen
@Composable
fun NavController(navController: NavHostController){
@@ -31,5 +33,11 @@ fun NavController(navController: NavHostController){
composable(NavItem.SignIn.route){
LoginScreen()
}
+ composable(NavItem.SignUp.route){
+ SignUpScreen()
+ }
+ composable(NavItem.Person.route){
+ Person()
+ }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/android_programming/Navigation/NavItem.kt b/app/src/main/java/com/example/android_programming/Navigation/NavItem.kt
index 665c96f..7486284 100644
--- a/app/src/main/java/com/example/android_programming/Navigation/NavItem.kt
+++ b/app/src/main/java/com/example/android_programming/Navigation/NavItem.kt
@@ -13,4 +13,6 @@ sealed class NavItem(val route: String, val icon: ImageVector?){
object Order : NavItem("order", Icons.Default.ShoppingCart)
object Profile : NavItem("profile", Icons.Default.Person)
object SignIn : NavItem("login", null)
+ object SignUp : NavItem("signup", null)
+ object Person : NavItem("person", null)
}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/android_programming/Screens/HomeScreen/BrandScrollBar/ItemFilterByBrand.kt b/app/src/main/java/com/example/android_programming/Screens/HomeScreen/BrandScrollBar/ItemFilterByBrand.kt
new file mode 100644
index 0000000..cdceaf6
--- /dev/null
+++ b/app/src/main/java/com/example/android_programming/Screens/HomeScreen/BrandScrollBar/ItemFilterByBrand.kt
@@ -0,0 +1,5 @@
+package com.example.android_programming.Screens.HomeScreen.BrandScrollBar
+
+data class ItemFilterByBrand(
+ val imageId: Int,
+)
diff --git a/app/src/main/java/com/example/android_programming/HomeScreen/BrandScrollBar/ItemRow.kt b/app/src/main/java/com/example/android_programming/Screens/HomeScreen/BrandScrollBar/ItemRow.kt
similarity index 87%
rename from app/src/main/java/com/example/android_programming/HomeScreen/BrandScrollBar/ItemRow.kt
rename to app/src/main/java/com/example/android_programming/Screens/HomeScreen/BrandScrollBar/ItemRow.kt
index a7327a9..a95b98a 100644
--- a/app/src/main/java/com/example/android_programming/HomeScreen/BrandScrollBar/ItemRow.kt
+++ b/app/src/main/java/com/example/android_programming/Screens/HomeScreen/BrandScrollBar/ItemRow.kt
@@ -1,4 +1,4 @@
-package com.example.android_programming.HomeScreen.BrandScrollBar
+package com.example.android_programming.Screens.HomeScreen.BrandScrollBar
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
@@ -12,18 +12,20 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.ContentScale
+import androidx.compose.ui.res.colorResource
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import com.example.android_programming.R
+
@Composable
fun ItemRow(item: ItemFilterByBrand) {
Column(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier
.clip(RoundedCornerShape(10.dp))
- .background(Color.LightGray)
+ .background(colorResource(id = R.color.figma))
) {
Image(
diff --git a/app/src/main/java/com/example/android_programming/HomeScreen/HomeScreen.kt b/app/src/main/java/com/example/android_programming/Screens/HomeScreen/HomeScreen.kt
similarity index 87%
rename from app/src/main/java/com/example/android_programming/HomeScreen/HomeScreen.kt
rename to app/src/main/java/com/example/android_programming/Screens/HomeScreen/HomeScreen.kt
index d1a504c..700e93f 100644
--- a/app/src/main/java/com/example/android_programming/HomeScreen/HomeScreen.kt
+++ b/app/src/main/java/com/example/android_programming/Screens/HomeScreen/HomeScreen.kt
@@ -1,4 +1,4 @@
-package com.example.android_programming.HomeScreen
+package com.example.android_programming.Screens.HomeScreen
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
@@ -17,15 +17,18 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
-import com.example.android_programming.HomeScreen.BrandScrollBar.ItemFilterByBrand
-import com.example.android_programming.HomeScreen.BrandScrollBar.ItemRow
-import com.example.android_programming.HomeScreen.SearchField.SearchField
-import com.example.android_programming.HomeScreen.SneakerRecyclerView.CardSneaker
+import androidx.navigation.NavHostController
+import androidx.navigation.compose.rememberNavController
+import com.example.android_programming.Screens.HomeScreen.BrandScrollBar.ItemFilterByBrand
+import com.example.android_programming.Screens.HomeScreen.BrandScrollBar.ItemRow
+import com.example.android_programming.Screens.HomeScreen.SearchField.SearchField
+import com.example.android_programming.Screens.HomeScreen.SneakerRecyclerView.CardSneaker
import com.example.android_programming.SneakerItem
import com.example.android_programming.R
@Composable
fun HomeScreen() {
+ val navController = rememberNavController()
Column(
modifier = Modifier
.fillMaxSize()
@@ -104,7 +107,7 @@ fun HomeScreen() {
) {
for (item in chunkedListItem) {
// Создайте карточку для каждого элемента
- CardSneaker(item = item)
+ CardSneaker(item = item, navController = navController)
}
}
}
diff --git a/app/src/main/java/com/example/android_programming/HomeScreen/SearchField/SearchField.kt b/app/src/main/java/com/example/android_programming/Screens/HomeScreen/SearchField/SearchField.kt
similarity index 91%
rename from app/src/main/java/com/example/android_programming/HomeScreen/SearchField/SearchField.kt
rename to app/src/main/java/com/example/android_programming/Screens/HomeScreen/SearchField/SearchField.kt
index fe52a8c..7b19068 100644
--- a/app/src/main/java/com/example/android_programming/HomeScreen/SearchField/SearchField.kt
+++ b/app/src/main/java/com/example/android_programming/Screens/HomeScreen/SearchField/SearchField.kt
@@ -1,4 +1,4 @@
-package com.example.android_programming.HomeScreen.SearchField;
+package com.example.android_programming.Screens.HomeScreen.SearchField;
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
@@ -19,8 +19,10 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.vector.ImageVector
+import androidx.compose.ui.res.colorResource
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.unit.dp
+import com.example.android_programming.R
@Composable
fun SearchField(
@@ -32,7 +34,7 @@ fun SearchField(
Box(
modifier = modifier
.fillMaxWidth()
- .background(Color.LightGray)
+ .background(colorResource(id = R.color.figma))
.padding(horizontal = 16.dp, vertical = 8.dp)
) {
Row(
diff --git a/app/src/main/java/com/example/android_programming/Screens/HomeScreen/SneakerRecyclerView/CardSneaker.kt b/app/src/main/java/com/example/android_programming/Screens/HomeScreen/SneakerRecyclerView/CardSneaker.kt
new file mode 100644
index 0000000..2279753
--- /dev/null
+++ b/app/src/main/java/com/example/android_programming/Screens/HomeScreen/SneakerRecyclerView/CardSneaker.kt
@@ -0,0 +1,95 @@
+package com.example.android_programming.Screens.HomeScreen.SneakerRecyclerView
+
+import androidx.compose.foundation.Image
+import androidx.compose.foundation.background
+import androidx.compose.foundation.clickable
+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.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.layout.widthIn
+import androidx.compose.foundation.shape.RoundedCornerShape
+import androidx.compose.material.Button
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.draw.clip
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.layout.ContentScale
+import androidx.compose.ui.platform.LocalConfiguration
+import androidx.compose.ui.res.colorResource
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import androidx.navigation.NavHostController
+import com.example.android_programming.R
+import com.example.android_programming.SneakerItem
+
+@Composable
+fun CardSneaker(item: SneakerItem, navController: NavHostController) {
+ val maxWidth = (LocalConfiguration.current.screenWidthDp / 2).dp
+
+ Box(
+ modifier = Modifier
+ .padding(4.dp)
+ .widthIn(maxWidth)
+ .clickable {
+ navController.navigate("signup")
+ }
+ ) {
+ Column(
+ horizontalAlignment = Alignment.CenterHorizontally,
+ modifier = Modifier
+ .clip(RoundedCornerShape(10.dp))
+ .background(colorResource(id = R.color.figma))
+ .widthIn(maxWidth)
+ ) {
+ Image(
+ painter = painterResource(id = item.imageId),
+ contentDescription = "image",
+ contentScale = ContentScale.FillWidth,
+ modifier = Modifier
+ .size(100.dp)
+ )
+
+ Column {
+ Row(
+ modifier = Modifier
+ .widthIn(maxWidth),
+ horizontalArrangement = Arrangement.SpaceBetween,
+ ) {
+ Column(
+ horizontalAlignment = Alignment.Start,
+ modifier = Modifier
+ .padding(10.dp, 0.dp)
+ ) {
+ Text(text = item.name)
+ Text(text = item.price.toString(), color = Color.Red)
+ }
+ Column(
+ modifier = Modifier
+ .padding(10.dp)
+ ) {
+ Button(
+ onClick = { /*TODO*/ },
+ modifier = Modifier
+ .size(40.dp, 20.dp)
+ ) {
+ Text(text = "+", fontSize = 4.sp)
+ }
+ }
+ }
+ }
+ }
+ }
+}
+@Composable
+@Preview
+fun CardSneakerPreview(){
+// CardSneaker(SneakerItem(R.drawable.sneaker, "Air Jordan 1", 159.99))
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/android_programming/LikeScreen/CardSneaker.kt b/app/src/main/java/com/example/android_programming/Screens/LikeScreen/CardSneaker.kt
similarity index 84%
rename from app/src/main/java/com/example/android_programming/LikeScreen/CardSneaker.kt
rename to app/src/main/java/com/example/android_programming/Screens/LikeScreen/CardSneaker.kt
index 00d6781..10b1ecc 100644
--- a/app/src/main/java/com/example/android_programming/LikeScreen/CardSneaker.kt
+++ b/app/src/main/java/com/example/android_programming/Screens/LikeScreen/CardSneaker.kt
@@ -1,4 +1,4 @@
-package com.example.android_programming.LikeScreen
+package com.example.android_programming.Screens.LikeScreen
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
@@ -17,6 +17,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.layout.ContentScale
+import androidx.compose.ui.res.colorResource
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
@@ -31,14 +32,14 @@ fun CardSneakerLike(item: SneakerItem) {
.fillMaxWidth()
.padding(10.dp)
.clip(RoundedCornerShape(10.dp))
- .background(Color.LightGray),
+ .background(colorResource(id = R.color.figma)),
verticalAlignment = Alignment.CenterVertically,
horizontalArrangement = Arrangement.SpaceBetween
) {
Image(
painter = painterResource(id = item.imageId),
contentDescription = "image",
- contentScale = ContentScale.Crop,
+ contentScale = ContentScale.FillWidth,
modifier = Modifier
.size(70.dp)
.padding(10.dp)
@@ -54,14 +55,13 @@ fun CardSneakerLike(item: SneakerItem) {
Text(text = "${item.price} USD", color = Color.Red, fontSize = 16.sp)
}
- // Кнопка для удаления
Button(
- onClick = { },
+ onClick = { /*TODO*/ },
modifier = Modifier
- .size(40.dp)
- .padding(10.dp)
+ .size(40.dp, 20.dp)
+ .padding(end = 16.dp)
) {
- Text(text = "X", fontSize = 16.sp)
+ Text(text = "+", fontSize = 4.sp)
}
}
}
diff --git a/app/src/main/java/com/example/android_programming/LikeScreen/LikeScreen.kt b/app/src/main/java/com/example/android_programming/Screens/LikeScreen/LikeScreen.kt
similarity index 97%
rename from app/src/main/java/com/example/android_programming/LikeScreen/LikeScreen.kt
rename to app/src/main/java/com/example/android_programming/Screens/LikeScreen/LikeScreen.kt
index 717cab3..8ffa206 100644
--- a/app/src/main/java/com/example/android_programming/LikeScreen/LikeScreen.kt
+++ b/app/src/main/java/com/example/android_programming/Screens/LikeScreen/LikeScreen.kt
@@ -1,4 +1,4 @@
-package com.example.android_programming.LikeScreen;
+package com.example.android_programming.Screens.LikeScreen;
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
diff --git a/app/src/main/java/com/example/android_programming/Screens/OrderScreen.kt b/app/src/main/java/com/example/android_programming/Screens/OrderScreen.kt
deleted file mode 100644
index 62056d6..0000000
--- a/app/src/main/java/com/example/android_programming/Screens/OrderScreen.kt
+++ /dev/null
@@ -1,36 +0,0 @@
-package com.example.android_programming.Screens
-
-import androidx.compose.foundation.background
-import androidx.compose.foundation.layout.Box
-import androidx.compose.foundation.layout.fillMaxSize
-import androidx.compose.material.MaterialTheme
-import androidx.compose.material.Text
-import androidx.compose.runtime.Composable
-import androidx.compose.ui.Alignment
-import androidx.compose.ui.Modifier
-import androidx.compose.ui.graphics.Color
-import androidx.compose.ui.text.font.FontWeight
-import androidx.compose.ui.tooling.preview.Preview
-
-@Composable
-fun OrderScreen() {
- Box(
- modifier = Modifier
- .fillMaxSize()
- .background(Color.White),
- contentAlignment = Alignment.Center
- ) {
- Text(
- text = "Order",
- fontSize = MaterialTheme.typography.h3.fontSize,
- fontWeight = FontWeight.Bold,
- color = Color.Black
- )
- }
-}
-
-@Composable
-@Preview
-fun OrderScreenPreview(){
- OrderScreen()
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/android_programming/Screens/OrderScreen/OrderScreen.kt b/app/src/main/java/com/example/android_programming/Screens/OrderScreen/OrderScreen.kt
new file mode 100644
index 0000000..10f711e
--- /dev/null
+++ b/app/src/main/java/com/example/android_programming/Screens/OrderScreen/OrderScreen.kt
@@ -0,0 +1,245 @@
+package com.example.android_programming.Screens.OrderScreen
+
+import android.widget.ScrollView
+import androidx.compose.foundation.background
+import androidx.compose.foundation.border
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.BoxWithConstraints
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.fillMaxHeight
+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.lazy.LazyColumn
+import androidx.compose.foundation.lazy.itemsIndexed
+import androidx.compose.foundation.shape.RoundedCornerShape
+import androidx.compose.foundation.text.KeyboardActions
+import androidx.compose.foundation.text.KeyboardOptions
+import androidx.compose.material.Button
+import androidx.compose.material.MaterialTheme
+import androidx.compose.material.Text
+import androidx.compose.material.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.draw.clip
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.colorResource
+import androidx.compose.ui.text.TextStyle
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.text.input.ImeAction
+import androidx.compose.ui.text.input.KeyboardType
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import com.example.android_programming.R
+import com.example.android_programming.Screens.LikeScreen.CardSneakerLike
+import com.example.android_programming.SneakerItem
+
+
+@Composable
+fun OrderScreen() {
+
+ var address by remember { mutableStateOf("") }
+ var city by remember { mutableStateOf("") }
+ var number by remember { mutableStateOf("") }
+
+ Column(
+ modifier = Modifier
+ .fillMaxSize()
+ .background(Color.White)
+ .padding(16.dp),
+ ){
+ Row(
+ modifier = Modifier
+ .fillMaxWidth()
+ .background(colorResource(id = R.color.figma)),
+ horizontalArrangement = Arrangement.Center
+ ) {
+ Column(
+ modifier = Modifier
+ .padding(16.dp),
+ horizontalAlignment = Alignment.CenterHorizontally
+
+ ) {
+ Text(text = "Delivery Address", fontSize = 24.sp, fontWeight = FontWeight.Bold)
+
+ Spacer(modifier = Modifier.height(16.dp))
+
+ TextField(
+ value = address,
+ onValueChange = { address = it },
+ modifier = Modifier
+ .fillMaxWidth()
+ .height(50.dp)
+ .border(1.dp, Color.Gray, RoundedCornerShape(4.dp)),
+ singleLine = true,
+ keyboardOptions = KeyboardOptions(
+ keyboardType = KeyboardType.Text,
+ imeAction = ImeAction.Next
+ ),
+ keyboardActions = KeyboardActions(
+ onNext = {
+
+ }
+ ),
+ placeholder = {
+ Text(
+ text = "Address",
+ style = TextStyle(fontSize = 12.sp)
+ )
+ }
+ )
+
+ Spacer(modifier = Modifier.height(16.dp))
+
+ TextField(
+ value = city,
+ onValueChange = { city = it },
+ modifier = Modifier
+ .fillMaxWidth()
+ .height(50.dp)
+ .border(1.dp, Color.Gray, RoundedCornerShape(4.dp)),
+ singleLine = true,
+ keyboardOptions = KeyboardOptions(
+ keyboardType = KeyboardType.Text,
+ imeAction = ImeAction.Next
+ ),
+ keyboardActions = KeyboardActions(
+ onNext = {
+
+ }
+ ),
+ placeholder = {
+ Text(
+ text = "City",
+ style = TextStyle(fontSize = 12.sp)
+ )
+ }
+ )
+
+ Spacer(modifier = Modifier.height(16.dp))
+
+ TextField(
+ value = number,
+ onValueChange = { number = it },
+ modifier = Modifier
+ .fillMaxWidth()
+ .height(50.dp)
+ .border(1.dp, Color.Gray, RoundedCornerShape(4.dp)),
+ singleLine = true,
+ keyboardOptions = KeyboardOptions(
+ keyboardType = KeyboardType.Text,
+ imeAction = ImeAction.Next
+ ),
+ keyboardActions = KeyboardActions(
+ onNext = {
+
+ }
+ ),
+ placeholder = {
+ Text(
+ text = "Number",
+ style = TextStyle(fontSize = 12.sp)
+ )
+ }
+ )
+ }
+ }
+ Row {
+ LazyColumn {
+ itemsIndexed(
+ listOf(
+ SneakerItem(R.drawable.sneaker, "Jordan", 159.99),
+ )
+ ){_, item->
+ CardSneakerLike(item = item)
+ }
+ }
+ }
+ Row(
+ modifier = Modifier
+ .fillMaxWidth()
+ .background(colorResource(id = R.color.figma)),
+ horizontalArrangement = Arrangement.SpaceBetween
+ ){
+ Row(
+ modifier = Modifier.weight(1f),
+ horizontalArrangement = Arrangement.Start
+ ){
+ Text(text = "Sub total", fontSize = 15.sp)
+ }
+ Row(
+ modifier = Modifier.weight(1f),
+ horizontalArrangement = Arrangement.End
+ ){
+ Text(text = "319.99 $", fontSize = 15.sp)
+ }
+ }
+ Row(
+ modifier = Modifier
+ .fillMaxWidth()
+ .background(colorResource(id = R.color.figma)),
+ horizontalArrangement = Arrangement.SpaceBetween
+ ){
+ Row(
+ modifier = Modifier.weight(1f),
+ horizontalArrangement = Arrangement.Start
+ ){
+ Text(text = "Taxes", fontSize = 15.sp)
+ }
+ Row(
+ modifier = Modifier.weight(1f),
+ horizontalArrangement = Arrangement.End
+ ){
+ Text(text = "180 $", fontSize = 15.sp)
+ }
+ }
+ Row(
+ modifier = Modifier
+ .fillMaxWidth()
+ .background(colorResource(id = R.color.figma)),
+ horizontalArrangement = Arrangement.SpaceBetween
+ ){
+ Row(
+ modifier = Modifier.weight(1f),
+ horizontalArrangement = Arrangement.Start
+ ){
+ Text(text = "Total", fontSize = 15.sp)
+ }
+ Row(
+ modifier = Modifier.weight(1f),
+ horizontalArrangement = Arrangement.End
+ ){
+ Text(text = "1900 $", fontSize = 15.sp)
+ }
+ }
+
+ Spacer(modifier = Modifier.height(16.dp))
+
+ Button(
+ onClick = {
+
+ },
+ modifier = Modifier
+ .fillMaxWidth()
+ .clip(RoundedCornerShape(20.dp))
+ ) {
+ Text("Confirm order")
+ }
+ }
+}
+
+@Composable
+@Preview
+fun OrderScreenPreview(){
+ OrderScreen()
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/android_programming/Screens/ProfileScreen/Profile/Profile.kt b/app/src/main/java/com/example/android_programming/Screens/ProfileScreen/Profile/Profile.kt
new file mode 100644
index 0000000..d15bcd1
--- /dev/null
+++ b/app/src/main/java/com/example/android_programming/Screens/ProfileScreen/Profile/Profile.kt
@@ -0,0 +1,74 @@
+package com.example.android_programming.Screens.ProfileScreen.Profile
+
+import androidx.compose.foundation.Image
+import androidx.compose.foundation.background
+import androidx.compose.foundation.border
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.Spacer
+import androidx.compose.foundation.layout.fillMaxSize
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.size
+import androidx.compose.foundation.shape.CircleShape
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.draw.clip
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.layout.ContentScale
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import com.example.android_programming.R
+
+@Composable
+fun Person() {
+ Column(
+ modifier = Modifier
+ .background(Color.White)
+ .fillMaxSize()
+ .padding(16.dp),
+ verticalArrangement = Arrangement.Top,
+ horizontalAlignment = Alignment.CenterHorizontally
+ ) {
+ Image(
+ contentScale = ContentScale.FillBounds,
+ painter = painterResource(id = R.drawable.shailushai),
+ contentDescription = null,
+ modifier = Modifier
+ .size(120.dp)
+ .clip(CircleShape)
+ .border(2.dp, Color.Gray, CircleShape)
+ .background(Color.Gray)
+ .padding(8.dp)
+ )
+
+ Spacer(modifier = Modifier.height(16.dp))
+
+ Text(
+ text = "Шайлушай",
+ fontSize = 18.sp,
+ fontWeight = FontWeight.Bold
+ )
+
+ Text(
+ text = "shailushai@example.com",
+ fontSize = 16.sp,
+ color = Color.Gray
+ )
+
+ Spacer(modifier = Modifier.height(16.dp))
+
+ }
+}
+
+
+@Preview
+@Composable
+fun PersonPreview(){
+ Person()
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/android_programming/ProfileScreen/Profile/ProfileScreen.kt b/app/src/main/java/com/example/android_programming/Screens/ProfileScreen/Profile/ProfileScreen.kt
similarity index 57%
rename from app/src/main/java/com/example/android_programming/ProfileScreen/Profile/ProfileScreen.kt
rename to app/src/main/java/com/example/android_programming/Screens/ProfileScreen/Profile/ProfileScreen.kt
index 19a1d51..8eb1406 100644
--- a/app/src/main/java/com/example/android_programming/ProfileScreen/Profile/ProfileScreen.kt
+++ b/app/src/main/java/com/example/android_programming/Screens/ProfileScreen/Profile/ProfileScreen.kt
@@ -1,24 +1,28 @@
-package com.example.android_programming.ProfileScreen.Profile;
+package com.example.android_programming.Screens.ProfileScreen.Profile;
import androidx.compose.foundation.background
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.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.requiredSize
+import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.Button
import androidx.compose.material.Text
import androidx.compose.runtime.Composable;
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
+import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.navigation.NavHostController
import androidx.navigation.compose.rememberNavController
import com.example.android_programming.Navigation.NavController
-import com.example.android_programming.ProfileScreen.SignIn.LoginScreen
+import com.example.android_programming.Screens.ProfileScreen.SignIn.LoginScreen
@Composable
fun ProfileScreen(navController: NavHostController) {
@@ -30,23 +34,45 @@ fun ProfileScreen(navController: NavHostController) {
horizontalAlignment = Alignment.CenterHorizontally
){
Row(
- modifier = Modifier.padding(vertical = 16.dp)
+ modifier = Modifier
+ .clip(RoundedCornerShape(20.dp))
+ ){
+ Button(
+ onClick = {
+ navController.navigate("person")
+ },
+ modifier = Modifier
+ .requiredSize(300.dp, 40.dp)
+ ) {
+ Text(text = "Profile")
+ }
+ }
+ Spacer(modifier = Modifier.height(16.dp))
+ Row(
+ modifier = Modifier
+ .clip(RoundedCornerShape(20.dp))
){
Button(
onClick = {
navController.navigate("login")
},
modifier = Modifier
- .requiredSize(100.dp, 40.dp)
+ .requiredSize(300.dp, 40.dp)
) {
Text(text = "Sign In")
}
}
- Row{
+ Spacer(modifier = Modifier.height(16.dp))
+ Row(
+ modifier = Modifier
+ .clip(RoundedCornerShape(20.dp))
+ ){
Button(
- onClick = { /*TODO*/ },
+ onClick = {
+ navController.navigate("signup")
+ },
modifier = Modifier
- .requiredSize(100.dp, 40.dp)
+ .requiredSize(300.dp, 40.dp)
) {
Text(text = "Sign Up")
}
diff --git a/app/src/main/java/com/example/android_programming/ProfileScreen/SignIn/SignInScreen.kt b/app/src/main/java/com/example/android_programming/Screens/ProfileScreen/SignIn/SignInScreen.kt
similarity index 87%
rename from app/src/main/java/com/example/android_programming/ProfileScreen/SignIn/SignInScreen.kt
rename to app/src/main/java/com/example/android_programming/Screens/ProfileScreen/SignIn/SignInScreen.kt
index a48efea..6faf9c2 100644
--- a/app/src/main/java/com/example/android_programming/ProfileScreen/SignIn/SignInScreen.kt
+++ b/app/src/main/java/com/example/android_programming/Screens/ProfileScreen/SignIn/SignInScreen.kt
@@ -1,4 +1,4 @@
-package com.example.android_programming.ProfileScreen.SignIn
+package com.example.android_programming.Screens.ProfileScreen.SignIn
import androidx.compose.foundation.background
import androidx.compose.foundation.border
@@ -12,8 +12,10 @@ import androidx.compose.material.Text
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
+import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.input.pointer.PointerIcon.Companion.Text
+import androidx.compose.ui.res.colorResource
import androidx.compose.ui.semantics.SemanticsProperties.Text
import androidx.compose.ui.text.Placeholder
import androidx.compose.ui.text.font.FontWeight
@@ -25,17 +27,19 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.navigation.NavController
import androidx.navigation.NavHostController
+import com.example.android_programming.R
import androidx.compose.material.Text as Text1
@Composable
-fun LoginScreen(navController : NavHostController) {
+fun LoginScreen() {
var username by remember { mutableStateOf("") }
var password by remember { mutableStateOf("") }
Column(
modifier = Modifier
.fillMaxSize()
- .background(Color.White)
+ .clip(RoundedCornerShape(25.dp))
+ .background(colorResource(id = R.color.figma))
.padding(15.dp, 0.dp)
,
verticalArrangement = Arrangement.Center,
@@ -93,9 +97,12 @@ fun LoginScreen(navController : NavHostController) {
Button(
onClick = {
- navController.navigate("login")
+
},
- modifier = Modifier.fillMaxWidth()
+ modifier = Modifier
+ .fillMaxWidth()
+ .padding(8.dp, 0.dp, 8.dp, 0.dp)
+ .clip(RoundedCornerShape(20.dp))
) {
Text1("Sign In")
}
diff --git a/app/src/main/java/com/example/android_programming/Screens/ProfileScreen/SignUp/SignUpScreen.kt b/app/src/main/java/com/example/android_programming/Screens/ProfileScreen/SignUp/SignUpScreen.kt
new file mode 100644
index 0000000..ff0a00a
--- /dev/null
+++ b/app/src/main/java/com/example/android_programming/Screens/ProfileScreen/SignUp/SignUpScreen.kt
@@ -0,0 +1,222 @@
+package com.example.android_programming.Screens.ProfileScreen.SignUp
+
+import androidx.compose.foundation.background
+import androidx.compose.foundation.border
+import androidx.compose.foundation.layout.Arrangement
+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.shape.RoundedCornerShape
+import androidx.compose.foundation.text.BasicTextField
+import androidx.compose.foundation.text.KeyboardActions
+import androidx.compose.foundation.text.KeyboardOptions
+import androidx.compose.material.Button
+import androidx.compose.material.DropdownMenu
+import androidx.compose.material.Text
+import androidx.compose.material.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.draw.clip
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.colorResource
+import androidx.compose.ui.text.TextStyle
+import androidx.compose.ui.text.font.FontWeight
+import androidx.compose.ui.text.input.ImeAction
+import androidx.compose.ui.text.input.KeyboardType
+import androidx.compose.ui.text.input.PasswordVisualTransformation
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import androidx.compose.ui.unit.sp
+import com.example.android_programming.Screens.ProfileScreen.SignIn.LoginScreen
+import com.example.android_programming.R
+
+@Composable
+fun SignUpScreen() {
+ var username by remember { mutableStateOf("") }
+ var password by remember { mutableStateOf("") }
+ var sex by remember { mutableStateOf("") }
+ var name by remember { mutableStateOf("") }
+ var surname by remember { mutableStateOf("") }
+
+ Column(
+ modifier = Modifier
+ .fillMaxSize()
+ .clip(RoundedCornerShape(25.dp))
+ .background(colorResource(id = R.color.figma))
+ .padding(15.dp, 0.dp)
+ ,
+ verticalArrangement = Arrangement.Center,
+ horizontalAlignment = Alignment.CenterHorizontally
+ ) {
+ Text(text = "Sign Up", fontSize = 24.sp, fontWeight = FontWeight.Bold)
+
+ Spacer(modifier = Modifier.height(16.dp))
+
+ TextField(
+ value = username,
+ onValueChange = { username = it },
+ modifier = Modifier
+ .fillMaxWidth()
+ .height(50.dp)
+ .border(1.dp, Color.Gray, RoundedCornerShape(4.dp))
+ .padding(0.dp),
+ singleLine = true,
+ keyboardOptions = KeyboardOptions(
+ keyboardType = KeyboardType.Text,
+ imeAction = ImeAction.Next
+ ),
+ keyboardActions = KeyboardActions(
+ onNext = {
+
+ }
+ ),
+ placeholder = {
+ Text(
+ text = "Username",
+ style = TextStyle(fontSize = 12.sp)
+ )
+ }
+ )
+
+ Spacer(modifier = Modifier.height(16.dp))
+
+ TextField(
+ value = name,
+ onValueChange = { name = it },
+ modifier = Modifier
+ .fillMaxWidth()
+ .height(50.dp)
+ .border(1.dp, Color.Gray, RoundedCornerShape(4.dp)),
+ singleLine = true,
+ keyboardOptions = KeyboardOptions(
+ keyboardType = KeyboardType.Text,
+ imeAction = ImeAction.Next
+ ),
+ keyboardActions = KeyboardActions(
+ onNext = {
+
+ }
+ ),
+ placeholder = {
+ Text(
+ text = "Name",
+ style = TextStyle(fontSize = 12.sp)
+ )
+ }
+ )
+
+ Spacer(modifier = Modifier.height(16.dp))
+
+ TextField(
+ value = surname,
+ onValueChange = { surname = it },
+ modifier = Modifier
+ .fillMaxWidth()
+ .height(50.dp)
+ .border(1.dp, Color.Gray, RoundedCornerShape(4.dp))
+ .padding(0.dp),
+ singleLine = true,
+ keyboardOptions = KeyboardOptions(
+ keyboardType = KeyboardType.Text,
+ imeAction = ImeAction.Next
+ ),
+ keyboardActions = KeyboardActions(
+ onNext = {
+
+ }
+ ),
+ placeholder = {
+ Text(
+ text = "Surname",
+ style = TextStyle(fontSize = 12.sp)
+ )
+ }
+ )
+
+ Spacer(modifier = Modifier.height(16.dp))
+
+ TextField(
+ value = sex,
+ onValueChange = { sex = it },
+ modifier = Modifier
+ .fillMaxWidth()
+ .height(50.dp)
+ .border(1.dp, Color.Gray, RoundedCornerShape(4.dp))
+ .padding(0.dp),
+ singleLine = true,
+ keyboardOptions = KeyboardOptions(
+ keyboardType = KeyboardType.Text,
+ imeAction = ImeAction.Next
+ ),
+ keyboardActions = KeyboardActions(
+ onNext = {
+
+ }
+ ),
+ placeholder = {
+ Text(
+ text = "Sex",
+ style = TextStyle(fontSize = 12.sp)
+ )
+ }
+ )
+
+ Spacer(modifier = Modifier.height(16.dp))
+
+ TextField(
+ value = password,
+ onValueChange = { password = it },
+ modifier = Modifier
+ .fillMaxWidth()
+ .height(50.dp)
+ .border(1.dp, Color.Gray, RoundedCornerShape(4.dp))
+ .padding(0.dp),
+ singleLine = true,
+ visualTransformation = PasswordVisualTransformation(),
+ keyboardOptions = KeyboardOptions(
+ keyboardType = KeyboardType.Text,
+ imeAction = ImeAction.Next
+ ),
+
+ keyboardActions = KeyboardActions(
+ onNext = {
+
+ }
+ ),
+ placeholder = {
+ Text(
+ text = "Password",
+ style = TextStyle(fontSize = 12.sp)
+ )
+ }
+ )
+
+ Spacer(modifier = Modifier.height(16.dp))
+
+ Button(
+ onClick = {
+
+ },
+ modifier = Modifier
+ .fillMaxWidth()
+ .clip(RoundedCornerShape(20.dp))
+ ) {
+ Text("Sign Up")
+ }
+ }
+}
+
+
+@Composable
+@Preview
+fun SignUpScreenPreview(){
+ SignUpScreen()
+}
\ No newline at end of file
diff --git a/app/src/main/res/drawable/logo.png b/app/src/main/res/drawable/logo.png
new file mode 100644
index 0000000..eb373d8
Binary files /dev/null and b/app/src/main/res/drawable/logo.png differ
diff --git a/app/src/main/res/drawable/shailushai.png b/app/src/main/res/drawable/shailushai.png
new file mode 100644
index 0000000..15ed3a5
Binary files /dev/null and b/app/src/main/res/drawable/shailushai.png differ
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index f8c6127..75cf818 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -7,4 +7,5 @@
#FF018786
#FF000000
#FFFFFFFF
+ #F4F4F4
\ No newline at end of file