diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml
index f05b47c..1cd9ddd 100644
--- a/.idea/deploymentTargetSelector.xml
+++ b/.idea/deploymentTargetSelector.xml
@@ -13,6 +13,9 @@
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/com/example/kocelainterview/domain/model/ShipDetail.kt b/app/src/main/java/com/example/kocelainterview/domain/model/ShipDetail.kt
index af3a726..d9cfc72 100644
--- a/app/src/main/java/com/example/kocelainterview/domain/model/ShipDetail.kt
+++ b/app/src/main/java/com/example/kocelainterview/domain/model/ShipDetail.kt
@@ -3,15 +3,9 @@ package com.example.kocelainterview.domain.model
data class ShipDetail(
val active: Boolean,
val home_port: String,
- //val image: String,
val ship_id: String,
- //val ship_model: Any,
val ship_name: String,
val ship_type: String,
- //val speed_kn: Int,
- //val status: String,
- //val successful_landings: Any,
val weight_kg: Int,
- //val weight_lbs: Int,
val year_built: Int
)
diff --git a/app/src/main/java/com/example/kocelainterview/presentation/ship_details_screen/ShipDetailScreen.kt b/app/src/main/java/com/example/kocelainterview/presentation/ship_details_screen/ShipDetailScreen.kt
index b2dfba7..9f3112b 100644
--- a/app/src/main/java/com/example/kocelainterview/presentation/ship_details_screen/ShipDetailScreen.kt
+++ b/app/src/main/java/com/example/kocelainterview/presentation/ship_details_screen/ShipDetailScreen.kt
@@ -10,7 +10,6 @@ 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.items
import androidx.compose.material3.CircularProgressIndicator
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
@@ -24,11 +23,11 @@ import androidx.compose.ui.unit.dp
import androidx.hilt.navigation.compose.hiltViewModel
-
@Composable
fun ShipDetailScreen(
viewModel: ShipDetailViewModel = hiltViewModel()
) {
+
val state = viewModel.state.value
Box (modifier = Modifier.fillMaxSize()){
@@ -37,46 +36,46 @@ fun ShipDetailScreen(
modifier = Modifier.fillMaxSize(),
contentPadding = PaddingValues(20.dp)
) {
- item{
- Row (
- modifier = Modifier.fillMaxWidth(),
- horizontalArrangement = Arrangement.SpaceBetween
- ){
- Text(
- text = "${shipDetail.ship_name}. ${shipDetail.weight_kg} (${shipDetail.year_built})",
- style = MaterialTheme.typography.bodyMedium,
- modifier = Modifier.weight(8f)
- )
- Text(
- text = if (shipDetail.active) "active" else "inactive",
- color = if (shipDetail.active) Color.Green else Color.Red,
- fontStyle = FontStyle.Italic,
- textAlign = TextAlign.End,
- style = MaterialTheme.typography.bodyMedium,
- modifier = Modifier
- .align(Alignment.CenterVertically)
- .weight(2f)
- )
- Spacer(modifier = Modifier.height(15.dp))
- Text(
- text = "More Details",
- style = MaterialTheme.typography.bodyMedium
- )
- Spacer(modifier = Modifier.height(15.dp))
- Text(
- text = "$shipDetail.ship_type " ,
- fontStyle = FontStyle.Italic,
- style = MaterialTheme.typography.bodyMedium,
- )
- Spacer(modifier = Modifier.height(4.dp))
- Text(
- text = "$shipDetail.home_port",
- fontStyle = FontStyle.Italic,
- style = MaterialTheme.typography.bodyMedium
- )
- }
+ item{
+ Row (
+ modifier = Modifier.fillMaxWidth(),
+ horizontalArrangement = Arrangement.SpaceBetween
+ ){
+ Text(
+ text = "$shipDetail.ship_name. $shipDetail.weight_kg ($shipDetail.year_built)",
+ style = MaterialTheme.typography.bodyMedium,
+ modifier = Modifier.weight(8f)
+ )
+ Text(
+ text = if (shipDetail.active) "active" else "inactive",
+ color = if (shipDetail.active) Color.Green else Color.Red,
+ fontStyle = FontStyle.Italic,
+ textAlign = TextAlign.End,
+ style = MaterialTheme.typography.bodyMedium,
+ modifier = Modifier
+ .align(Alignment.CenterVertically)
+ .weight(2f)
+ )
+ Spacer(modifier = Modifier.height(15.dp))
+ Text(
+ text = "More Details",
+ style = MaterialTheme.typography.bodyMedium
+ )
+ Spacer(modifier = Modifier.height(15.dp))
+ Text(
+ text = "$shipDetail.ship_type " ,
+ fontStyle = FontStyle.Italic,
+ style = MaterialTheme.typography.bodyMedium,
+ )
+ Spacer(modifier = Modifier.height(4.dp))
+ Text(
+ text = "$shipDetail.home_port",
+ fontStyle = FontStyle.Italic,
+ style = MaterialTheme.typography.bodyMedium
+ )
+ }
- }
+ }
diff --git a/app/src/main/java/com/example/kocelainterview/presentation/ships_screen/ShipListScreen.kt b/app/src/main/java/com/example/kocelainterview/presentation/ships_screen/ShipListScreen.kt
index 8f78b65..6cc3b6f 100644
--- a/app/src/main/java/com/example/kocelainterview/presentation/ships_screen/ShipListScreen.kt
+++ b/app/src/main/java/com/example/kocelainterview/presentation/ships_screen/ShipListScreen.kt
@@ -36,6 +36,7 @@ import androidx.navigation.NavController
import coil.annotation.ExperimentalCoilApi
import coil.compose.rememberAsyncImagePainter
import com.example.kocelainterview.domain.model.Ship
+import com.example.kocelainterview.presentation.navigation.Screen
import com.example.kocelainterview.presentation.search_controller.search_view_model.SearchViewModel
@@ -88,7 +89,9 @@ fun ShipListScreen(
}
items(state.ships) { ship ->
- ShipImageCard(ships = ship)
+ ShipImageCard(ships = ship, onItemClick = {
+ navController.navigate(Screen.ShipDetailScreen.route)
+ })
}
}
if (state.error.isNotBlank()) {
@@ -107,7 +110,7 @@ fun ShipListScreen(
@OptIn(ExperimentalCoilApi::class)
@Composable
-fun ShipImageCard(ships: Ship){
+fun ShipImageCard(ships: Ship,onItemClick:(Ship)->Unit){
val imagePainter = rememberAsyncImagePainter(model = ships.image)
Card(
shape = MaterialTheme.shapes.medium,