diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 67ae9e9..0b07a8f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -56,6 +56,7 @@ dependencies { implementation("androidx.compose.ui:ui-graphics") implementation("androidx.compose.ui:ui-tooling-preview") implementation("androidx.compose.material3:material3") + implementation("androidx.leanback:leanback:1.0.0") 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/androidlabs/MainActivity.kt b/app/src/main/java/com/example/androidlabs/MainActivity.kt index 7686414..3f84a18 100644 --- a/app/src/main/java/com/example/androidlabs/MainActivity.kt +++ b/app/src/main/java/com/example/androidlabs/MainActivity.kt @@ -3,41 +3,48 @@ package com.example.androidlabs import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent +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.fillMaxHeight import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Email +import androidx.compose.material.icons.filled.LocationOn +import androidx.compose.material.icons.filled.Star +import androidx.compose.material3.Card import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.material3.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.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.androidlabs.homeScreen.CardItem.HotelScrollBar import com.example.androidlabs.ui.theme.AndroidLabsTheme class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { - AndroidLabsTheme { - // A surface container using the 'background' color from the theme - Surface(modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background) { - Greeting("Android") - } - } + HotelScrollBar() + } } } -} -@Composable -fun Greeting(name: String, modifier: Modifier = Modifier) { - Text( - text = "Hello $name!", - modifier = modifier - ) -} -@Preview(showBackground = true) -@Composable -fun GreetingPreview() { - AndroidLabsTheme { - Greeting("Android") - } -} \ No newline at end of file + + diff --git a/app/src/main/java/com/example/androidlabs/homeScreen/CardItem/Card.kt b/app/src/main/java/com/example/androidlabs/homeScreen/CardItem/Card.kt new file mode 100644 index 0000000..3bc13fd --- /dev/null +++ b/app/src/main/java/com/example/androidlabs/homeScreen/CardItem/Card.kt @@ -0,0 +1,113 @@ +package com.example.androidlabs.homeScreen.CardItem + +import androidx.compose.foundation.Image +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.shape.RoundedCornerShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.LocationOn +import androidx.compose.material.icons.filled.Star +import androidx.compose.material3.CardDefaults +import androidx.compose.material3.CardElevation +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +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.androidlabs.R +import com.example.androidlabs.ui.theme.AndroidLabsTheme + +@Composable +fun Card (hotel: Hotel){ + androidx.compose.material3.Card( + modifier = Modifier + .fillMaxWidth() + .padding(10.dp), + shape = RoundedCornerShape(15.dp), + elevation = CardDefaults.cardElevation( + defaultElevation = 20.dp + ) ) { + Box( + //modifier = Modifier.background(Color.Green) + ) { + Row( + modifier = Modifier + //.background(Color.Yellow) + .fillMaxWidth(), + verticalAlignment = Alignment.CenterVertically + + ) { + Image( + painter = painterResource(id = hotel.img), + contentDescription = "hotel", + contentScale = ContentScale.Fit, + modifier = Modifier + .padding(4.dp) + .size(150.dp) + + ) + Column( + modifier = Modifier + //.background(Color.Red) + .padding(start = 20.dp), + //horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(20.dp) + ) { + Text(text = hotel.name, fontSize = 40.sp, fontWeight = FontWeight.Bold) + Row() { + Image( + imageVector = Icons.Filled.Star, + contentDescription = "location", + modifier = Modifier.size(20.dp) + ) + Image( + imageVector = Icons.Filled.Star, + contentDescription = "location", + modifier = Modifier.size(20.dp) + ) + Image( + imageVector = Icons.Filled.Star, + contentDescription = "location", + modifier = Modifier.size(20.dp) + ) + Image( + imageVector = Icons.Filled.Star, + contentDescription = "location", + modifier = Modifier.size(20.dp) + ) + Image( + imageVector = Icons.Filled.Star, + contentDescription = "location", + modifier = Modifier.size(20.dp) + ) + } + Text(text = hotel.location) + } + Image( + imageVector = Icons.Filled.LocationOn, + contentDescription = "location", + modifier = Modifier.size(40.dp) + ) + } + } + + } +} + +@Preview(showBackground = true) +@Composable +fun CardPreview() { + + Card(Hotel("hotel", R.drawable.img, 5, "location")) + +} \ No newline at end of file diff --git a/app/src/main/java/com/example/androidlabs/homeScreen/CardItem/Hotel.kt b/app/src/main/java/com/example/androidlabs/homeScreen/CardItem/Hotel.kt new file mode 100644 index 0000000..91eecc3 --- /dev/null +++ b/app/src/main/java/com/example/androidlabs/homeScreen/CardItem/Hotel.kt @@ -0,0 +1,11 @@ +package com.example.androidlabs.homeScreen.CardItem + +import android.media.Image + + +data class Hotel( + val name: String, + val img: Int, + val stars: Int, + val location: String +) \ No newline at end of file diff --git a/app/src/main/java/com/example/androidlabs/homeScreen/CardItem/HotelScrollBar.kt b/app/src/main/java/com/example/androidlabs/homeScreen/CardItem/HotelScrollBar.kt new file mode 100644 index 0000000..3d6bf59 --- /dev/null +++ b/app/src/main/java/com/example/androidlabs/homeScreen/CardItem/HotelScrollBar.kt @@ -0,0 +1,26 @@ +package com.example.androidlabs.homeScreen.CardItem + +import androidx.compose.foundation.layout.Column +import androidx.compose.runtime.Composable +import androidx.compose.ui.tooling.preview.Preview +import com.example.androidlabs.R + +@Composable +fun HotelScrollBar() { + Column { + Card(Hotel("hotel", R.drawable.img, 5, "location")) + Card(Hotel("hotel", R.drawable.img, 5, "location")) + Card(Hotel("hotel", R.drawable.img, 5, "location")) + Card(Hotel("hotel", R.drawable.img, 5, "location")) + Card(Hotel("hotel", R.drawable.img, 5, "location")) + Card(Hotel("hotel", R.drawable.img, 5, "location")) + Card(Hotel("hotel", R.drawable.img, 5, "location")) + Card(Hotel("hotel", R.drawable.img, 5, "location")) + + } +} +@Preview(showBackground = true) +@Composable +fun HotelPreview() { + HotelScrollBar() +} \ No newline at end of file diff --git a/app/src/main/res/drawable/img.png b/app/src/main/res/drawable/img.png new file mode 100644 index 0000000..8bb6e00 Binary files /dev/null and b/app/src/main/res/drawable/img.png differ diff --git a/app/src/main/res/drawable/location.xml b/app/src/main/res/drawable/location.xml new file mode 100644 index 0000000..dd12113 --- /dev/null +++ b/app/src/main/res/drawable/location.xml @@ -0,0 +1,5 @@ + + +