[go: nahoru, domu]

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 {