From 57cc7d01aea7fdc41aed6aae5bab4532ffa18dc8 Mon Sep 17 00:00:00 2001 From: Jay Aliomer Date: Wed, 27 May 2020 22:21:32 -0400 Subject: [PATCH] Incorrect localization of dark theme custom time Fixes: 154361883 Test: manually select dark theme custom time and make sure it matches locale Change-Id: I2a918b4b2f5aad6b04d3b0318bbca25e82dfae78 --- .../android/settings/display/darkmode/TimeFormatter.java | 9 +++++++-- .../DarkModeActivationPreferenceControllerTest.java | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/display/darkmode/TimeFormatter.java b/src/com/android/settings/display/darkmode/TimeFormatter.java index 5b1880642f4..1032fe1be01 100644 --- a/src/com/android/settings/display/darkmode/TimeFormatter.java +++ b/src/com/android/settings/display/darkmode/TimeFormatter.java @@ -19,6 +19,7 @@ import android.content.Context; import java.time.LocalTime; import java.time.format.DateTimeFormatter; +import java.util.Locale; /** * Formats LocalTime to the locale time string format @@ -28,11 +29,15 @@ public class TimeFormatter { private final DateTimeFormatter mFormatter; public TimeFormatter(Context context) { mContext = context; - mFormatter = DateTimeFormatter.ofPattern("hh:mm a"); + Locale locale = mContext.getResources().getConfiguration().locale; + if (locale == null) { + locale = Locale.getDefault(); + } + mFormatter = DateTimeFormatter.ofPattern("hh:mm a", locale); } public String of(LocalTime time) { - return is24HourFormat() ? time.toString() : mFormatter.format(time); + return mFormatter.format(time); } public boolean is24HourFormat() { diff --git a/tests/robotests/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceControllerTest.java index 5e6d46396e4..33d0927c5d3 100644 --- a/tests/robotests/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceControllerTest.java @@ -82,6 +82,7 @@ public class DarkModeActivationPreferenceControllerTest { MockitoAnnotations.initMocks(this); mService = mock(UiModeManager.class); when(mContext.getResources()).thenReturn(res); + when(res.getConfiguration()).thenReturn(mConfigNightNo); when(mContext.getSystemService(UiModeManager.class)).thenReturn(mService); when(mContext.getSystemService(PowerManager.class)).thenReturn(mPM); when(mScreen.findPreference(anyString())).thenReturn(mPreference);