diff --git a/core-ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt b/core-ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt index 3aabc7105..5b160abac 100644 --- a/core-ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt +++ b/core-ui/src/main/java/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt @@ -64,6 +64,7 @@ import com.google.samples.apps.nowinandroid.core.model.data.NewsResource import com.google.samples.apps.nowinandroid.core.model.data.NewsResourceType.Article import com.google.samples.apps.nowinandroid.core.model.data.Topic import java.time.ZoneId +import java.time.ZoneOffset import java.time.format.DateTimeFormatter import kotlinx.datetime.Instant import kotlinx.datetime.toJavaInstant @@ -224,8 +225,31 @@ fun BookmarkButton( ) } +/** + * Formats that given [publishDate] as a [String]. + * + * In production, this will return the string in the current time zone, and automatically update + * whenever the timezone changes. + * + * In preview mode, this will always return the string as formatted in UTC. + */ @Composable private fun dateFormatted(publishDate: Instant): String { + val zoneId = if (LocalInspectionMode.current) { + ZoneId.of(ZoneOffset.UTC.id) + } else { + currentTimeZone() + } + + return DateTimeFormatter.ofPattern("MMM d, yyyy") + .withZone(zoneId).format(publishDate.toJavaInstant()) +} + +/** + * Returns the current time zone with updates when the time zone changes. + */ +@Composable +private fun currentTimeZone(): ZoneId { var zoneId by remember { mutableStateOf(ZoneId.systemDefault()) } val context = LocalContext.current @@ -240,8 +264,7 @@ private fun dateFormatted(publishDate: Instant): String { } } - return DateTimeFormatter.ofPattern("MMM d, yyyy") - .withZone(zoneId).format(publishDate.toJavaInstant()) + return zoneId } @Composable diff --git a/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.core.ui_null_DefaultGroup_NewsResourceCardExpanded_,NEXUS_5,1.5].png b/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.core.ui_null_DefaultGroup_NewsResourceCardExpanded_,NEXUS_5,1.5].png index 99a3769d7..42bf0c96a 100644 Binary files a/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.core.ui_null_DefaultGroup_NewsResourceCardExpanded_,NEXUS_5,1.5].png and b/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.core.ui_null_DefaultGroup_NewsResourceCardExpanded_,NEXUS_5,1.5].png differ diff --git a/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.core.ui_null_DefaultGroup_NewsResourceCardExpanded_,NEXUS_5,1].png b/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.core.ui_null_DefaultGroup_NewsResourceCardExpanded_,NEXUS_5,1].png index f7a6f611f..1f8843248 100644 Binary files a/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.core.ui_null_DefaultGroup_NewsResourceCardExpanded_,NEXUS_5,1].png and b/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.core.ui_null_DefaultGroup_NewsResourceCardExpanded_,NEXUS_5,1].png differ diff --git a/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.core.ui_null_DefaultGroup_NewsResourceCardExpanded_,PIXEL_5,1.5].png b/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.core.ui_null_DefaultGroup_NewsResourceCardExpanded_,PIXEL_5,1.5].png index 4e0f7259e..57480b40e 100644 Binary files a/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.core.ui_null_DefaultGroup_NewsResourceCardExpanded_,PIXEL_5,1.5].png and b/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.core.ui_null_DefaultGroup_NewsResourceCardExpanded_,PIXEL_5,1.5].png differ diff --git a/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.core.ui_null_DefaultGroup_NewsResourceCardExpanded_,PIXEL_5,1].png b/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.core.ui_null_DefaultGroup_NewsResourceCardExpanded_,PIXEL_5,1].png index 934125102..6349ff671 100644 Binary files a/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.core.ui_null_DefaultGroup_NewsResourceCardExpanded_,PIXEL_5,1].png and b/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.core.ui_null_DefaultGroup_NewsResourceCardExpanded_,PIXEL_5,1].png differ diff --git a/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.core.ui_null_DefaultGroup_NewsResourceCardExpanded_,PIXEL_C,1.5].png b/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.core.ui_null_DefaultGroup_NewsResourceCardExpanded_,PIXEL_C,1.5].png index f7bd2a919..e950389e5 100644 Binary files a/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.core.ui_null_DefaultGroup_NewsResourceCardExpanded_,PIXEL_C,1.5].png and b/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.core.ui_null_DefaultGroup_NewsResourceCardExpanded_,PIXEL_C,1.5].png differ diff --git a/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.core.ui_null_DefaultGroup_NewsResourceCardExpanded_,PIXEL_C,1].png b/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.core.ui_null_DefaultGroup_NewsResourceCardExpanded_,PIXEL_C,1].png index d3073945d..ffeded7c0 100644 Binary files a/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.core.ui_null_DefaultGroup_NewsResourceCardExpanded_,PIXEL_C,1].png and b/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.core.ui_null_DefaultGroup_NewsResourceCardExpanded_,PIXEL_C,1].png differ diff --git a/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.feature.foryou_null_DefaultGroup_PopulatedFeed_,NEXUS_5,1.5].png b/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.feature.foryou_null_DefaultGroup_PopulatedFeed_,NEXUS_5,1.5].png index b1f5072fc..3ff920c09 100644 Binary files a/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.feature.foryou_null_DefaultGroup_PopulatedFeed_,NEXUS_5,1.5].png and b/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.feature.foryou_null_DefaultGroup_PopulatedFeed_,NEXUS_5,1.5].png differ diff --git a/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.feature.foryou_null_DefaultGroup_PopulatedFeed_,NEXUS_5,1].png b/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.feature.foryou_null_DefaultGroup_PopulatedFeed_,NEXUS_5,1].png index 9c498179b..b837ddba3 100644 Binary files a/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.feature.foryou_null_DefaultGroup_PopulatedFeed_,NEXUS_5,1].png and b/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.feature.foryou_null_DefaultGroup_PopulatedFeed_,NEXUS_5,1].png differ diff --git a/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.feature.foryou_null_DefaultGroup_PopulatedFeed_,PIXEL_5,1.5].png b/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.feature.foryou_null_DefaultGroup_PopulatedFeed_,PIXEL_5,1.5].png index 28a47e6f3..5c4874bba 100644 Binary files a/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.feature.foryou_null_DefaultGroup_PopulatedFeed_,PIXEL_5,1.5].png and b/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.feature.foryou_null_DefaultGroup_PopulatedFeed_,PIXEL_5,1.5].png differ diff --git a/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.feature.foryou_null_DefaultGroup_PopulatedFeed_,PIXEL_5,1].png b/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.feature.foryou_null_DefaultGroup_PopulatedFeed_,PIXEL_5,1].png index 83aeede4c..4011dd3ab 100644 Binary files a/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.feature.foryou_null_DefaultGroup_PopulatedFeed_,PIXEL_5,1].png and b/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.feature.foryou_null_DefaultGroup_PopulatedFeed_,PIXEL_5,1].png differ diff --git a/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.feature.foryou_null_DefaultGroup_PopulatedFeed_,PIXEL_C,1.5].png b/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.feature.foryou_null_DefaultGroup_PopulatedFeed_,PIXEL_C,1.5].png index 2908a2e31..514eb04d1 100644 Binary files a/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.feature.foryou_null_DefaultGroup_PopulatedFeed_,PIXEL_C,1.5].png and b/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.feature.foryou_null_DefaultGroup_PopulatedFeed_,PIXEL_C,1.5].png differ diff --git a/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.feature.foryou_null_DefaultGroup_PopulatedFeed_,PIXEL_C,1].png b/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.feature.foryou_null_DefaultGroup_PopulatedFeed_,PIXEL_C,1].png index 4d7c13690..2a1139ea1 100644 Binary files a/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.feature.foryou_null_DefaultGroup_PopulatedFeed_,PIXEL_C,1].png and b/preview-screenshots/src/test/snapshots/images/com.google.samples.apps.nowinandroid_PreviewScreenshotTests_preview_tests[com.google.samples.apps.nowinandroid.feature.foryou_null_DefaultGroup_PopulatedFeed_,PIXEL_C,1].png differ