Skip to content

Commit bb93b53

Browse files
authored
Merge pull request #196 from cuappdev/Caleb/errorstates
Implement Error States
2 parents ff06c22 + 50bb461 commit bb93b53

File tree

9 files changed

+679
-425
lines changed

9 files changed

+679
-425
lines changed
Lines changed: 13 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,22 @@
11
package com.cornellappdev.android.eatery.data
22

3-
import com.cornellappdev.android.eatery.BuildConfig
4-
import com.cornellappdev.android.eatery.data.models.*
3+
import com.cornellappdev.android.eatery.data.models.AccountsResponse
4+
import com.cornellappdev.android.eatery.data.models.ApiResponse
5+
import com.cornellappdev.android.eatery.data.models.Eatery
6+
import com.cornellappdev.android.eatery.data.models.Event
7+
import com.cornellappdev.android.eatery.data.models.GetApiAccountsParams
8+
import com.cornellappdev.android.eatery.data.models.GetApiRequestBody
9+
import com.cornellappdev.android.eatery.data.models.GetApiResponse
10+
import com.cornellappdev.android.eatery.data.models.GetApiTransactionHistoryParams
11+
import com.cornellappdev.android.eatery.data.models.GetApiUserParams
12+
import com.cornellappdev.android.eatery.data.models.ReportSendBody
13+
import com.cornellappdev.android.eatery.data.models.TransactionsResponse
14+
import com.cornellappdev.android.eatery.data.models.User
515
import retrofit2.http.Body
616
import retrofit2.http.GET
717
import retrofit2.http.POST
818
import retrofit2.http.Path
919
import retrofit2.http.Url
10-
import java.text.SimpleDateFormat
11-
import java.time.Duration
12-
import java.util.*
1320

1421
interface NetworkApi {
1522
@POST()
@@ -47,49 +54,4 @@ interface NetworkApi {
4754
suspend fun sendReport(
4855
@Body report: ReportSendBody
4956
): GetApiResponse<ReportSendBody>
50-
}
51-
52-
fun generateUserBody(sessionId: String): GetApiRequestBody<GetApiUserParams> {
53-
return GetApiRequestBody(
54-
version = "1",
55-
method = "retrieve",
56-
params = GetApiUserParams(
57-
sessionId = sessionId
58-
)
59-
)
60-
}
61-
62-
fun generateAccountsBody(
63-
sessionId: String,
64-
userId: String
65-
): GetApiRequestBody<GetApiAccountsParams> {
66-
return GetApiRequestBody(
67-
version = "1",
68-
method = "retrieveAccountsByUser",
69-
params = GetApiAccountsParams(
70-
sessionId = sessionId,
71-
userId = userId
72-
)
73-
)
74-
}
75-
76-
fun generateTransactionHistoryBody(
77-
sessionId: String, userId: String, endDate: Date
78-
): GetApiRequestBody<GetApiTransactionHistoryParams> {
79-
val startDate = Date.from(endDate.toInstant().minus(Duration.ofDays(5000)))
80-
return GetApiRequestBody(
81-
version = "1",
82-
method = "retrieveTransactionHistory",
83-
params = GetApiTransactionHistoryParams(
84-
paymentSystemType = 0,
85-
sessionId = sessionId,
86-
queryCriteria = GetApiTransactionHistoryQueryCriteria(
87-
endDate = SimpleDateFormat("yyyy-MM-dd", Locale.US).format(endDate),
88-
startDate = SimpleDateFormat("yyyy-MM-dd", Locale.US).format(startDate),
89-
maxReturn = 5000,
90-
institutionId = BuildConfig.CORNELL_INSTITUTION_ID,
91-
userId = userId
92-
)
93-
)
94-
)
95-
}
57+
}

app/src/main/java/com/cornellappdev/android/eatery/ui/components/details/EateryHourBottomSheet.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,9 @@ fun EateryHourBottomSheet(
9595
Text(
9696
modifier = Modifier.padding(top = 2.dp),
9797
text =
98-
if (openUntil == null) "Closed"
99-
else if (eatery.isClosingSoon()) "Closing at $openUntil"
100-
else ("Open until $openUntil"),
98+
if (openUntil == null) "Closed"
99+
else if (eatery.isClosingSoon()) "Closing at $openUntil"
100+
else ("Open until $openUntil"),
101101
style = TextStyle(
102102
fontWeight = FontWeight.SemiBold, fontSize = 16.sp
103103
),

app/src/main/java/com/cornellappdev/android/eatery/ui/components/general/FilterRow.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@ import androidx.compose.foundation.layout.PaddingValues
77
import androidx.compose.foundation.layout.Spacer
88
import androidx.compose.foundation.layout.size
99
import androidx.compose.foundation.lazy.LazyListScope
10+
import androidx.compose.foundation.lazy.LazyListState
1011
import androidx.compose.foundation.lazy.LazyRow
1112
import androidx.compose.foundation.lazy.items
13+
import androidx.compose.foundation.lazy.rememberLazyListState
1214
import androidx.compose.foundation.shape.RoundedCornerShape
1315
import androidx.compose.material.Button
1416
import androidx.compose.material.ButtonDefaults
@@ -32,10 +34,12 @@ fun FilterRow(
3234
onFilterClicked: (Filter) -> Unit,
3335
customItemsBefore: LazyListScope.() -> Unit = {},
3436
customItemsAfter: LazyListScope.() -> Unit = {},
37+
rowState: LazyListState = rememberLazyListState()
3538
) {
3639
LazyRow(
3740
horizontalArrangement = Arrangement.spacedBy(8.dp),
38-
contentPadding = PaddingValues(horizontal = 16.dp)
41+
contentPadding = PaddingValues(horizontal = 16.dp),
42+
state = rowState
3943
) {
4044
customItemsBefore()
4145
items(filters) { filter ->

app/src/main/java/com/cornellappdev/android/eatery/ui/components/upcoming/MealBottomSheet.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ import com.cornellappdev.android.eatery.ui.theme.GrayZero
4848
fun MealBottomSheet(
4949
selectedMeal: MealFilter,
5050
onSubmit: (MealFilter) -> Unit,
51-
onReset: () -> Unit,
5251
hide: () -> Unit,
5352
sheetState: ModalBottomSheetState
5453
) {

app/src/main/java/com/cornellappdev/android/eatery/ui/screens/CompareMenusScreen.kt

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -157,17 +157,23 @@ fun CompareMenusScreen(
157157
ModalBottomSheetLayout(
158158
sheetState = modalBottomSheetState, sheetContent = {
159159
when (sheetContent) {
160-
BottomSheetContent.HOURS -> EateryHourBottomSheet(onDismiss = {
161-
coroutineScope.launch {
162-
modalBottomSheetState.hide()
160+
BottomSheetContent.HOURS -> {
161+
val eatery = eateries.getOrNull(firstPagerState.currentPage)
162+
eatery?.let {
163+
EateryHourBottomSheet(onDismiss = {
164+
coroutineScope.launch {
165+
modalBottomSheetState.hide()
166+
}
167+
}, eatery = eatery, onReportIssue = {
168+
sheetContent = BottomSheetContent.REPORT
169+
})
163170
}
164-
}, eatery = eateries[firstPagerState.currentPage], onReportIssue = {
165-
sheetContent = BottomSheetContent.REPORT
166-
})
171+
}
167172

168173
BottomSheetContent.REPORT -> {
169174
eateries[0].id?.let {
170-
ReportBottomSheet(issue = issue,
175+
ReportBottomSheet(
176+
issue = issue,
171177
eateryid = it,
172178
sendReport = { issue, report, eateryid ->
173179
compareMenusViewModel.sendReport(
@@ -289,9 +295,9 @@ private fun MenuPager(
289295
Text(
290296
modifier = Modifier.padding(top = 2.dp),
291297
text =
292-
if (openUntil == null) "Closed"
293-
else if (eateries[page].isClosingSoon()) "Closing at $openUntil"
294-
else ("Open until $openUntil"),
298+
if (openUntil == null) "Closed"
299+
else if (eateries[page].isClosingSoon()) "Closing at $openUntil"
300+
else ("Open until $openUntil"),
295301
style = TextStyle(
296302
fontWeight = FontWeight.SemiBold,
297303
fontSize = 16.sp

0 commit comments

Comments
 (0)