fix(android): make samplePosts helper generic

This commit is contained in:
Harsh Shandilya
2026-01-04 19:39:25 +05:30
parent ccafc96c78
commit 287eb04913
5 changed files with 14 additions and 10 deletions
@@ -96,7 +96,7 @@ class SavedPostsWidget : GlanceAppWidget() {
)
}
@SuppressLint("VisibleForTests", "ComposeUnstableReceiver")
@SuppressLint("ComposeUnstableReceiver")
@OptIn(ExperimentalGlancePreviewApi::class)
@Preview
@GlanceComposable
@@ -6,7 +6,6 @@
*/
package dev.msfjarvis.claw.android.glance
import android.annotation.SuppressLint
import android.content.Intent
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
@@ -33,7 +32,6 @@ import androidx.glance.text.Text
import androidx.glance.text.TextStyle
import dev.msfjarvis.claw.android.MainActivity
import dev.msfjarvis.claw.android.R
import dev.msfjarvis.claw.common.posts.TEST_POST
import dev.msfjarvis.claw.model.UIPost
@Composable
@@ -78,11 +76,10 @@ fun WidgetPostEntry(post: UIPost, modifier: GlanceModifier = GlanceModifier) {
}
}
@SuppressLint("VisibleForTests")
@OptIn(ExperimentalGlancePreviewApi::class)
@Preview
@GlanceComposable
@Composable
private fun WidgetPostEntryPreview() {
WidgetPostEntry(TEST_POST)
WidgetPostEntry(samplePosts(1).first())
}
@@ -30,6 +30,8 @@ import androidx.glance.text.TextStyle
import dev.msfjarvis.claw.common.posts.TEST_POST
import dev.msfjarvis.claw.common.theme.DarkThemeColors
import dev.msfjarvis.claw.common.theme.LightThemeColors
import dev.msfjarvis.claw.model.UIPost
import kotlinx.collections.immutable.PersistentList
import kotlinx.collections.immutable.toPersistentList
@Composable
@@ -62,4 +64,9 @@ fun WidgetContainer(
}
@SuppressLint("VisibleForTests")
fun samplePosts() = buildList(5) { repeat(5) { add(TEST_POST) } }.toPersistentList()
fun samplePosts(
count: Int = 5,
mutator: UIPost.(idx: Int) -> UIPost = { this },
): PersistentList<UIPost> {
return buildList(count) { repeat(count) { add(TEST_POST.mutator(it)) } }.toPersistentList()
}
@@ -14,9 +14,9 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.vector.rememberVectorPainter
import androidx.compose.ui.unit.dp
import dev.msfjarvis.claw.android.glance.samplePosts
import dev.msfjarvis.claw.common.posts.LobstersCard
import dev.msfjarvis.claw.common.posts.PostActions
import dev.msfjarvis.claw.common.posts.TEST_POST
import dev.msfjarvis.claw.common.posts.TEST_POST_ACTIONS
import dev.msfjarvis.claw.common.theme.LobstersTheme
import dev.msfjarvis.claw.common.ui.preview.ThemePreviews
@@ -51,5 +51,5 @@ fun LobstersListItem(item: UIPost, postActions: PostActions, modifier: Modifier
@ThemePreviews
@Composable
private fun ItemPreview() {
LobstersTheme { LobstersListItem(item = TEST_POST, postActions = TEST_POST_ACTIONS) }
LobstersTheme { LobstersListItem(item = samplePosts(1).first(), postActions = TEST_POST_ACTIONS) }
}
@@ -31,8 +31,8 @@ import androidx.paging.PagingData
import androidx.paging.compose.LazyPagingItems
import androidx.paging.compose.collectAsLazyPagingItems
import androidx.paging.compose.itemContentType
import dev.msfjarvis.claw.android.glance.samplePosts
import dev.msfjarvis.claw.common.posts.PostActions
import dev.msfjarvis.claw.common.posts.TEST_POST
import dev.msfjarvis.claw.common.posts.TEST_POST_ACTIONS
import dev.msfjarvis.claw.common.theme.LobstersTheme
import dev.msfjarvis.claw.common.ui.NetworkError
@@ -110,7 +110,7 @@ fun NetworkPosts(
@DevicePreviews
@Composable
private fun ListPreview() {
val items = List(20) { TEST_POST.copy(shortId = "${TEST_POST.shortId}${it}") }
val items = samplePosts(20) { this.copy(shortId = "${this.shortId}${it}") }
val flow = MutableStateFlow(PagingData.from(items))
LobstersTheme {
NetworkPosts(