From 6b7127a604312114d0b75bb689b0ce4512755b3f Mon Sep 17 00:00:00 2001 From: opst-miyatay Date: Wed, 29 Mar 2017 11:55:30 +0900 Subject: [PATCH] [add] added properties for fixing the circle of today --- .../lightcalendarview/javasample/MainActivity.java | 3 +++ .../android/lightcalendarview/CalendarSettings.kt | 3 +++ .../co/recruit_mp/android/lightcalendarview/DayLayout.kt | 8 ++++++-- .../android/lightcalendarview/LightCalendarView.kt | 7 +++++++ 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/javasample/src/main/java/jp/co/recruit_mp/android/lightcalendarview/javasample/MainActivity.java b/javasample/src/main/java/jp/co/recruit_mp/android/lightcalendarview/javasample/MainActivity.java index 5311ecd..8faa5cf 100644 --- a/javasample/src/main/java/jp/co/recruit_mp/android/lightcalendarview/javasample/MainActivity.java +++ b/javasample/src/main/java/jp/co/recruit_mp/android/lightcalendarview/javasample/MainActivity.java @@ -43,6 +43,9 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { calendarView.setMonthFrom(calFrom.getTime()); calendarView.setMonthTo(calTo.getTime()); calendarView.setMonthCurrent(calNow.getTime()); + // 当日の強調表示固定 + calendarView.setFixToday(true); + calendarView.setOnMonthSelected(new Function2() { @Override public Unit invoke(Date date, final MonthView monthView) { diff --git a/library/src/main/kotlin/jp/co/recruit_mp/android/lightcalendarview/CalendarSettings.kt b/library/src/main/kotlin/jp/co/recruit_mp/android/lightcalendarview/CalendarSettings.kt index a5ee870..ac92e00 100644 --- a/library/src/main/kotlin/jp/co/recruit_mp/android/lightcalendarview/CalendarSettings.kt +++ b/library/src/main/kotlin/jp/co/recruit_mp/android/lightcalendarview/CalendarSettings.kt @@ -36,6 +36,9 @@ class CalendarSettings(private val context: Context) : ObservableSettings() { var timeZone: TimeZone = TimeZone.getDefault() var locale: Locale = Locale.getDefault() + // 当日を常に強調表示 + var fixToday: Boolean = false + // settings for DayLayout and WeekDayLayout: first day of the week var firstDayOfWeek: WeekDay = WeekDay.SUNDAY val dayOfWeekOffset: Int diff --git a/library/src/main/kotlin/jp/co/recruit_mp/android/lightcalendarview/DayLayout.kt b/library/src/main/kotlin/jp/co/recruit_mp/android/lightcalendarview/DayLayout.kt index ea1331f..bf868b9 100644 --- a/library/src/main/kotlin/jp/co/recruit_mp/android/lightcalendarview/DayLayout.kt +++ b/library/src/main/kotlin/jp/co/recruit_mp/android/lightcalendarview/DayLayout.kt @@ -18,6 +18,7 @@ package jp.co.recruit_mp.android.lightcalendarview import android.content.Context import android.support.v4.view.ViewCompat +import android.text.format.DateUtils import java.util.* /** @@ -135,8 +136,11 @@ class DayLayout(context: Context, settings: CalendarSettings, var month: Date) : private fun setSelectedDay(view: DayView?) { selectedDayView?.apply { - isSelected = false - updateState() + if (!settings.fixToday || !DateUtils.isToday(selectedDayView?.date!!.time)) { + // 今日の場合は常に丸を表示させる + isSelected = false + updateState() + } } selectedDayView = view?.apply { isSelected = true diff --git a/library/src/main/kotlin/jp/co/recruit_mp/android/lightcalendarview/LightCalendarView.kt b/library/src/main/kotlin/jp/co/recruit_mp/android/lightcalendarview/LightCalendarView.kt index 98a138c..5c013f8 100644 --- a/library/src/main/kotlin/jp/co/recruit_mp/android/lightcalendarview/LightCalendarView.kt +++ b/library/src/main/kotlin/jp/co/recruit_mp/android/lightcalendarview/LightCalendarView.kt @@ -239,6 +239,13 @@ class LightCalendarView(context: Context, attrs: AttributeSet? = null, defStyleA }.notifySettingsChanged() } + var fixToday: Boolean + get() = settings.fixToday + set(value) { + settings.apply { + fixToday = value + }.notifySettingsChanged() + } /** * Sets the locale to use in LightCalendarView. * Set null to use Locale.getDefault()