am 627dd9b5: Merge "Fix bug #10515013 CalendarView is always forcing first day of the week to Sunday and not taking into account CLDR data" into klp-dev

* commit '627dd9b584a267b206bace8dc518287fe58b9563':
  Fix bug #10515013 CalendarView is always forcing first day of the week to Sunday and not taking into account CLDR data
This commit is contained in:
Fabrice Di Meglio
2013-08-28 12:57:03 -07:00
committed by Android Git Automerger
2 changed files with 12 additions and 10 deletions

View File

@@ -1028,26 +1028,29 @@ public class CalendarView extends FrameLayout {
* Sets up the strings to be used by the header. * Sets up the strings to be used by the header.
*/ */
private void setUpHeader() { private void setUpHeader() {
final String[] tinyWeekdayNames = LocaleData.get(Locale.getDefault()).tinyWeekdayNames;
mDayLabels = new String[mDaysPerWeek]; mDayLabels = new String[mDaysPerWeek];
for (int i = mFirstDayOfWeek, count = mFirstDayOfWeek + mDaysPerWeek; i < count; i++) { for (int i = 0; i < mDaysPerWeek; i++) {
int calendarDay = (i > Calendar.SATURDAY) ? i - Calendar.SATURDAY : i; final int j = i + mFirstDayOfWeek;
mDayLabels[i - mFirstDayOfWeek] = DateUtils.getDayOfWeekString(calendarDay, final int calendarDay = (j > Calendar.SATURDAY) ? j - Calendar.SATURDAY : j;
DateUtils.LENGTH_SHORTEST); mDayLabels[i] = tinyWeekdayNames[calendarDay];
} }
// Deal with week number
TextView label = (TextView) mDayNamesHeader.getChildAt(0); TextView label = (TextView) mDayNamesHeader.getChildAt(0);
if (mShowWeekNumber) { if (mShowWeekNumber) {
label.setVisibility(View.VISIBLE); label.setVisibility(View.VISIBLE);
} else { } else {
label.setVisibility(View.GONE); label.setVisibility(View.GONE);
} }
for (int i = 1, count = mDayNamesHeader.getChildCount(); i < count; i++) { // Deal with day labels
label = (TextView) mDayNamesHeader.getChildAt(i); final int count = mDayNamesHeader.getChildCount();
for (int i = 0; i < count - 1; i++) {
label = (TextView) mDayNamesHeader.getChildAt(i + 1);
if (mWeekDayTextAppearanceResId > -1) { if (mWeekDayTextAppearanceResId > -1) {
label.setTextAppearance(mContext, mWeekDayTextAppearanceResId); label.setTextAppearance(mContext, mWeekDayTextAppearanceResId);
} }
if (i < mDaysPerWeek + 1) { if (i < mDaysPerWeek) {
label.setText(mDayLabels[i - 1]); label.setText(mDayLabels[i]);
label.setVisibility(View.VISIBLE); label.setVisibility(View.VISIBLE);
} else { } else {
label.setVisibility(View.GONE); label.setVisibility(View.GONE);

View File

@@ -529,7 +529,6 @@ please see styles_device_defaults.xml.
<style name="Widget.CalendarView"> <style name="Widget.CalendarView">
<item name="android:showWeekNumber">true</item> <item name="android:showWeekNumber">true</item>
<item name="android:firstDayOfWeek">1</item>
<item name="android:minDate">01/01/1900</item> <item name="android:minDate">01/01/1900</item>
<item name="android:maxDate">12/31/2100</item> <item name="android:maxDate">12/31/2100</item>
<item name="android:shownWeekCount">6</item> <item name="android:shownWeekCount">6</item>