Watchface screenshots to use UTC timezone
Previously they where using the default timezone which means static
numbers couldn't be used to provide the correct reference time for
screenshots.
Test: Presubmit
Change-Id: I3b7f51d962739265ace4c9e11f29ca47d5ec14b0
diff --git a/wear/wear-watchface-data/src/main/java/androidx/wear/watchface/control/data/ComplicationScreenshotParams.java b/wear/wear-watchface-data/src/main/java/androidx/wear/watchface/control/data/ComplicationScreenshotParams.java
index 1c0582f..5f9a967 100644
--- a/wear/wear-watchface-data/src/main/java/androidx/wear/watchface/control/data/ComplicationScreenshotParams.java
+++ b/wear/wear-watchface-data/src/main/java/androidx/wear/watchface/control/data/ComplicationScreenshotParams.java
@@ -54,7 +54,7 @@
@ParcelField(3)
int mCompressionQuality;
- /** The calendar time (millis since the epoch) to render with. */
+ /** The UTC time in milliseconds since the epoch to render with. */
@ParcelField(4)
long mCalendarTimeMillis;
@@ -106,6 +106,7 @@
return mCompressionQuality;
}
+ /** The UTC time in milliseconds since the epoch. */
public long getCalendarTimeMillis() {
return mCalendarTimeMillis;
}
diff --git a/wear/wear-watchface-data/src/main/java/androidx/wear/watchface/control/data/WatchfaceScreenshotParams.java b/wear/wear-watchface-data/src/main/java/androidx/wear/watchface/control/data/WatchfaceScreenshotParams.java
index 779b84a..0a4e44a 100644
--- a/wear/wear-watchface-data/src/main/java/androidx/wear/watchface/control/data/WatchfaceScreenshotParams.java
+++ b/wear/wear-watchface-data/src/main/java/androidx/wear/watchface/control/data/WatchfaceScreenshotParams.java
@@ -51,7 +51,7 @@
@ParcelField(2)
int mCompressionQuality;
- /** The calendar time (millis since the epoch) to render with. */
+ /** The UTC time in milliseconds since the epoch to render with. */
@ParcelField(3)
long mCalendarTimeMillis;
@@ -96,6 +96,7 @@
return mCompressionQuality;
}
+ /** The UTC time in milliseconds since the epoch. */
public long getCalendarTimeMillis() {
return mCalendarTimeMillis;
}
diff --git a/wear/wear-watchface/src/main/java/androidx/wear/watchface/WatchFaceService.kt b/wear/wear-watchface/src/main/java/androidx/wear/watchface/WatchFaceService.kt
index ef6b935..cd6f946 100644
--- a/wear/wear-watchface/src/main/java/androidx/wear/watchface/WatchFaceService.kt
+++ b/wear/wear-watchface/src/main/java/androidx/wear/watchface/WatchFaceService.kt
@@ -27,6 +27,7 @@
import android.graphics.Canvas
import android.graphics.Rect
import android.icu.util.Calendar
+import android.icu.util.TimeZone
import android.os.Bundle
import android.os.Handler
import android.os.Looper
@@ -451,7 +452,7 @@
}
val bitmap = watchFace.renderer.takeScreenshot(
- Calendar.getInstance().apply {
+ Calendar.getInstance(TimeZone.getTimeZone("UTC")).apply {
timeInMillis = params.calendarTimeMillis
},
RenderParameters(params.renderParametersWireFormat)
@@ -475,7 +476,7 @@
@UiThread
fun takeComplicationScreenshot(params: ComplicationScreenshotParams): Bundle? {
- val calendar = Calendar.getInstance().apply {
+ val calendar = Calendar.getInstance(TimeZone.getTimeZone("UTC")).apply {
timeInMillis = params.calendarTimeMillis
}
return watchFace.complicationsManager[params.complicationId]?.let {