From 3c256313b8cbfdf3286e5f71df9855213c91e7a4 Mon Sep 17 00:00:00 2001 From: Marco Hernaiz Date: Sat, 19 May 2018 09:11:47 +0200 Subject: [PATCH] Fix mark circle style for selected days --- build.gradle | 2 +- .../robotocalendar/RobotoCalendarView.java | 34 +++++++++++++------ 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/build.gradle b/build.gradle index 41fb702..8594aa7 100644 --- a/build.gradle +++ b/build.gradle @@ -21,7 +21,7 @@ allprojects { androidTargetSdkVersion = 27 androidCompileSdkVersion = 27 androidVersionCode = 1 - androidVersionName = "3.4.0" + androidVersionName = "3.4.1" } repositories { diff --git a/library/src/main/java/com/marcohc/robotocalendar/RobotoCalendarView.java b/library/src/main/java/com/marcohc/robotocalendar/RobotoCalendarView.java index 393de6c..b5053a2 100644 --- a/library/src/main/java/com/marcohc/robotocalendar/RobotoCalendarView.java +++ b/library/src/main/java/com/marcohc/robotocalendar/RobotoCalendarView.java @@ -183,15 +183,8 @@ private static int getWeekIndex(int weekIndex, Calendar currentCalendar) { } } - public interface RobotoCalendarListener { - - void onDayClick(Date date); - - void onDayLongClick(Date date); - - void onRightButtonClick(); - - void onLeftButtonClick(); + public static boolean areInTheSameDay(@NonNull Calendar calendarOne, @NonNull Calendar calendarTwo) { + return calendarOne.get(Calendar.YEAR) == calendarTwo.get(Calendar.YEAR) && calendarOne.get(Calendar.DAY_OF_YEAR) == calendarTwo.get(Calendar.DAY_OF_YEAR); } /** @@ -268,7 +261,11 @@ public void markCircleImage1(@NonNull Date date) { calendar.setTime(date); ImageView circleImage1 = getCircleImage1(calendar); circleImage1.setVisibility(View.VISIBLE); - DrawableCompat.setTint(circleImage1.getDrawable(), ContextCompat.getColor(context, R.color.roboto_calendar_circle_1)); + if (lastSelectedDayCalendar != null && areInTheSameDay(calendar, lastSelectedDayCalendar)) { + DrawableCompat.setTint(circleImage1.getDrawable(), ContextCompat.getColor(context, R.color.roboto_calendar_selected_day_font)); + } else { + DrawableCompat.setTint(circleImage1.getDrawable(), ContextCompat.getColor(context, R.color.roboto_calendar_circle_1)); + } } public void markCircleImage2(@NonNull Date date) { @@ -276,7 +273,11 @@ public void markCircleImage2(@NonNull Date date) { calendar.setTime(date); ImageView circleImage2 = getCircleImage2(calendar); circleImage2.setVisibility(View.VISIBLE); - DrawableCompat.setTint(circleImage2.getDrawable(), ContextCompat.getColor(context, R.color.roboto_calendar_circle_2)); + if (lastSelectedDayCalendar != null && areInTheSameDay(calendar, lastSelectedDayCalendar)) { + DrawableCompat.setTint(circleImage2.getDrawable(), ContextCompat.getColor(context, R.color.roboto_calendar_selected_day_font)); + } else { + DrawableCompat.setTint(circleImage2.getDrawable(), ContextCompat.getColor(context, R.color.roboto_calendar_circle_2)); + } } public void showDateTitle(boolean show) { @@ -504,4 +505,15 @@ private View getView(String key, Calendar currentCalendar) { return rootView.findViewWithTag(key + index); } + public interface RobotoCalendarListener { + + void onDayClick(Date date); + + void onDayLongClick(Date date); + + void onRightButtonClick(); + + void onLeftButtonClick(); + } + }