From fd2dd208d9b0957657589b26c14c48b8e2b7f387 Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Tue, 19 Aug 2014 18:11:54 -0700 Subject: Use correct single-letter date format in SimpleMonthView Also fixes layout on sw600dp-land (by removing the sw600dp layout!). BUG: 17068298 Change-Id: I2545d0e1904a0028156b96b6ad17674c6107ce5d --- core/java/android/widget/SimpleMonthView.java | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) (limited to 'core/java/android/widget/SimpleMonthView.java') diff --git a/core/java/android/widget/SimpleMonthView.java b/core/java/android/widget/SimpleMonthView.java index a0d9475..27763eb 100644 --- a/core/java/android/widget/SimpleMonthView.java +++ b/core/java/android/widget/SimpleMonthView.java @@ -18,6 +18,7 @@ package android.widget; import android.content.Context; import android.content.res.ColorStateList; +import android.content.res.Configuration; import android.content.res.Resources; import android.graphics.Canvas; import android.graphics.Paint; @@ -38,6 +39,7 @@ import android.view.accessibility.AccessibilityNodeInfo; import com.android.internal.R; import com.android.internal.widget.ExploreByTouchHelper; +import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Formatter; import java.util.List; @@ -72,6 +74,9 @@ class SimpleMonthView extends View { // used for scaling to the device density private static float mScale = 0; + /** Single-letter (when available) formatter for the day of week label. */ + private SimpleDateFormat mDayFormatter = new SimpleDateFormat("EEEEE", Locale.getDefault()); + // affects the padding on the sides of this view private int mPadding = 0; @@ -181,6 +186,13 @@ class SimpleMonthView extends View { initView(); } + @Override + protected void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + + mDayFormatter = new SimpleDateFormat("EEEEE", newConfig.locale); + } + void setTextColor(ColorStateList colors) { final Resources res = getContext().getResources(); @@ -426,16 +438,16 @@ class SimpleMonthView extends View { } private void drawWeekDayLabels(Canvas canvas) { - int y = mMonthHeaderSize - (mMonthDayLabelTextSize / 2); - int dayWidthHalf = (mWidth - mPadding * 2) / (mNumDays * 2); + final int y = mMonthHeaderSize - (mMonthDayLabelTextSize / 2); + final int dayWidthHalf = (mWidth - mPadding * 2) / (mNumDays * 2); for (int i = 0; i < mNumDays; i++) { - int calendarDay = (i + mWeekStart) % mNumDays; - int x = (2 * i + 1) * dayWidthHalf + mPadding; + final int calendarDay = (i + mWeekStart) % mNumDays; mDayLabelCalendar.set(Calendar.DAY_OF_WEEK, calendarDay); - canvas.drawText("" + mDayLabelCalendar.getDisplayName(Calendar.DAY_OF_WEEK, - Calendar.SHORT, Locale.getDefault()).toUpperCase(Locale.getDefault()).charAt(0), - x, y, mMonthDayLabelPaint); + + final String dayLabel = mDayFormatter.format(mDayLabelCalendar.getTime()); + final int x = (2 * i + 1) * dayWidthHalf + mPadding; + canvas.drawText(dayLabel, x, y, mMonthDayLabelPaint); } } -- cgit v1.1