From a6c82b19c87cb913336749d30fb1d3065ae3ba6f Mon Sep 17 00:00:00 2001 From: contrudar Date: Mon, 5 Dec 2016 12:26:13 +0300 Subject: [PATCH 1/2] add an year to a header --- .../touchin/templates/calendar/CalendarAdapter.java | 12 ++++++++---- .../templates/calendar/CalendarHeaderItem.java | 8 +++++++- .../ru/touchin/templates/calendar/CalendarUtils.java | 11 ++++++----- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/src/main/java/ru/touchin/templates/calendar/CalendarAdapter.java b/src/main/java/ru/touchin/templates/calendar/CalendarAdapter.java index 295d6dd..4d42504 100644 --- a/src/main/java/ru/touchin/templates/calendar/CalendarAdapter.java +++ b/src/main/java/ru/touchin/templates/calendar/CalendarAdapter.java @@ -177,7 +177,10 @@ public abstract class CalendarAdapter= startSelectionPosition && position <= endSelectionPosition) { diff --git a/src/main/java/ru/touchin/templates/calendar/CalendarHeaderItem.java b/src/main/java/ru/touchin/templates/calendar/CalendarHeaderItem.java index c7ac7f8..0040ec8 100644 --- a/src/main/java/ru/touchin/templates/calendar/CalendarHeaderItem.java +++ b/src/main/java/ru/touchin/templates/calendar/CalendarHeaderItem.java @@ -25,16 +25,22 @@ package ru.touchin.templates.calendar; */ public class CalendarHeaderItem implements CalendarItem { + private final int year; private final int month; private final int startRange; private final int endRange; - public CalendarHeaderItem(final int month, final int startRange, final int endRange) { + public CalendarHeaderItem(final int year, final int month, final int startRange, final int endRange) { + this.year = year; this.month = month; this.startRange = startRange; this.endRange = endRange; } + public int getYear() { + return year; + } + /** * Returns number of month (where 0 is January and 11 is December). * diff --git a/src/main/java/ru/touchin/templates/calendar/CalendarUtils.java b/src/main/java/ru/touchin/templates/calendar/CalendarUtils.java index 651edf8..6b63458 100644 --- a/src/main/java/ru/touchin/templates/calendar/CalendarUtils.java +++ b/src/main/java/ru/touchin/templates/calendar/CalendarUtils.java @@ -59,7 +59,7 @@ public final class CalendarUtils { * @param calendarItems List of {@link CalendarItem} where need to find specific element; * @param position Position of adapter; * @return Position of Header that respond to requested position. - * Returns null if Header or related CalendarItem was not found for specified position. + * Returns null if Header or related CalendarItem was not found for specified position. */ @Nullable public static Integer findPositionOfSelectedMonth(@NonNull final List calendarItems, final long position) { @@ -76,7 +76,7 @@ public final class CalendarUtils { * @param calendarItems List of {@link CalendarItem} where need to find specific element; * @param date Requested date in milliseconds. * @return Position of Calendar cell that that has specific date. - * Returns null if CalendarItem was not found for specified position. + * Returns null if CalendarItem was not found for specified position. */ @Nullable public static Integer findPositionByDate(@NonNull final List calendarItems, final long date) { @@ -162,7 +162,7 @@ public final class CalendarUtils { shift += (DAYS_IN_WEEK - firstDayInWeek); } - calendarItems.add(new CalendarHeaderItem(tempTime.getMonthOfYear() - 1, shift + daysEnded, shift + daysEnded)); + calendarItems.add(new CalendarHeaderItem(tempTime.getYear(), tempTime.getMonthOfYear() - 1, shift + daysEnded, shift + daysEnded)); shift += 1; if (firstDayInWeek != 0) { @@ -225,7 +225,8 @@ public final class CalendarUtils { final int firstDate = temp.getDayOfMonth() - 1; //?? - 1 ? // add first month header - calendarItems.add(new CalendarHeaderItem(temp.get(DateTimeFieldType.monthOfYear()) - 1, shift, shift)); // is Month starts from 1 or 0 ? + calendarItems.add(new CalendarHeaderItem(temp.getYear(), + temp.get(DateTimeFieldType.monthOfYear()) - 1, shift, shift)); // is Month starts from 1 or 0 ? temp = temp.withDayOfMonth(1); shift += 1; @@ -261,7 +262,7 @@ public final class CalendarUtils { final int firstDayInNextMonth = nextMonthFirstDay.getDayOfWeek() - 1; calendarItems.add(new CalendarEmptyItem(shift + 1, shift + (7 - firstDayInNextMonth))); shift += 7 - firstDayInNextMonth + 1; - calendarItems.add(new CalendarHeaderItem(nextMonthFirstDay.getMonthOfYear() - 1, shift, shift)); + calendarItems.add(new CalendarHeaderItem(nextMonthFirstDay.getYear(), nextMonthFirstDay.getMonthOfYear() - 1, shift, shift)); shift += 1; calendarItems.add(new CalendarEmptyItem(shift, shift + firstDayInNextMonth - 1)); } From 49b9a8f91b9d30518a0e040aafbb11e4a56cdb63 Mon Sep 17 00:00:00 2001 From: contrudar Date: Mon, 5 Dec 2016 12:33:59 +0300 Subject: [PATCH 2/2] add javadoc --- .../java/ru/touchin/templates/calendar/CalendarAdapter.java | 1 + .../ru/touchin/templates/calendar/CalendarHeaderItem.java | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/main/java/ru/touchin/templates/calendar/CalendarAdapter.java b/src/main/java/ru/touchin/templates/calendar/CalendarAdapter.java index 4d42504..a14d971 100644 --- a/src/main/java/ru/touchin/templates/calendar/CalendarAdapter.java +++ b/src/main/java/ru/touchin/templates/calendar/CalendarAdapter.java @@ -174,6 +174,7 @@ public abstract class CalendarAdapter