diff options
Diffstat (limited to 'shared')
-rw-r--r-- | shared/src/main/java/com/android/tools/analytics/AnalyticsSettings.kt | 5 | ||||
-rw-r--r-- | shared/src/test/java/com/android/tools/analytics/AnalyticsSettingsTest.kt | 23 |
2 files changed, 27 insertions, 1 deletions
diff --git a/shared/src/main/java/com/android/tools/analytics/AnalyticsSettings.kt b/shared/src/main/java/com/android/tools/analytics/AnalyticsSettings.kt index b4c73c2..19b784d 100644 --- a/shared/src/main/java/com/android/tools/analytics/AnalyticsSettings.kt +++ b/shared/src/main/java/com/android/tools/analytics/AnalyticsSettings.kt @@ -448,7 +448,10 @@ class AnalyticsSettingsData { channel.truncate(0) val outputStream = Channels.newOutputStream(channel) val writer = OutputStreamWriter(outputStream) - gson.toJson(this, writer) + + // Write out using pre-Java9 date format to let older releases read the file correctly. + val datePatternJava8 = "MMM d, y h:mm:ss a" + GsonBuilder().setDateFormat(datePatternJava8).create().toJson(this, writer) writer.flush() outputStream.flush() } diff --git a/shared/src/test/java/com/android/tools/analytics/AnalyticsSettingsTest.kt b/shared/src/test/java/com/android/tools/analytics/AnalyticsSettingsTest.kt index 097f5cf..45146e5 100644 --- a/shared/src/test/java/com/android/tools/analytics/AnalyticsSettingsTest.kt +++ b/shared/src/test/java/com/android/tools/analytics/AnalyticsSettingsTest.kt @@ -19,6 +19,7 @@ import com.android.tools.analytics.stubs.StubDateProvider import com.android.utils.DateProvider import com.android.utils.ILogger import com.google.common.base.Charsets +import com.google.gson.GsonBuilder import com.google.protobuf.ByteString import org.junit.Assert.assertArrayEquals import org.junit.Assert.assertEquals @@ -34,6 +35,7 @@ import java.io.File import java.io.IOException import java.math.BigInteger import java.nio.file.Files +import java.nio.file.Paths import java.util.Arrays import java.util.Date import java.util.UUID @@ -585,4 +587,25 @@ class AnalyticsSettingsTest { EnvironmentFakes.setSystemEnvironment() } } + + @Test + fun useJava8DateFormat() { + EnvironmentFakes.setCustomAndroidSdkHomeEnvironment(testConfigDir.root.toString()) + try { + AnalyticsSettings.setInstanceForTest(AnalyticsSettingsData().apply { + userId = "db3dd15b-053a-4066-ac93-04c50585edc2" + optedIn = true + lastSentimentAnswerDate = Date(115, 4, 17, 14, 23, 45) + }) + AnalyticsSettings.saveSettings() + val analysticsSettingsContents = + String(Files.readAllBytes(Paths.get(testConfigDir.root.toString(), "analytics.settings")), Charsets.UTF_8) + val lastSentimentAnswerDate = + GsonBuilder().create().fromJson(analysticsSettingsContents, Map::class.java)["lastSentimentAnswerDate"] + assertEquals("May 17, 2015 2:23:45 PM", lastSentimentAnswerDate) + } + finally { + EnvironmentFakes.setSystemEnvironment() + } + } } |