diff --git a/library/src/main/java/com/github/sundeepk/compactcalendarview/CompactCalendarController.java b/library/src/main/java/com/github/sundeepk/compactcalendarview/CompactCalendarController.java index 9a22199c..074d54b2 100755 --- a/library/src/main/java/com/github/sundeepk/compactcalendarview/CompactCalendarController.java +++ b/library/src/main/java/com/github/sundeepk/compactcalendarview/CompactCalendarController.java @@ -78,6 +78,7 @@ class CompactCalendarController { private boolean shouldDrawIndicatorsBelowSelectedDays = false; private boolean displayOtherMonthDays = false; private boolean shouldSelectFirstDayOfMonthOnScroll = true; + private boolean disableBackgroundForSelectedDay = false; private CompactCalendarViewListener listener; private VelocityTracker velocityTracker = null; @@ -236,6 +237,10 @@ private void setMonthOffset(Calendar calendarWithFirstDayOfMonth, Date currentDa calendarWithFirstDayOfMonth.set(Calendar.MILLISECOND, 0); } + void disableBackgroundForSelectedDay(boolean disableBackgroundForSelectedDay) { + this.disableBackgroundForSelectedDay = disableBackgroundForSelectedDay; + } + void setShouldSelectFirstDayOfMonthOnScroll(boolean shouldSelectFirstDayOfMonthOnScroll){ this.shouldSelectFirstDayOfMonthOnScroll = shouldSelectFirstDayOfMonthOnScroll; } @@ -766,7 +771,7 @@ void drawEvents(Canvas canvas, Calendar currentMonthToDrawCalender, int offset) boolean isSameDayAsCurrentDay = shouldDrawCurrentDayCircle && (todayDayOfMonth == dayOfMonth) && (eventYear == currentYear); boolean isCurrentSelectedDay = shouldDrawSelectedDayCircle && (selectedDayOfMonth == dayOfMonth); - if (shouldDrawIndicatorsBelowSelectedDays || (!shouldDrawIndicatorsBelowSelectedDays && !isSameDayAsCurrentDay && !isCurrentSelectedDay) || animationStatus == EXPOSE_CALENDAR_ANIMATION) { + if (shouldDrawIndicatorsBelowSelectedDays || (!shouldDrawIndicatorsBelowSelectedDays && !isSameDayAsCurrentDay && (!isCurrentSelectedDay || disableBackgroundForSelectedDay)) || animationStatus == EXPOSE_CALENDAR_ANIMATION) { if (eventIndicatorStyle == FILL_LARGE_INDICATOR || eventIndicatorStyle == NO_FILL_LARGE_INDICATOR) { Event event = eventsList.get(0); drawEventIndicatorCircle(canvas, xPosition, yPosition, event.getColor()); @@ -774,7 +779,7 @@ void drawEvents(Canvas canvas, Calendar currentMonthToDrawCalender, int offset) yPosition += indicatorOffset; // offset event indicators to draw below selected day indicators // this makes sure that they do no overlap - if (shouldDrawIndicatorsBelowSelectedDays && (isSameDayAsCurrentDay || isCurrentSelectedDay)) { + if (shouldDrawIndicatorsBelowSelectedDays && (isSameDayAsCurrentDay || (isCurrentSelectedDay && !disableBackgroundForSelectedDay))) { yPosition += indicatorOffset; } @@ -879,7 +884,7 @@ void drawMonth(Canvas canvas, Calendar monthToDrawCalender, int offset) { } else { int day = ((dayRow - 1) * 7 + dayColumn + 1) - firstDayOfMonth; int defaultCalenderTextColorToUse = calenderTextColor; - if (currentCalender.get(Calendar.DAY_OF_MONTH) == day && isSameMonthAsCurrentCalendar && !isAnimatingWithExpose) { + if (currentCalender.get(Calendar.DAY_OF_MONTH) == day && isSameMonthAsCurrentCalendar && !isAnimatingWithExpose && !disableBackgroundForSelectedDay) { drawDayCircleIndicator(currentSelectedDayIndicatorStyle, canvas, xPosition, yPosition, currentSelectedDayBackgroundColor); defaultCalenderTextColorToUse = currentSelectedDayTextColor; } else if (isSameYearAsToday && isSameMonthAsToday && todayDayOfMonth == day && !isAnimatingWithExpose) { diff --git a/library/src/main/java/com/github/sundeepk/compactcalendarview/CompactCalendarView.java b/library/src/main/java/com/github/sundeepk/compactcalendarview/CompactCalendarView.java index b1ff2819..0ecec9fe 100755 --- a/library/src/main/java/com/github/sundeepk/compactcalendarview/CompactCalendarView.java +++ b/library/src/main/java/com/github/sundeepk/compactcalendarview/CompactCalendarView.java @@ -161,6 +161,10 @@ public Date getFirstDayOfCurrentMonth(){ return compactCalendarController.getFirstDayOfCurrentMonth(); } + public void disableBackgroundForSelectedDay(boolean disableBackgroundForSelectedDay){ + compactCalendarController.disableBackgroundForSelectedDay(disableBackgroundForSelectedDay); + } + public void shouldDrawIndicatorsBelowSelectedDays(boolean shouldDrawIndicatorsBelowSelectedDays){ compactCalendarController.shouldDrawIndicatorsBelowSelectedDays(shouldDrawIndicatorsBelowSelectedDays); }