From 59da29e7b51b7f499c8bf406c90c893c660dc235 Mon Sep 17 00:00:00 2001 From: Stanllley Date: Mon, 5 Aug 2019 16:35:33 +0800 Subject: [PATCH 1/5] Update .gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index f03807b4..13860ecf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ *.iml .gradle /local.properties +/.idea /.idea/workspace.xml /.idea/libraries .DS_Store @@ -46,4 +47,4 @@ captures/ .idea/workspace.xml # Keystore files -*.jks \ No newline at end of file +*.jks From e8a4742a3b8012d2f92228f4dc577b74925a5759 Mon Sep 17 00:00:00 2001 From: Stanllley Date: Mon, 5 Aug 2019 16:36:17 +0800 Subject: [PATCH 2/5] Update .gitignore From d94e4c10ca86623efbe5101982803e8e86fe7d96 Mon Sep 17 00:00:00 2001 From: xuyang2519 Date: Mon, 5 Aug 2019 16:48:30 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E5=88=A0=E9=99=A4.idea=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=A4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/codeStyles/Project.xml | 28 -------------------------- .idea/encodings.xml | 4 ---- .idea/gradle.xml | 22 -------------------- .idea/misc.xml | 39 ------------------------------------ .idea/modules.xml | 10 --------- .idea/runConfigurations.xml | 12 ----------- .idea/vcs.xml | 6 ------ 7 files changed, 121 deletions(-) delete mode 100644 .idea/codeStyles/Project.xml delete mode 100644 .idea/encodings.xml delete mode 100644 .idea/gradle.xml delete mode 100644 .idea/misc.xml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/runConfigurations.xml delete mode 100644 .idea/vcs.xml diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml deleted file mode 100644 index 565c3479..00000000 --- a/.idea/codeStyles/Project.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml deleted file mode 100644 index 15a15b21..00000000 --- a/.idea/encodings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml deleted file mode 100644 index 8d72a95f..00000000 --- a/.idea/gradle.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index b5c78bcb..00000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index ca9de94e..00000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index 7f68460d..00000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1ddf..00000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file From a127a77d0656c706733f9ce19ec8de32181a27a4 Mon Sep 17 00:00:00 2001 From: xuyang2519 Date: Mon, 5 Aug 2019 18:47:33 +0800 Subject: [PATCH 4/5] kotlin extension & modify ignore file --- .gitignore | 8 ------ calendarview/build.gradle | 2 +- .../com/haibin/calendarview/CalendarView.kt | 25 +++++++++++++++++++ 3 files changed, 26 insertions(+), 9 deletions(-) create mode 100644 kotlin/src/main/java/com/haibin/calendarview/CalendarView.kt diff --git a/.gitignore b/.gitignore index 13860ecf..f6db2dc2 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,6 @@ *.iml .gradle -/local.properties /.idea -/.idea/workspace.xml -/.idea/libraries .DS_Store /build /captures @@ -24,7 +21,6 @@ gen/ out/ # Gradle files -.gradle/ build/ # Local configuration file (sdk path, etc) @@ -42,9 +38,5 @@ proguard/ # Android Studio captures folder captures/ -# Intellij -*.iml -.idea/workspace.xml - # Keystore files *.jks diff --git a/calendarview/build.gradle b/calendarview/build.gradle index 607b96b1..c3751154 100644 --- a/calendarview/build.gradle +++ b/calendarview/build.gradle @@ -39,7 +39,7 @@ dependencies { exclude group: 'com.android.support', module: 'support-annotations' }) //noinspection GradleDependency - implementation 'androidx.appcompat:appcompat:1.0.0' + implementation 'androidx.appcompat:appcompat:1.0.2' //noinspection GradleDependency implementation 'androidx.recyclerview:recyclerview:1.0.0' testImplementation 'junit:junit:4.12' diff --git a/kotlin/src/main/java/com/haibin/calendarview/CalendarView.kt b/kotlin/src/main/java/com/haibin/calendarview/CalendarView.kt new file mode 100644 index 00000000..c738bfd3 --- /dev/null +++ b/kotlin/src/main/java/com/haibin/calendarview/CalendarView.kt @@ -0,0 +1,25 @@ +package com.haibin.calendarview + +import android.app.Activity +import android.view.View + +/** + *@Author xuyang + *@Email xuyang@prudencemed.com + *@Date 2019/8/5. + *@Description + */ +inline fun findCalendarView(activity: Activity,id : Int,action : CalendarView.() -> Unit) : CalendarView{ + val calendarView = activity.findViewById(id) + action(calendarView) + return calendarView +} + +inline fun findCalendarView(view: View, id : Int, action : CalendarView.() -> Unit) : CalendarView{ + val calendarView = view.findViewById(id) + action(calendarView) + return calendarView +} + + + From 1348a3cd385ed006588acedaeea9657ddce94b94 Mon Sep 17 00:00:00 2001 From: xuyang2519 Date: Wed, 14 Aug 2019 10:44:50 +0800 Subject: [PATCH 5/5] kotlin extension --- .../com/haibin/calendarview/CalendarView.kt | 106 +++++++++++++++++- .../java/com/haibin/calendarview/Scheme.kt | 2 +- 2 files changed, 105 insertions(+), 3 deletions(-) diff --git a/kotlin/src/main/java/com/haibin/calendarview/CalendarView.kt b/kotlin/src/main/java/com/haibin/calendarview/CalendarView.kt index c738bfd3..6cb8d013 100644 --- a/kotlin/src/main/java/com/haibin/calendarview/CalendarView.kt +++ b/kotlin/src/main/java/com/haibin/calendarview/CalendarView.kt @@ -9,17 +9,119 @@ import android.view.View *@Date 2019/8/5. *@Description */ -inline fun findCalendarView(activity: Activity,id : Int,action : CalendarView.() -> Unit) : CalendarView{ +inline fun findCalendarView(activity: Activity, id: Int, action: CalendarView.() -> Unit): CalendarView { val calendarView = activity.findViewById(id) action(calendarView) return calendarView } -inline fun findCalendarView(view: View, id : Int, action : CalendarView.() -> Unit) : CalendarView{ +inline fun findCalendarView(view: View, id: Int, action: CalendarView.() -> Unit): CalendarView { val calendarView = view.findViewById(id) action(calendarView) return calendarView } +inline fun CalendarView.doOnCalendarSelect(crossinline action: (calendar: Calendar?, isClick: Boolean) -> Unit) = + setOnCalendarSelectListener(onCalendarSelect = action) +inline fun CalendarView.doOnCalendarOutOfRange(crossinline action: (calendar: Calendar?) -> Unit) = + setOnCalendarSelectListener(onCalendarOutOfRange = action) +inline fun CalendarView.setOnCalendarSelectListener( + crossinline onCalendarOutOfRange: (outCalendar: Calendar?) -> Unit = {}, + crossinline onCalendarSelect: (calendar: Calendar?, isClick: Boolean) -> Unit = { _, _ -> } +): CalendarView.OnCalendarSelectListener { + val listener = object : CalendarView.OnCalendarSelectListener { + override fun onCalendarOutOfRange(calendar: Calendar?) = onCalendarOutOfRange(calendar) + override fun onCalendarSelect(calendar: Calendar?, isClick: Boolean) = onCalendarSelect(calendar, isClick) + } + setOnCalendarSelectListener(listener) + return listener +} + +inline fun CalendarView.doOnCalendarIntercept(crossinline action: (calendar: Calendar?) -> Boolean) = + setOnCalendarInterceptListener(onCalendarIntercept = action) + +inline fun CalendarView.doOnCalendarInterceptClick(crossinline action: (calendar: Calendar?, isClick: Boolean) -> Unit) = + setOnCalendarInterceptListener(onCalendarInterceptClick = action) + +inline fun CalendarView.setOnCalendarInterceptListener( + crossinline onCalendarIntercept: (calendar: Calendar?) -> Boolean = { false }, + crossinline onCalendarInterceptClick: (calendar: Calendar?, isClick: Boolean) -> Unit = { _, _ -> } +): CalendarView.OnCalendarInterceptListener { + val listener = object : CalendarView.OnCalendarInterceptListener { + override fun onCalendarIntercept(calendar: Calendar?): Boolean = onCalendarIntercept(calendar) + override fun onCalendarInterceptClick(calendar: Calendar?, isClick: Boolean) = onCalendarInterceptClick(calendar, isClick) + } + setOnCalendarInterceptListener(listener) + return listener +} + +inline fun CalendarView.doOnCalendarLongClickOutOfRange(crossinline action: (calendar: Calendar?) -> Unit) = + setOnCalendarLongClickListener(onCalendarLongClickOutOfRange = action) + +inline fun CalendarView.doOnCalendarLongClick(crossinline action: (calendar: Calendar?) -> Unit) = + setOnCalendarLongClickListener(onCalendarLongClick = action) + +inline fun CalendarView.setOnCalendarLongClickListener( + crossinline onCalendarLongClickOutOfRange: (calendar: Calendar?) -> Unit = {}, + crossinline onCalendarLongClick: (calendar: Calendar?) -> Unit = {}, + preventLongPressedSelected: Boolean = false +): CalendarView.OnCalendarLongClickListener { + val listener = object : CalendarView.OnCalendarLongClickListener { + override fun onCalendarLongClickOutOfRange(calendar: Calendar?) = onCalendarLongClickOutOfRange(calendar) + override fun onCalendarLongClick(calendar: Calendar?) = onCalendarLongClick(calendar) + } + setOnCalendarLongClickListener(listener, preventLongPressedSelected) + return listener +} + +inline fun CalendarView.doOnCalendarMultiSelectOutOfRange(crossinline action: (calendar: Calendar?) -> Unit) = + setOnCalendarMultiSelectListener(onCalendarMultiSelectOutOfRange = action) + +inline fun CalendarView.doOnMultiSelectOutOfSize(crossinline action: (calendar: Calendar?, maxSize: Int) -> Unit) = + setOnCalendarMultiSelectListener(onMultiSelectOutOfSize = action) + +inline fun CalendarView.doOnCalendarMultiSelect(crossinline action: (calendar: Calendar?, curSize: Int, maxSize: Int) -> Unit) = + setOnCalendarMultiSelectListener(onCalendarMultiSelect = action) + +inline fun CalendarView.setOnCalendarMultiSelectListener( + crossinline onCalendarMultiSelectOutOfRange: (calendar: Calendar?) -> Unit = {}, + crossinline onMultiSelectOutOfSize: (calendar: Calendar?, maxSize: Int) -> Unit = { _, _ -> }, + crossinline onCalendarMultiSelect: (calendar: Calendar?, curSize: Int, maxSize: Int) -> Unit = { _, _, _ -> } +): CalendarView.OnCalendarMultiSelectListener { + val listener = object : CalendarView.OnCalendarMultiSelectListener { + override fun onCalendarMultiSelectOutOfRange(calendar: Calendar?) = onCalendarMultiSelectOutOfRange(calendar) + override fun onMultiSelectOutOfSize(calendar: Calendar?, maxSize: Int) = onMultiSelectOutOfSize(calendar, maxSize) + override fun onCalendarMultiSelect(calendar: Calendar?, curSize: Int, maxSize: Int) = onCalendarMultiSelect(calendar, curSize, maxSize) + } + setOnCalendarMultiSelectListener(listener) + return listener +} + +inline fun CalendarView.doOnCalendarSelectOutOfRange(crossinline action: (calendar: Calendar?) -> Unit) = + setOnCalendarRangeSelectListener(onCalendarSelectOutOfRange = action) + +inline fun CalendarView.doOnSelectOutOfRange(crossinline action: (calendar: Calendar?, isOutOfMinRange: Boolean) -> Unit) = + setOnCalendarRangeSelectListener(onSelectOutOfRange = action) + +inline fun CalendarView.doOnCalendarRangeSelect(crossinline action: (calendar: Calendar?, isEnd: Boolean) -> Unit) = + setOnCalendarRangeSelectListener(onCalendarRangeSelect = action) + +inline fun CalendarView.setOnCalendarRangeSelectListener( + crossinline onCalendarSelectOutOfRange: (calendar: Calendar?) -> Unit = {}, + crossinline onSelectOutOfRange: (calendar: Calendar?, isOutOfMinRange: Boolean) -> Unit = { _, _ -> }, + crossinline onCalendarRangeSelect: (calendar: Calendar?, isEnd: Boolean) -> Unit = { _, _ -> } +): CalendarView.OnCalendarRangeSelectListener { + val listener = object : CalendarView.OnCalendarRangeSelectListener { + override fun onCalendarSelectOutOfRange(calendar: Calendar?) = onCalendarSelectOutOfRange(calendar) + override fun onSelectOutOfRange(calendar: Calendar?, isOutOfMinRange: Boolean) = onSelectOutOfRange(calendar, isOutOfMinRange) + override fun onCalendarRangeSelect(calendar: Calendar?, isEnd: Boolean) = onCalendarRangeSelect(calendar, isEnd) + } + setOnCalendarRangeSelectListener(listener) + return listener +} + +inline fun CalendarView.setMonthView() = setMonthView(T::class.java) + +inline fun CalendarView.setWeekView() = setWeekView(T::class.java) \ No newline at end of file diff --git a/kotlin/src/main/java/com/haibin/calendarview/Scheme.kt b/kotlin/src/main/java/com/haibin/calendarview/Scheme.kt index e56abdbd..1b561005 100644 --- a/kotlin/src/main/java/com/haibin/calendarview/Scheme.kt +++ b/kotlin/src/main/java/com/haibin/calendarview/Scheme.kt @@ -9,4 +9,4 @@ package com.haibin.calendarview import com.haibin.calendarview.Calendar.Scheme @Suppress("EXTENSION_SHADOWED_BY_MEMBER") -inline fun Scheme.getObj():T = obj as T \ No newline at end of file +inline fun Scheme.getObj():T = obj as T \ No newline at end of file