diff options
Diffstat (limited to 'src/com/android/datetimepicker/date/SimpleMonthView.java')
-rw-r--r-- | src/com/android/datetimepicker/date/SimpleMonthView.java | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/src/com/android/datetimepicker/date/SimpleMonthView.java b/src/com/android/datetimepicker/date/SimpleMonthView.java index bcb592f..832bdfb 100644 --- a/src/com/android/datetimepicker/date/SimpleMonthView.java +++ b/src/com/android/datetimepicker/date/SimpleMonthView.java @@ -27,6 +27,7 @@ import android.graphics.Typeface; import android.os.Bundle; import android.support.v4.view.ViewCompat; import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat; +import android.text.format.DateFormat; import android.text.format.DateUtils; import android.text.format.Time; import android.util.SparseArray; @@ -52,6 +53,7 @@ import java.util.Locale; * within the specified month. */ public class SimpleMonthView extends View { + private static final String TAG = "SimpleMonthView"; /** * These params can be passed into the view to control how it appears. @@ -404,17 +406,19 @@ public class SimpleMonthView extends View { mNodeProvider.invalidateParent(); } - private void drawMonthTitle(Canvas canvas) { - int x = (mWidth + 2 * mPadding) / 2; - int y = (MONTH_HEADER_SIZE - MONTH_DAY_LABEL_TEXT_SIZE) / 2 + (MONTH_LABEL_TEXT_SIZE / 3); + private String getMonthAndYearString() { int flags = DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR | DateUtils.FORMAT_NO_MONTH_DAY; - mStringBuilder.setLength(0); long millis = mCalendar.getTimeInMillis(); - String title = DateUtils.formatDateRange(getContext(), mFormatter, millis, millis, flags, + return DateUtils.formatDateRange(getContext(), mFormatter, millis, millis, flags, Time.getCurrentTimezone()).toString(); - canvas.drawText(title, x, y, mMonthTitlePaint); + } + + private void drawMonthTitle(Canvas canvas) { + int x = (mWidth + 2 * mPadding) / 2; + int y = (MONTH_HEADER_SIZE - MONTH_DAY_LABEL_TEXT_SIZE) / 2 + (MONTH_LABEL_TEXT_SIZE / 3); + canvas.drawText(getMonthAndYearString(), x, y, mMonthTitlePaint); } private void drawMonthDayLabels(Canvas canvas) { @@ -455,7 +459,6 @@ public class SimpleMonthView extends View { mMonthNumPaint.setColor(mDayTextColor); } canvas.drawText(String.format("%d", dayNumber), x, y, mMonthNumPaint); - j++; if (j == mNumDays) { j = 0; @@ -550,6 +553,8 @@ public class SimpleMonthView extends View { private final SparseArray<CalendarDay> mCachedItems = new SparseArray<CalendarDay>(); private final Rect mTempRect = new Rect(); + Calendar recycle; + public MonthViewNodeProvider(Context context, View parent) { super(context, parent); } @@ -659,19 +664,17 @@ public class SimpleMonthView extends View { * @return A description of the time object */ private CharSequence getItemDescription(CalendarDay item) { - final StringBuffer sbuf = new StringBuffer(); - sbuf.append(String.format("%d", item.day)); - sbuf.append(" "); - sbuf.append(mCalendar.getDisplayName(Calendar.MONTH, Calendar.LONG, - Locale.getDefault())); - sbuf.append(" "); - sbuf.append(String.format("%d", mYear)); + if (recycle == null) { + recycle = Calendar.getInstance(); + } + recycle.set(item.year, item.month, item.day); + CharSequence date = DateFormat.format("dd MMMM yyyy", recycle.getTimeInMillis()); if (item.day == mSelectedDay) { - return getContext().getString(R.string.item_is_selected, sbuf); + return getContext().getString(R.string.item_is_selected, date); } - return sbuf; + return date; } } |