Merge "Ensuring thread-safe usage of DateFormat."

This commit is contained in:
Elliott Hughes
2011-02-22 11:16:04 -08:00
committed by Android Code Review

View File

@@ -642,14 +642,18 @@ public class DateUtils
private static void initFormatStrings() {
synchronized (sLock) {
Resources r = Resources.getSystem();
Configuration cfg = r.getConfiguration();
if (sLastConfig == null || !sLastConfig.equals(cfg)) {
sLastConfig = cfg;
sStatusTimeFormat = java.text.DateFormat.getTimeInstance(java.text.DateFormat.SHORT);
sElapsedFormatMMSS = r.getString(com.android.internal.R.string.elapsed_time_short_format_mm_ss);
sElapsedFormatHMMSS = r.getString(com.android.internal.R.string.elapsed_time_short_format_h_mm_ss);
}
initFormatStringsLocked();
}
}
private static void initFormatStringsLocked() {
Resources r = Resources.getSystem();
Configuration cfg = r.getConfiguration();
if (sLastConfig == null || !sLastConfig.equals(cfg)) {
sLastConfig = cfg;
sStatusTimeFormat = java.text.DateFormat.getTimeInstance(java.text.DateFormat.SHORT);
sElapsedFormatMMSS = r.getString(com.android.internal.R.string.elapsed_time_short_format_mm_ss);
sElapsedFormatHMMSS = r.getString(com.android.internal.R.string.elapsed_time_short_format_h_mm_ss);
}
}
@@ -659,8 +663,10 @@ public class DateUtils
* @hide
*/
public static final CharSequence timeString(long millis) {
initFormatStrings();
return sStatusTimeFormat.format(millis);
synchronized (sLock) {
initFormatStringsLocked();
return sStatusTimeFormat.format(millis);
}
}
/**