Skip to content

Commit ad0fb09

Browse files
authored
Merge pull request #19 from cuappdev/justin/fixnavright
Fix NavHeader and RightArrow files
2 parents 7d88b3f + 83c7f9f commit ad0fb09

File tree

10 files changed

+134
-141
lines changed

10 files changed

+134
-141
lines changed

.idea/gradle.xml

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/src/main/java/com/cornellappdev/scoop/ui/MainActivity.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class MainActivity : ComponentActivity() {
1818
setContent {
1919
ProvideWindowInsets {
2020
ScoopTheme {
21-
OnboardingHolderView()
21+
MainScreen()
2222
}
2323
}
2424
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
package com.cornellappdev.scoop.ui.screens
2+
3+
import androidx.compose.foundation.BorderStroke
4+
import androidx.compose.foundation.Canvas
5+
import androidx.compose.foundation.Image
6+
import androidx.compose.foundation.layout.*
7+
import androidx.compose.material.*
8+
import androidx.compose.runtime.Composable
9+
import androidx.compose.runtime.rememberCoroutineScope
10+
import androidx.compose.ui.Alignment
11+
import androidx.compose.ui.Modifier
12+
import androidx.compose.ui.geometry.Offset
13+
import androidx.compose.ui.graphics.Color
14+
import androidx.compose.ui.graphics.PathEffect
15+
import androidx.compose.ui.layout.ContentScale
16+
import androidx.compose.ui.res.painterResource
17+
import androidx.compose.ui.unit.dp
18+
import androidx.compose.ui.unit.sp
19+
import androidx.navigation.NavController
20+
import com.cornellappdev.scoop.R
21+
import com.cornellappdev.scoop.ui.theme.Green
22+
import com.google.accompanist.pager.PagerState
23+
import kotlinx.coroutines.Dispatchers
24+
import kotlinx.coroutines.launch
25+
import kotlinx.coroutines.withContext
26+
27+
@OptIn(ExperimentalMaterialApi::class, com.google.accompanist.pager.ExperimentalPagerApi::class)
28+
@Composable
29+
fun NavHeader(
30+
title: String,
31+
backFunction: suspend () -> Unit,
32+
hasBackArrow: Boolean = false,
33+
) {
34+
val scope = rememberCoroutineScope()
35+
36+
Column(
37+
Modifier.fillMaxWidth()
38+
.padding(0.dp, 20.dp, 0.dp, 0.dp),
39+
) {
40+
Row(
41+
Modifier.fillMaxWidth(),
42+
verticalAlignment = Alignment.CenterVertically,
43+
horizontalArrangement = Arrangement.Center,
44+
) {
45+
46+
if(hasBackArrow){
47+
Button(
48+
onClick = {
49+
scope.launch {
50+
backFunction()
51+
}
52+
},
53+
colors = ButtonDefaults.buttonColors(backgroundColor = Color.White),
54+
border = BorderStroke(width = 0.dp, color = Color.White),
55+
elevation = ButtonDefaults.elevation(0.dp)
56+
) {
57+
58+
Image(
59+
painterResource(R.drawable.ic_baseline_arrow_back_24),
60+
contentDescription = "",
61+
contentScale = ContentScale.Crop,
62+
)
63+
}
64+
}
65+
66+
Spacer(modifier = Modifier.weight(2F))
67+
68+
Text(
69+
text = title,
70+
fontSize = 25.sp,
71+
color = Color.Black,
72+
)
73+
74+
Spacer(modifier = Modifier.weight(0.5F))
75+
76+
Image(
77+
painterResource(R.drawable.header_line_black),
78+
contentDescription = "",
79+
contentScale = ContentScale.Crop,
80+
modifier = Modifier.padding(
81+
top = 16.dp,
82+
),
83+
)
84+
}
85+
86+
Row(
87+
horizontalArrangement = Arrangement.End,
88+
modifier = Modifier
89+
.fillMaxWidth()
90+
) {
91+
val pathEffect = PathEffect.dashPathEffect(floatArrayOf(15f, 15f), 0f)
92+
Canvas(
93+
Modifier
94+
.fillMaxWidth()
95+
.height(2.dp)
96+
) {
97+
drawLine(
98+
color = Green,
99+
start = Offset(size.width * 3 / 7, 0f),
100+
end = Offset(size.width + 100f, 0f),
101+
pathEffect = pathEffect,
102+
strokeWidth = 2f
103+
)
104+
}
105+
}
106+
107+
}
108+
}

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

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.cornellappdev.scoop.components
22

3+
import android.util.Log
34
import androidx.compose.foundation.layout.Box
45
import androidx.compose.foundation.layout.fillMaxSize
56
import androidx.compose.foundation.layout.height
@@ -19,12 +20,15 @@ import com.cornellappdev.scoop.ui.theme.DarkGray
1920
import com.cornellappdev.scoop.ui.theme.Gray
2021
import com.cornellappdev.scoop.ui.theme.Green
2122
import com.google.accompanist.pager.PagerState
23+
import kotlinx.coroutines.CoroutineScope
24+
import kotlinx.coroutines.Dispatchers
2225
import kotlinx.coroutines.launch
26+
import kotlinx.coroutines.withContext
2327

2428
@OptIn(ExperimentalMaterialApi::class, com.google.accompanist.pager.ExperimentalPagerApi::class)
2529
@Composable
2630
fun RightArrow(
27-
pagerState: PagerState,
31+
nextFunction: suspend () -> Unit,
2832
isComplete : Boolean = false,
2933
) {
3034
val scope = rememberCoroutineScope()
@@ -37,8 +41,9 @@ fun RightArrow(
3741
enabled = isComplete,
3842
backgroundColor = if (isComplete) Green else Gray,
3943
onClick = {
44+
Log.d("PAGERSTATE", "button Clicked")
4045
scope.launch {
41-
pagerState.animateScrollToPage(pagerState.currentPage + 1)
46+
nextFunction()
4247
}
4348
}
4449
) {

app/src/main/java/com/cornellappdev/scoop/ui/onboarding/OnboardingProfile.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import androidx.compose.ui.text.style.TextDecoration
2626
import androidx.compose.ui.unit.dp
2727
import com.cornellappdev.scoop.R
2828
import com.cornellappdev.scoop.onboarding.OnboardingFooter
29-
import com.cornellappdev.scoop.onboarding.NavHeader
29+
import com.cornellappdev.scoop.ui.screens.NavHeader
3030
import com.cornellappdev.scoop.ui.theme.DarkGreen
3131
import com.cornellappdev.scoop.ui.theme.Gray
3232
import com.cornellappdev.scoop.ui.theme.Green
@@ -42,7 +42,7 @@ fun OnboardingProfile(pagerState: PagerState) {
4242
Modifier.background(Color.White)
4343
) {
4444

45-
NavHeader(pagerState = pagerState, title = "Profile", hasBackArrow = true)
45+
NavHeader(backFunction = suspend { pagerState.animateScrollToPage(pagerState.currentPage - 1) }, title = "Profile", hasBackArrow = false)
4646

4747
Column(
4848
modifier = Modifier

app/src/main/java/com/cornellappdev/scoop/ui/onboarding/OnboardingView2.kt

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.cornellappdev.scoop.ui.onboarding
22

3+
import android.util.Log
34
import androidx.compose.foundation.background
45
import androidx.compose.foundation.layout.*
56
import androidx.compose.runtime.Composable
@@ -12,8 +13,8 @@ import androidx.compose.ui.unit.dp
1213
import com.cornellappdev.scoop.components.BackArrow
1314
import com.cornellappdev.scoop.components.RightArrow
1415
import com.cornellappdev.scoop.onboarding.OnboardingFooter
15-
import com.cornellappdev.scoop.onboarding.NavHeader
1616
import com.cornellappdev.scoop.ui.components.general.DenseTextField
17+
import com.cornellappdev.scoop.ui.screens.NavHeader
1718
import com.google.accompanist.pager.ExperimentalPagerApi
1819
import com.google.accompanist.pager.PagerState
1920

@@ -31,7 +32,7 @@ fun OnboardingView2(pagerState: PagerState) {
3132
Column(
3233
Modifier.background(Color.White)
3334
) {
34-
NavHeader(pagerState = pagerState, title = "About You")
35+
NavHeader(backFunction = suspend { pagerState.animateScrollToPage(pagerState.currentPage - 1) }, title = "Profile", hasBackArrow = false)
3536

3637
Column(
3738
modifier = Modifier
@@ -101,7 +102,8 @@ fun OnboardingView2(pagerState: PagerState) {
101102
horizontalArrangement = Arrangement.SpaceBetween
102103
) {
103104
BackArrow(pagerState)
104-
RightArrow(pagerState, isComplete)
105+
RightArrow( suspend { pagerState.animateScrollToPage(pagerState.currentPage + 1)
106+
}, isComplete)
105107
}
106108
Spacer(modifier = Modifier.height(40.dp))
107109
Row(

app/src/main/java/com/cornellappdev/scoop/ui/onboarding/OnboardingView3.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ import androidx.compose.ui.unit.sp
1717
import com.cornellappdev.scoop.components.BackArrow
1818
import com.cornellappdev.scoop.components.RightArrow
1919
import com.cornellappdev.scoop.onboarding.OnboardingFooter
20-
import com.cornellappdev.scoop.onboarding.NavHeader
2120
import com.cornellappdev.scoop.ui.components.general.DenseTextField
21+
import com.cornellappdev.scoop.ui.screens.NavHeader
2222
import com.google.accompanist.pager.ExperimentalPagerApi
2323
import com.google.accompanist.pager.PagerState
2424

@@ -29,7 +29,7 @@ fun OnboardingView3(pagerState: PagerState) {
2929
Column(
3030
Modifier.background(Color.White)
3131
) {
32-
NavHeader(pagerState = pagerState, title = "About You")
32+
NavHeader(backFunction = suspend { pagerState.animateScrollToPage(pagerState.currentPage - 1) }, title = "Profile", hasBackArrow = false)
3333

3434
Column(
3535
modifier = Modifier
@@ -59,7 +59,7 @@ fun OnboardingView3(pagerState: PagerState) {
5959
horizontalArrangement = Arrangement.SpaceBetween
6060
) {
6161
BackArrow(pagerState)
62-
RightArrow(pagerState, true)
62+
RightArrow(suspend { pagerState.animateScrollToPage(pagerState.currentPage + 1) }, true)
6363
}
6464
Spacer(modifier = Modifier.height(40.dp))
6565
Row(

app/src/main/java/com/cornellappdev/scoop/ui/onboarding/OnboardingView4.kt

+3-2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import androidx.compose.ui.unit.dp
1717
import androidx.compose.ui.unit.sp
1818
import com.cornellappdev.scoop.components.BackArrow
1919
import com.cornellappdev.scoop.components.RightArrow
20+
import com.cornellappdev.scoop.ui.screens.NavHeader
2021
import com.google.accompanist.pager.ExperimentalPagerApi
2122
import com.google.accompanist.pager.PagerState
2223

@@ -30,7 +31,7 @@ fun OnboardingView4(
3031
Modifier.background(Color.White)
3132
) {
3233

33-
NavHeader(pagerState = pagerState, title = "During Roadtrips")
34+
NavHeader(backFunction = suspend { pagerState.animateScrollToPage(pagerState.currentPage - 1) }, title = "Profile", hasBackArrow = false)
3435

3536
Column(
3637
modifier = Modifier
@@ -78,7 +79,7 @@ fun OnboardingView4(
7879
horizontalArrangement = Arrangement.SpaceBetween
7980
) {
8081
BackArrow(pagerState)
81-
RightArrow(pagerState, true)
82+
RightArrow(suspend { pagerState.animateScrollToPage(pagerState.currentPage + 1) }, true)
8283
}
8384
Spacer(modifier = Modifier.height(40.dp))
8485
Row(

app/src/main/java/com/cornellappdev/scoop/ui/onboarding/OnboardingView5.kt

+4-3
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import androidx.compose.ui.unit.dp
1111
import com.cornellappdev.scoop.components.BackArrow
1212
import com.cornellappdev.scoop.components.RightArrow
1313
import com.cornellappdev.scoop.ui.components.general.DenseTextField
14+
import com.cornellappdev.scoop.ui.screens.NavHeader
1415
import com.google.accompanist.pager.ExperimentalPagerApi
1516
import com.google.accompanist.pager.PagerState
1617

@@ -27,8 +28,7 @@ fun OnboardingView5(pagerState: PagerState) {
2728

2829
Column(
2930
Modifier.background(Color.White)
30-
) {
31-
NavHeader(pagerState = pagerState, title = "Favorites")
31+
) { NavHeader(backFunction = suspend { pagerState.animateScrollToPage(pagerState.currentPage - 1) }, title = "Profile", hasBackArrow = false)
3232

3333
Column(
3434
modifier = Modifier
@@ -86,7 +86,8 @@ fun OnboardingView5(pagerState: PagerState) {
8686
horizontalArrangement = Arrangement.SpaceBetween
8787
) {
8888
BackArrow(pagerState)
89-
RightArrow(pagerState, isComplete)
89+
RightArrow( nextFunction = suspend { pagerState.animateScrollToPage(pagerState.currentPage + 1)
90+
}, isComplete)
9091
}
9192
Spacer(modifier = Modifier.height(40.dp))
9293
Row(

0 commit comments

Comments
 (0)