Skip to content

Commit 94aabf7

Browse files
committedFeb 18, 2021
[Owl] Update to snapshot 7141639.
Change-Id: I33530df9297a5a4c9347274197ca48556f4fc168
1 parent 381c5aa commit 94aabf7

File tree

16 files changed

+87
-67
lines changed

16 files changed

+87
-67
lines changed
 

‎Owl/app/build.gradle

+1-2
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,9 @@ dependencies {
102102
implementation Libs.Accompanist.coil
103103
implementation Libs.Accompanist.insets
104104

105-
// FIXME: Only needed for Compose alpha12
106105
androidTestImplementation Libs.AndroidX.Activity.activityCompose
107106

108-
androidTestImplementation Libs.junit
107+
androidTestImplementation Libs.JUnit.junit
109108
androidTestImplementation Libs.AndroidX.Test.core
110109
androidTestImplementation Libs.AndroidX.Test.espressoCore
111110
androidTestImplementation Libs.AndroidX.Test.rules

‎Owl/app/src/androidTest/java/com/example/owl/ui/NavigationTest.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
package com.example.owl.ui
1818

1919
import androidx.activity.ComponentActivity
20-
import androidx.compose.runtime.Providers
20+
import androidx.compose.runtime.CompositionLocalProvider
2121
import androidx.compose.ui.test.hasContentDescription
2222
import androidx.compose.ui.test.hasText
2323
import androidx.compose.ui.test.junit4.createAndroidComposeRule
@@ -48,7 +48,7 @@ class NavigationTest {
4848
private fun startActivity(startDestination: String? = null) {
4949
composeTestRule.setContent {
5050
val backDispatcher = composeTestRule.activity.onBackPressedDispatcher
51-
Providers(LocalBackDispatcher provides backDispatcher) {
51+
CompositionLocalProvider(LocalBackDispatcher provides backDispatcher) {
5252
ProvideWindowInsets {
5353
ProvideTestImageLoader {
5454
if (startDestination == null) {

‎Owl/app/src/androidTest/java/com/example/owl/ui/fakes/ProvideTestImageLoader.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ package com.example.owl.ui.fakes
1919
import android.graphics.Color
2020
import android.graphics.drawable.ColorDrawable
2121
import androidx.compose.runtime.Composable
22-
import androidx.compose.runtime.Providers
22+
import androidx.compose.runtime.CompositionLocalProvider
2323
import coil.ImageLoader
2424
import coil.annotation.ExperimentalCoilApi
2525
import coil.bitmap.BitmapPool
@@ -77,5 +77,5 @@ fun ProvideTestImageLoader(content: @Composable () -> Unit) {
7777

7878
override fun shutdown() {}
7979
}
80-
Providers(LocalImageLoader provides loader, content = content)
80+
CompositionLocalProvider(LocalImageLoader provides loader, content = content)
8181
}

‎Owl/app/src/main/java/com/example/owl/ui/OwlApp.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@ package com.example.owl.ui
1818

1919
import androidx.activity.OnBackPressedDispatcher
2020
import androidx.compose.runtime.Composable
21-
import androidx.compose.runtime.Providers
21+
import androidx.compose.runtime.CompositionLocalProvider
2222
import com.example.owl.ui.utils.LocalBackDispatcher
2323
import com.example.owl.ui.utils.ProvideImageLoader
2424
import dev.chrisbanes.accompanist.insets.ProvideWindowInsets
2525

2626
@Composable
2727
fun OwlApp(backDispatcher: OnBackPressedDispatcher) {
2828

29-
Providers(LocalBackDispatcher provides backDispatcher) {
29+
CompositionLocalProvider(LocalBackDispatcher provides backDispatcher) {
3030
ProvideWindowInsets {
3131
ProvideImageLoader {
3232
NavGraph()

‎Owl/app/src/main/java/com/example/owl/ui/common/CourseListItem.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import androidx.compose.foundation.layout.Column
2121
import androidx.compose.foundation.layout.Row
2222
import androidx.compose.foundation.layout.aspectRatio
2323
import androidx.compose.foundation.layout.padding
24-
import androidx.compose.foundation.layout.preferredSize
24+
import androidx.compose.foundation.layout.size
2525
import androidx.compose.foundation.layout.wrapContentWidth
2626
import androidx.compose.foundation.shape.CircleShape
2727
import androidx.compose.material.Icon
@@ -92,7 +92,7 @@ fun CourseListItem(
9292
imageVector = Icons.Rounded.OndemandVideo,
9393
tint = MaterialTheme.colors.primary,
9494
contentDescription = null,
95-
modifier = Modifier.preferredSize(iconSize)
95+
modifier = Modifier.size(iconSize)
9696
)
9797
Text(
9898
text = stringResource(
@@ -111,7 +111,7 @@ fun CourseListItem(
111111
url = course.instructor,
112112
contentDescription = null,
113113
modifier = Modifier
114-
.preferredSize(28.dp)
114+
.size(28.dp)
115115
.clip(CircleShape)
116116
)
117117
}

‎Owl/app/src/main/java/com/example/owl/ui/course/CourseDetails.kt

+27-18
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package com.example.owl.ui.course
1919
import androidx.compose.animation.core.animateDpAsState
2020
import androidx.compose.foundation.Image
2121
import androidx.compose.foundation.clickable
22+
import androidx.compose.foundation.gestures.Orientation.Vertical
2223
import androidx.compose.foundation.layout.Box
2324
import androidx.compose.foundation.layout.BoxWithConstraints
2425
import androidx.compose.foundation.layout.Column
@@ -28,10 +29,10 @@ import androidx.compose.foundation.layout.Spacer
2829
import androidx.compose.foundation.layout.aspectRatio
2930
import androidx.compose.foundation.layout.fillMaxSize
3031
import androidx.compose.foundation.layout.fillMaxWidth
32+
import androidx.compose.foundation.layout.height
3133
import androidx.compose.foundation.layout.offset
3234
import androidx.compose.foundation.layout.padding
33-
import androidx.compose.foundation.layout.preferredHeight
34-
import androidx.compose.foundation.layout.preferredSize
35+
import androidx.compose.foundation.layout.size
3536
import androidx.compose.foundation.lazy.LazyColumn
3637
import androidx.compose.foundation.lazy.LazyListState
3738
import androidx.compose.foundation.lazy.LazyRow
@@ -59,12 +60,12 @@ import androidx.compose.material.primarySurface
5960
import androidx.compose.material.rememberSwipeableState
6061
import androidx.compose.material.swipeable
6162
import androidx.compose.runtime.Composable
62-
import androidx.compose.runtime.Providers
63+
import androidx.compose.runtime.CompositionLocalProvider
6364
import androidx.compose.runtime.getValue
6465
import androidx.compose.runtime.remember
66+
import androidx.compose.runtime.rememberCoroutineScope
6567
import androidx.compose.ui.Alignment
6668
import androidx.compose.ui.Modifier
67-
import androidx.compose.ui.gesture.scrollorientationlocking.Orientation
6869
import androidx.compose.ui.graphics.Color
6970
import androidx.compose.ui.graphics.graphicsLayer
7071
import androidx.compose.ui.platform.LocalDensity
@@ -93,6 +94,7 @@ import dev.chrisbanes.accompanist.insets.LocalWindowInsets
9394
import dev.chrisbanes.accompanist.insets.navigationBarsPadding
9495
import dev.chrisbanes.accompanist.insets.statusBarsPadding
9596
import dev.chrisbanes.accompanist.insets.toPaddingValues
97+
import kotlinx.coroutines.launch
9698

9799
private val FabSize = 56.dp
98100
private const val ExpandedSheetAlpha = 0.96f
@@ -121,10 +123,15 @@ fun CourseDetails(
121123
val sheetState = rememberSwipeableState(SheetState.Closed)
122124
val fabSize = with(LocalDensity.current) { FabSize.toPx() }
123125
val dragRange = constraints.maxHeight - fabSize
126+
val scope = rememberCoroutineScope()
124127

125128
backHandler(
126-
enabled = sheetState.value == SheetState.Open,
127-
onBack = { sheetState.animateTo(SheetState.Closed) }
129+
enabled = sheetState.currentValue == SheetState.Open,
130+
onBack = {
131+
scope.launch {
132+
sheetState.animateTo(SheetState.Closed)
133+
}
134+
}
128135
)
129136

130137
Box(
@@ -137,7 +144,7 @@ fun CourseDetails(
137144
-dragRange to SheetState.Open
138145
),
139146
thresholds = { _, _ -> FractionalThreshold(0.5f) },
140-
orientation = Orientation.Vertical
147+
orientation = Vertical
141148
)
142149
) {
143150
val openFraction = if (sheetState.offset.value.isNaN()) {
@@ -152,7 +159,9 @@ fun CourseDetails(
152159
this@BoxWithConstraints.constraints.maxWidth.toFloat(),
153160
this@BoxWithConstraints.constraints.maxHeight.toFloat()
154161
) { state ->
155-
sheetState.animateTo(state)
162+
scope.launch {
163+
sheetState.animateTo(state)
164+
}
156165
}
157166
}
158167
}
@@ -205,15 +214,15 @@ private fun CourseDescriptionHeader(
205214
contentDescription = null,
206215
modifier = Modifier
207216
.padding(bottom = 4.dp)
208-
.preferredSize(24.dp)
217+
.size(24.dp)
209218
.align(Alignment.CenterVertically)
210219
)
211220
Spacer(modifier = Modifier.weight(1f))
212221
}
213222
OutlinedAvatar(
214223
url = course.instructor,
215224
modifier = Modifier
216-
.preferredSize(40.dp)
225+
.size(40.dp)
217226
.align(Alignment.BottomCenter)
218227
.offset(y = 20.dp) // overlap bottom of image
219228
)
@@ -244,8 +253,8 @@ private fun CourseDescriptionBody(course: Course) {
244253
.fillMaxWidth()
245254
.padding(horizontal = 16.dp)
246255
)
247-
Spacer(modifier = Modifier.preferredHeight(16.dp))
248-
Providers(LocalContentAlpha provides ContentAlpha.medium) {
256+
Spacer(modifier = Modifier.height(16.dp))
257+
CompositionLocalProvider(LocalContentAlpha provides ContentAlpha.medium) {
249258
Text(
250259
text = stringResource(id = R.string.course_desc),
251260
style = MaterialTheme.typography.body1,
@@ -264,7 +273,7 @@ private fun CourseDescriptionBody(course: Course) {
264273
.fillMaxWidth()
265274
.padding(16.dp)
266275
)
267-
Providers(LocalContentAlpha provides ContentAlpha.medium) {
276+
CompositionLocalProvider(LocalContentAlpha provides ContentAlpha.medium) {
268277
Text(
269278
text = stringResource(id = R.string.needs),
270279
style = MaterialTheme.typography.body1,
@@ -318,7 +327,7 @@ private fun RelatedCourses(
318327
titleStyle = MaterialTheme.typography.body2,
319328
modifier = Modifier
320329
.padding(end = 8.dp)
321-
.preferredSize(288.dp, 80.dp),
330+
.size(288.dp, 80.dp),
322331
iconSize = 14.dp
323332
)
324333
}
@@ -424,7 +433,7 @@ private fun Lessons(
424433
val fabAlpha = lerp(1f, 0f, 0f, 0.15f, openFraction)
425434
Box(
426435
modifier = Modifier
427-
.preferredSize(FabSize)
436+
.size(FabSize)
428437
.padding(start = 16.dp, top = 8.dp) // visually center contents
429438
.graphicsLayer { alpha = fabAlpha }
430439
) {
@@ -452,7 +461,7 @@ private fun Lesson(lesson: Lesson) {
452461
NetworkImage(
453462
url = lesson.imageUrl,
454463
contentDescription = null,
455-
modifier = Modifier.preferredSize(112.dp, 64.dp)
464+
modifier = Modifier.size(112.dp, 64.dp)
456465
)
457466
Column(
458467
modifier = Modifier
@@ -465,15 +474,15 @@ private fun Lesson(lesson: Lesson) {
465474
maxLines = 2,
466475
overflow = TextOverflow.Ellipsis
467476
)
468-
Providers(LocalContentAlpha provides ContentAlpha.medium) {
477+
CompositionLocalProvider(LocalContentAlpha provides ContentAlpha.medium) {
469478
Row(
470479
modifier = Modifier.padding(top = 4.dp),
471480
verticalAlignment = Alignment.CenterVertically
472481
) {
473482
Icon(
474483
imageVector = Icons.Rounded.PlayCircleOutline,
475484
contentDescription = null,
476-
modifier = Modifier.preferredSize(16.dp)
485+
modifier = Modifier.size(16.dp)
477486
)
478487
Text(
479488
modifier = Modifier.padding(start = 4.dp),

‎Owl/app/src/main/java/com/example/owl/ui/courses/Courses.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ package com.example.owl.ui.courses
1919
import androidx.annotation.DrawableRes
2020
import androidx.annotation.StringRes
2121
import androidx.compose.foundation.Image
22+
import androidx.compose.foundation.layout.height
2223
import androidx.compose.foundation.layout.padding
23-
import androidx.compose.foundation.layout.preferredHeight
2424
import androidx.compose.material.BottomNavigation
2525
import androidx.compose.material.BottomNavigationItem
2626
import androidx.compose.material.Icon
@@ -65,7 +65,7 @@ fun Courses(selectCourse: (Long) -> Unit) {
6565
label = { Text(stringResource(tab.title).toUpperCase()) },
6666
selected = tab == selectedTab,
6767
onClick = { setSelectedTab(tab) },
68-
alwaysShowLabels = false,
68+
alwaysShowLabel = false,
6969
selectedContentColor = MaterialTheme.colors.secondary,
7070
unselectedContentColor = LocalContentColor.current,
7171
modifier = Modifier.navigationBarsPadding()
@@ -88,7 +88,7 @@ fun Courses(selectCourse: (Long) -> Unit) {
8888
fun CoursesAppBar() {
8989
TopAppBar(
9090
elevation = 0.dp,
91-
modifier = Modifier.preferredHeight(80.dp)
91+
modifier = Modifier.height(80.dp)
9292
) {
9393
Image(
9494
modifier = Modifier

‎Owl/app/src/main/java/com/example/owl/ui/courses/FeaturedCourses.kt

+3-5
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,9 @@ package com.example.owl.ui.courses
1818

1919
import androidx.compose.foundation.clickable
2020
import androidx.compose.foundation.layout.Column
21-
import androidx.compose.foundation.layout.ExperimentalLayout
2221
import androidx.compose.foundation.layout.aspectRatio
2322
import androidx.compose.foundation.layout.padding
24-
import androidx.compose.foundation.layout.preferredSize
23+
import androidx.compose.foundation.layout.size
2524
import androidx.compose.foundation.rememberScrollState
2625
import androidx.compose.foundation.verticalScroll
2726
import androidx.compose.material.Icon
@@ -75,7 +74,6 @@ fun FeaturedCourses(
7574
}
7675
}
7776

78-
@OptIn(ExperimentalLayout::class)
7977
@Composable
8078
fun FeaturedCourse(
8179
course: Course,
@@ -117,7 +115,7 @@ fun FeaturedCourse(
117115
url = course.instructor,
118116
outlineColor = outlineColor,
119117
modifier = Modifier
120-
.preferredSize(38.dp)
118+
.size(38.dp)
121119
.constrainAs(avatar) {
122120
centerHorizontallyTo(parent)
123121
centerAround(image.bottom)
@@ -151,7 +149,7 @@ fun FeaturedCourse(
151149
tint = MaterialTheme.colors.primary,
152150
contentDescription = null,
153151
modifier = Modifier
154-
.preferredSize(16.dp)
152+
.size(16.dp)
155153
.constrainAs(icon) {
156154
end.linkTo(center)
157155
centerVerticallyTo(steps)

‎Owl/app/src/main/java/com/example/owl/ui/courses/MyCourses.kt

+4-4
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ package com.example.owl.ui.courses
1818

1919
import androidx.compose.foundation.layout.Row
2020
import androidx.compose.foundation.layout.Spacer
21+
import androidx.compose.foundation.layout.height
2122
import androidx.compose.foundation.layout.padding
22-
import androidx.compose.foundation.layout.preferredHeight
23-
import androidx.compose.foundation.layout.preferredWidth
23+
import androidx.compose.foundation.layout.width
2424
import androidx.compose.foundation.lazy.LazyColumn
2525
import androidx.compose.foundation.lazy.itemsIndexed
2626
import androidx.compose.foundation.shape.RoundedCornerShape
@@ -61,12 +61,12 @@ fun MyCourse(
6161
) {
6262
Row(modifier = Modifier.padding(bottom = 8.dp)) {
6363
val stagger = if (index % 2 == 0) 72.dp else 16.dp
64-
Spacer(modifier = Modifier.preferredWidth(stagger))
64+
Spacer(modifier = Modifier.width(stagger))
6565
CourseListItem(
6666
course = course,
6767
onClick = { selectCourse(course.id) },
6868
shape = RoundedCornerShape(topStart = 24.dp),
69-
modifier = Modifier.preferredHeight(96.dp)
69+
modifier = Modifier.height(96.dp)
7070
)
7171
}
7272
}

‎Owl/app/src/main/java/com/example/owl/ui/courses/SearchCourses.kt

+2-1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import androidx.compose.runtime.mutableStateOf
3838
import androidx.compose.runtime.remember
3939
import androidx.compose.ui.Alignment
4040
import androidx.compose.ui.Modifier
41+
import androidx.compose.ui.graphics.SolidColor
4142
import androidx.compose.ui.res.painterResource
4243
import androidx.compose.ui.res.stringResource
4344
import androidx.compose.ui.text.input.TextFieldValue
@@ -113,7 +114,7 @@ private fun AppBar(
113114
color = LocalContentColor.current
114115
),
115116
maxLines = 1,
116-
cursorColor = LocalContentColor.current,
117+
cursorBrush = SolidColor(LocalContentColor.current),
117118
modifier = Modifier
118119
.weight(1f)
119120
.align(Alignment.CenterVertically)

0 commit comments

Comments
 (0)
Please sign in to comment.