Skip to content

Commit e2ec80c

Browse files
[Jetnews] Showcase PreviewParameterProvider usage.
1 parent b0922b3 commit e2ec80c

File tree

2 files changed

+38
-6
lines changed

2 files changed

+38
-6
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/*
2+
* Copyright 2021 The Android Open Source Project
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* https://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
package com.example.jetnews
18+
19+
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
20+
import com.example.jetnews.data.posts.impl.post1
21+
import com.example.jetnews.data.posts.impl.post2
22+
import com.example.jetnews.data.posts.impl.post3
23+
import com.example.jetnews.data.posts.impl.post4
24+
import com.example.jetnews.data.posts.impl.post5
25+
import com.example.jetnews.model.Post
26+
27+
class PostPreviewParameterProvider : PreviewParameterProvider<Post> {
28+
override val values = sequenceOf(
29+
post1, post2, post3, post4, post5
30+
)
31+
}

JetNews/app/src/main/java/com/example/jetnews/ui/home/PostCardYourNetwork.kt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,10 @@ import androidx.compose.ui.res.painterResource
3535
import androidx.compose.ui.res.stringResource
3636
import androidx.compose.ui.text.style.TextOverflow
3737
import androidx.compose.ui.tooling.preview.Preview
38+
import androidx.compose.ui.tooling.preview.PreviewParameter
3839
import androidx.compose.ui.unit.dp
40+
import com.example.jetnews.PostPreviewParameterProvider
3941
import com.example.jetnews.R
40-
import com.example.jetnews.data.posts.impl.post1
4142
import com.example.jetnews.model.Post
4243
import com.example.jetnews.model.PostAuthor
4344
import com.example.jetnews.ui.theme.JetnewsTheme
@@ -95,17 +96,17 @@ fun PostCardPopular(
9596
@Preview("Regular colors")
9697
@Preview("Dark colors", uiMode = UI_MODE_NIGHT_YES)
9798
@Composable
98-
fun PreviewPostCardPopular() {
99+
fun PreviewPostCardPopular(@PreviewParameter(PostPreviewParameterProvider::class, limit = 1) post: Post) {
99100
JetnewsTheme {
100101
Surface {
101-
PostCardPopular(post1, {})
102+
PostCardPopular(post, {})
102103
}
103104
}
104105
}
105106

106107
@Preview("Regular colors, long text")
107108
@Composable
108-
fun PreviewPostCardPopularLongText() {
109+
fun PreviewPostCardPopularLongText(@PreviewParameter(PostPreviewParameterProvider::class, limit = 1) post: Post) {
109110
val loremIpsum =
110111
"""
111112
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras ullamcorper pharetra massa,
@@ -118,9 +119,9 @@ fun PreviewPostCardPopularLongText() {
118119
JetnewsTheme {
119120
Surface {
120121
PostCardPopular(
121-
post1.copy(
122+
post.copy(
122123
title = "Title$loremIpsum",
123-
metadata = post1.metadata.copy(
124+
metadata = post.metadata.copy(
124125
author = PostAuthor("Author: $loremIpsum"),
125126
readTimeMinutes = Int.MAX_VALUE
126127
)

0 commit comments

Comments
 (0)