Skip to content

Commit 88b1172

Browse files
committed
ride card and refactoring
1 parent 706d3cd commit 88b1172

File tree

8 files changed

+50
-8
lines changed

8 files changed

+50
-8
lines changed

app/src/main/java/com/cornellappdev/scoop/data/models/Ride.kt

+25
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package com.cornellappdev.scoop.data.models
22

3+
import android.os.Build
4+
import androidx.annotation.RequiresApi
35
import com.squareup.moshi.Json
6+
import java.time.LocalDateTime
47

58
// TODO: fix this so that it actually makes sense and correlates with backend haha
69

@@ -19,3 +22,25 @@ data class Ride(
1922
var creator: User? = null,
2023
var path: Path? = null
2124
)
25+
26+
/*
27+
* Backward compatibility functions for Dates
28+
*/
29+
30+
/**
31+
* Convert a String to Kotlin LocalDateTime
32+
*/
33+
@RequiresApi(Build.VERSION_CODES.O)
34+
fun stringToDate(dateString : String) : LocalDateTime {
35+
var splitString = dateString.split(" ")
36+
var dateList = splitString[0].split("/")
37+
var timeList = splitString[1].split(":")
38+
var pm = splitString[2] == "PM"
39+
var hour = if(pm) Integer.parseInt(timeList[0]) + 12 else Integer.parseInt(timeList[0])
40+
// Year, Month, Day, Hour, Minute
41+
return LocalDateTime.of(Integer.parseInt(dateList[2]), Integer.parseInt(dateList[0]), Integer.parseInt(dateList[1]), hour, Integer.parseInt(timeList[1]))
42+
}
43+
44+
45+
46+

app/src/main/java/com/cornellappdev/scoop/data/repositories/RideRepository.kt

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import com.cornellappdev.scoop.data.NetworkApi
44
import com.cornellappdev.scoop.data.models.Ride
55
import com.cornellappdev.scoop.data.models.RideRequestBody
66
import com.cornellappdev.scoop.data.models.RideType
7+
import com.cornellappdev.scoop.data.models.User
78
import javax.inject.Inject
89
import javax.inject.Singleton
910

app/src/main/java/com/cornellappdev/scoop/ui/components/general/RideCard.kt

+12-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ import androidx.compose.material.icons.outlined.Place
1717
import androidx.compose.runtime.Composable
1818
import androidx.compose.ui.Alignment
1919
import androidx.compose.ui.Modifier
20+
import androidx.compose.ui.draw.clip
21+
import androidx.compose.ui.draw.shadow
2022
import androidx.compose.ui.geometry.Offset
2123
import androidx.compose.ui.graphics.Color
2224
import androidx.compose.ui.graphics.PathEffect
@@ -41,7 +43,8 @@ fun RideCard(
4143
shape = RoundedCornerShape(10.dp),
4244
modifier = Modifier
4345
.fillMaxWidth(),
44-
border = BorderStroke(1.dp, color = BorderGray)
46+
border = BorderStroke(1.dp, color = BorderGray),
47+
elevation = 2.dp
4548
) {
4649
Column(modifier = Modifier.padding(10.dp)) {
4750
Row(
@@ -60,6 +63,7 @@ fun RideCard(
6063
}
6164

6265
Row(modifier = Modifier.wrapContentSize()) {
66+
6367
Icon(
6468
Icons.Filled.CalendarToday,
6569
modifier = Modifier
@@ -68,6 +72,13 @@ fun RideCard(
6872
.align(Alignment.CenterVertically),
6973
contentDescription = stringResource(R.string.calendar_icon_description)
7074
)
75+
76+
ride.datetime?.let { time ->
77+
Text(
78+
text = time,
79+
style = TextStyle(color = Color.Black, fontSize = 22.sp)
80+
)
81+
}
7182
}
7283
}
7384

app/src/main/java/com/cornellappdev/scoop/ui/components/post/ThirdPage.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ import com.cornellappdev.scoop.data.models.RideRequestBody
1313

1414
@OptIn(ExperimentalMaterialApi::class)
1515
@Composable
16-
fun ThirdPage(ride: RideRequestBody) {
16+
fun ThirdPage(ride: Ride) {
1717
BottomSheet(ride)
1818
}

app/src/main/java/com/cornellappdev/scoop/ui/components/post/ThirdPageBottomSheet.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import com.cornellappdev.scoop.data.models.RideRequestBody
2828
import com.cornellappdev.scoop.data.models.RideType
2929

3030
@Composable
31-
fun BottomSheet(ride: RideRequestBody) {
31+
fun BottomSheet(ride: Ride) {
3232
Column(modifier = Modifier.padding(top = 28.dp, start = 40.dp, end = 40.dp)) {
3333
Text(
3434
text = "Trip to ${ride.arrivalLocationName}",

app/src/main/java/com/cornellappdev/scoop/ui/components/search/DisplaySearchesPage.kt

+3-1
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ fun DisplaySearchesPage(
5252
val filter = rememberSaveable { mutableStateOf<String?>(null) }
5353
val isEditing = rememberSaveable { mutableStateOf(false) }
5454

55+
val testData = listOf(Ride(departureLocationName = "Ithaca", arrivalLocationName = "Syracuse", datetime = "Nov 13"), Ride(departureLocationName = "Ithaca", arrivalLocationName = "Syracuse", datetime = "Nov 13"))
56+
5557
Scaffold(topBar = {
5658
Box(
5759
modifier = Modifier
@@ -111,7 +113,7 @@ fun DisplaySearchesPage(
111113
state = state,
112114
verticalArrangement = Arrangement.spacedBy(10.dp)
113115
) {
114-
items(searchResults.value) { item ->
116+
items(testData) { item ->
115117
RideCard(item)
116118
}
117119
}

app/src/main/java/com/cornellappdev/scoop/ui/screens/PostScreen.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ PostScreen to network and pass data back and forth.
5050
)
5151
@Composable
5252
fun PostScreen(
53-
onPostNewTrip: (RideRequestBody) -> Unit,
53+
onPostNewTrip: (Ride) -> Unit,
5454
postScreenViewModel: PostScreenViewModel = hiltViewModel()
5555
) {
5656
val pagerState = rememberPagerState(0)

app/src/main/java/com/cornellappdev/scoop/ui/viewmodel/PostScreenViewModel.kt

+6-3
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import androidx.compose.runtime.getValue
44
import androidx.compose.runtime.mutableStateOf
55
import androidx.lifecycle.ViewModel
66
import androidx.lifecycle.viewModelScope
7-
import com.cornellappdev.scoop.data.models.RideRequestBody
7+
import com.cornellappdev.scoop.data.models.Ride
88
import com.cornellappdev.scoop.data.models.stringToRideType
99
import com.cornellappdev.scoop.data.repositories.RideRepository
1010
import dagger.hilt.android.lifecycle.HiltViewModel
@@ -18,9 +18,10 @@ import javax.inject.Inject
1818
class PostScreenViewModel @Inject constructor(private val rideRepository: RideRepository) :
1919
ViewModel() {
2020

21-
private val _ride: RideRequestBody by mutableStateOf(RideRequestBody())
22-
val ride: RideRequestBody = _ride
21+
private val _ride: Ride by mutableStateOf(Ride())
22+
val ride: Ride = _ride
2323

24+
/*
2425
fun createARide() = viewModelScope.launch {
2526
if (assertReadyToPost()) {
2627
rideRepository.createRide(
@@ -38,6 +39,8 @@ class PostScreenViewModel @Inject constructor(private val rideRepository: RideRe
3839
}
3940
}
4041
42+
*/
43+
4144
private fun assertReadyToPost(): Boolean {
4245
return ride.type != null
4346
&& ride.departureLocationName != null

0 commit comments

Comments
 (0)