Skip to content

Commit fc789cb

Browse files
authoredApr 3, 2020
Bump to dev08 snapshot build. (android#67)
* Bump to dev08. Changes: * Refactored modifiers to use fluent style throughout * Switched to new use Icon and Image composables * Switch to using IconButton where appropriate * Updated Scaffolding to use IconButton for navigationIcon * Removed vector helpers from sample that are now included in the library * Update typography of code paraghraphs to expand, and avoid setting background on text in code blocks as alpha is not respected – use the background of the Box * Replaced all Container with Box * General code cleanup to remove nesting that can be replaced with modifiers * Moved Modifiers to *first default argument* to follow style * Aligned bullets with baseline of text * Sized bullets based on font scaling * Removed many named arguments that were not required for readibility * Added note for bugfix related to font coloring requiring contentColor w/ link to b/143626708 * Use ColorFilter.tint to semantically tint vectors * Continue using Modifier.None for default arugments which is the style in dev08, this is likely to be replaced with `Modifier` in dev09
1 parent 9df31e9 commit fc789cb

File tree

16 files changed

+426
-540
lines changed

16 files changed

+426
-540
lines changed
 

‎JetNews/app/src/androidTest/java/com/example/jetnews/JetnewsUiTest.kt

-9
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
package com.example.jetnews
1818

1919
import androidx.test.filters.MediumTest
20-
import androidx.test.filters.Suppress
2120
import androidx.ui.test.assertIsDisplayed
2221
import androidx.ui.test.createComposeRule
2322
import androidx.ui.test.doClick
@@ -41,19 +40,11 @@ class JetnewsUiTest {
4140
}
4241

4342
@Test
44-
fun avoidemptyTestSuite() {
45-
// this is an empty test to make gradle pass the suite
46-
// TODO(b/150728822): remove this after test runner is fixed
47-
}
48-
49-
@Test
50-
@Suppress // TODO(b/150728822): re-enabled after test runner is fixed
5143
fun app_launches() {
5244
findByText("Jetnews").assertIsDisplayed()
5345
}
5446

5547
@Test
56-
@Suppress // TODO(b/150728822): re-enabled after test runner is fixed
5748
fun app_opensArticle() {
5849
findAllBySubstring("Manuel Vivo").first().doClick()
5950
findAllBySubstring("July 30 • 3 min read").first().assertIsDisplayed()

‎JetNews/app/src/androidTest/java/com/example/jetnews/TestHelper.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ package com.example.jetnews
1818

1919
import androidx.compose.Composable
2020
import androidx.ui.material.MaterialTheme
21-
import androidx.ui.material.surface.Surface
21+
import androidx.ui.material.Surface
2222
import androidx.ui.test.ComposeTestRule
2323
import androidx.ui.test.SemanticsNodeInteraction
2424
import androidx.ui.test.findAll

‎JetNews/app/src/main/java/com/example/jetnews/model/Post.kt

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
package com.example.jetnews.model
1818

19-
import androidx.ui.graphics.Image
19+
import androidx.ui.graphics.ImageAsset
2020

2121
data class Post(
2222
val id: String,
@@ -28,8 +28,8 @@ data class Post(
2828
val paragraphs: List<Paragraph> = emptyList(),
2929
val imageId: Int,
3030
val imageThumbId: Int,
31-
val image: Image? = null,
32-
val imageThumb: Image? = null
31+
val image: ImageAsset? = null,
32+
val imageThumb: ImageAsset? = null
3333
)
3434

3535
data class Metadata(

‎JetNews/app/src/main/java/com/example/jetnews/ui/JetnewsApp.kt

+62-49
Original file line numberDiff line numberDiff line change
@@ -20,21 +20,24 @@ import androidx.annotation.DrawableRes
2020
import androidx.compose.Composable
2121
import androidx.ui.animation.Crossfade
2222
import androidx.ui.core.Modifier
23-
import androidx.ui.core.Text
23+
import androidx.ui.foundation.Image
24+
import androidx.ui.foundation.Text
2425
import androidx.ui.foundation.shape.corner.RoundedCornerShape
26+
import androidx.ui.graphics.ColorFilter
2527
import androidx.ui.layout.Arrangement
2628
import androidx.ui.layout.Column
27-
import androidx.ui.layout.LayoutGravity
28-
import androidx.ui.layout.LayoutHeight
29-
import androidx.ui.layout.LayoutPadding
30-
import androidx.ui.layout.LayoutSize
31-
import androidx.ui.layout.LayoutWidth
3229
import androidx.ui.layout.Row
3330
import androidx.ui.layout.Spacer
31+
import androidx.ui.layout.fillMaxSize
32+
import androidx.ui.layout.fillMaxWidth
33+
import androidx.ui.layout.padding
34+
import androidx.ui.layout.preferredHeight
35+
import androidx.ui.layout.preferredWidth
3436
import androidx.ui.material.Divider
3537
import androidx.ui.material.MaterialTheme
38+
import androidx.ui.material.Surface
3639
import androidx.ui.material.TextButton
37-
import androidx.ui.material.surface.Surface
40+
import androidx.ui.res.vectorResource
3841
import androidx.ui.tooling.preview.Preview
3942
import androidx.ui.unit.dp
4043
import com.example.jetnews.R
@@ -56,7 +59,7 @@ fun JetnewsApp() {
5659
@Composable
5760
private fun AppContent() {
5861
Crossfade(JetnewsStatus.currentScreen) { screen ->
59-
Surface(color = MaterialTheme.colors().background) {
62+
Surface(color = MaterialTheme.colors.background) {
6063
when (screen) {
6164
is Screen.Home -> HomeScreen()
6265
is Screen.Interests -> InterestsScreen()
@@ -71,49 +74,61 @@ fun AppDrawer(
7174
currentScreen: Screen,
7275
closeDrawer: () -> Unit
7376
) {
74-
Column(modifier = LayoutSize.Fill) {
75-
Spacer(LayoutHeight(24.dp))
76-
Row(modifier = LayoutPadding(16.dp)) {
77-
VectorImage(
78-
id = R.drawable.ic_jetnews_logo,
79-
tint = MaterialTheme.colors().primary
80-
)
81-
Spacer(LayoutWidth(8.dp))
82-
VectorImage(
83-
id = R.drawable.ic_jetnews_wordmark,
84-
tint = MaterialTheme.colors().onSurface
85-
)
86-
}
87-
Divider(color = MaterialTheme.colors().onSurface.copy(alpha = .2f))
77+
Column(modifier = Modifier.fillMaxSize()) {
78+
Spacer(Modifier.preferredHeight(24.dp))
79+
JetNewsLogo(Modifier.padding(16.dp))
80+
Divider(color = MaterialTheme.colors.onSurface.copy(alpha = .2f))
8881
DrawerButton(
8982
icon = R.drawable.ic_home,
9083
label = "Home",
91-
isSelected = currentScreen == Screen.Home
92-
) {
93-
navigateTo(Screen.Home)
94-
closeDrawer()
95-
}
84+
isSelected = currentScreen == Screen.Home,
85+
action = {
86+
navigateTo(Screen.Home)
87+
closeDrawer()
88+
}
89+
)
9690

9791
DrawerButton(
9892
icon = R.drawable.ic_interests,
9993
label = "Interests",
100-
isSelected = currentScreen == Screen.Interests
101-
) {
102-
navigateTo(Screen.Interests)
103-
closeDrawer()
104-
}
94+
isSelected = currentScreen == Screen.Interests,
95+
action = {
96+
navigateTo(Screen.Interests)
97+
closeDrawer()
98+
}
99+
)
100+
}
101+
}
102+
103+
@Composable
104+
private fun JetNewsLogo(modifier: Modifier = Modifier.None) {
105+
Row(modifier = modifier) {
106+
Image(
107+
asset = vectorResource(R.drawable.ic_jetnews_logo),
108+
colorFilter = ColorFilter.tint(MaterialTheme.colors.primary)
109+
)
110+
Spacer(Modifier.preferredWidth(8.dp))
111+
Image(
112+
asset = vectorResource(R.drawable.ic_jetnews_wordmark),
113+
colorFilter = ColorFilter.tint(MaterialTheme.colors.onSurface)
114+
)
105115
}
106116
}
107117

108118
@Composable
109119
private fun DrawerButton(
110-
modifier: Modifier = Modifier.None,
111120
@DrawableRes icon: Int,
112121
label: String,
113122
isSelected: Boolean,
114-
action: () -> Unit
123+
action: () -> Unit,
124+
modifier: Modifier = Modifier.None
115125
) {
116-
val colors = MaterialTheme.colors()
126+
val colors = MaterialTheme.colors
127+
val imageAlpha = if (isSelected) {
128+
1f
129+
} else {
130+
0.6f
131+
}
117132
val textIconColor = if (isSelected) {
118133
colors.primary
119134
} else {
@@ -125,28 +140,26 @@ private fun DrawerButton(
125140
colors.surface
126141
}
127142

128-
val surfaceModifier = modifier +
129-
LayoutPadding(start = 8.dp, top = 8.dp, end = 8.dp, bottom = 0.dp) +
130-
LayoutWidth.Fill
143+
val surfaceModifier = modifier
144+
.padding(start = 8.dp, top = 8.dp, end = 8.dp)
145+
.fillMaxWidth()
131146
Surface(
132147
modifier = surfaceModifier,
133148
color = backgroundColor,
134149
shape = RoundedCornerShape(4.dp)
135150
) {
136-
TextButton(onClick = action, modifier = LayoutWidth.Fill) {
137-
Row(arrangement = Arrangement.Start, modifier = LayoutWidth.Fill) {
138-
VectorImage(
139-
modifier = LayoutGravity.Center,
140-
id = icon,
141-
tint = textIconColor
151+
TextButton(onClick = action, modifier = Modifier.fillMaxWidth()) {
152+
Row(arrangement = Arrangement.Start, modifier = Modifier.fillMaxWidth()) {
153+
Image(
154+
asset = vectorResource(icon),
155+
colorFilter = ColorFilter.tint(textIconColor),
156+
alpha = imageAlpha
142157
)
143-
Spacer(LayoutWidth(16.dp))
158+
Spacer(Modifier.preferredWidth(16.dp))
144159
Text(
145160
text = label,
146-
style = (MaterialTheme.typography()).body2.copy(
147-
color = textIconColor
148-
),
149-
modifier = LayoutWidth.Fill
161+
style = MaterialTheme.typography.body2.copy(color = textIconColor),
162+
modifier = Modifier.fillMaxWidth()
150163
)
151164
}
152165
}

‎JetNews/app/src/main/java/com/example/jetnews/ui/PreviewUtils.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ package com.example.jetnews.ui
1919
import androidx.compose.Composable
2020
import androidx.ui.material.ColorPalette
2121
import androidx.ui.material.MaterialTheme
22+
import androidx.ui.material.Surface
2223
import androidx.ui.material.Typography
23-
import androidx.ui.material.surface.Surface
2424

2525
@Composable
2626
internal fun ThemedPreview(

‎JetNews/app/src/main/java/com/example/jetnews/ui/Vectors.kt

-51
This file was deleted.

0 commit comments

Comments
 (0)
Please sign in to comment.