diff --git a/build.gradle b/build.gradle index 453088d5..9e223540 100644 --- a/build.gradle +++ b/build.gradle @@ -1,20 +1,20 @@ buildscript { ext.versions = [ - 'min_sdk_library' : 15, + 'min_sdk_library' : 21, 'min_sdk_sample' : 21, 'target_sdk' : 28, 'compile_sdk' : 28, 'version_code' : 1, 'version_name' : '0.3.1', 'kotlin_lang' : '1.3.72', + 'desugar_jdk_libs' : '1.0.5', 'material_library' : '1.2.0-beta01', - 'androidx_appcompat' : '1.2.0-beta01', + 'androidx_appcompat' : '1.2.0-rc01', 'androidx_legacy' : '1.0.0', - 'androidx_core_ktx' : '1.3.0-beta01', + 'androidx_core_ktx' : '1.3.0', 'constraint_layout' : '2.0.0-beta6', 'cardview' : '1.0.0', - 'recyclerview' : '1.1.0', - 'threetenabp' : '1.2.4', + 'recyclerview' : '1.2.0-alpha03', 'junit' : '4.12', 'espresso' : '3.2.0', 'androidx_test_runner': '1.2.0', diff --git a/library/build.gradle b/library/build.gradle index 15c62315..d1518d20 100644 --- a/library/build.gradle +++ b/library/build.gradle @@ -21,6 +21,7 @@ android { } } compileOptions { + coreLibraryDesugaringEnabled true sourceCompatibility = 1.8 targetCompatibility = 1.8 } @@ -32,12 +33,10 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) + coreLibraryDesugaring "com.android.tools:desugar_jdk_libs:$versions.desugar_jdk_libs" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$versions.kotlin_lang" implementation "androidx.core:core-ktx:$versions.androidx_core_ktx" - // Expose ThreeTenABP so library users can use it directly. - api "com.jakewharton.threetenabp:threetenabp:$versions.threetenabp" - // Expose RecyclerView which is CalendarView's superclass to // prevent a compile error when using the library in a project: // Error: Supertypes of the following classes cannot be resolved. @@ -51,10 +50,5 @@ dependencies { api "androidx.recyclerview:recyclerview:$versions.recyclerview" testImplementation "junit:junit:$versions.junit" - testImplementation('org.threeten:threetenbp:1.4.4') { - // Use threetenBP library for tests as context will - // not be available to initialise threetenABP - exclude group: 'com.jakewharton.threetenabp', module: 'threetenabp' - } } diff --git a/library/src/main/java/com/kizitonwose/calendarview/CalendarView.kt b/library/src/main/java/com/kizitonwose/calendarview/CalendarView.kt index cd98a8b8..fe573f78 100644 --- a/library/src/main/java/com/kizitonwose/calendarview/CalendarView.kt +++ b/library/src/main/java/com/kizitonwose/calendarview/CalendarView.kt @@ -9,9 +9,9 @@ import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.RecyclerView import com.kizitonwose.calendarview.model.* import com.kizitonwose.calendarview.ui.* -import org.threeten.bp.DayOfWeek -import org.threeten.bp.LocalDate -import org.threeten.bp.YearMonth +import java.time.DayOfWeek +import java.time.LocalDate +import java.time.YearMonth open class CalendarView : RecyclerView { diff --git a/library/src/main/java/com/kizitonwose/calendarview/model/CalendarDay.kt b/library/src/main/java/com/kizitonwose/calendarview/model/CalendarDay.kt index e00aedc3..6e57ae14 100644 --- a/library/src/main/java/com/kizitonwose/calendarview/model/CalendarDay.kt +++ b/library/src/main/java/com/kizitonwose/calendarview/model/CalendarDay.kt @@ -3,10 +3,9 @@ package com.kizitonwose.calendarview.model import com.kizitonwose.calendarview.utils.next import com.kizitonwose.calendarview.utils.previous import com.kizitonwose.calendarview.utils.yearMonth -import org.threeten.bp.LocalDate -import org.threeten.bp.YearMonth import java.io.Serializable - +import java.time.LocalDate +import java.time.YearMonth data class CalendarDay internal constructor(val date: LocalDate, val owner: DayOwner) : Comparable, Serializable { diff --git a/library/src/main/java/com/kizitonwose/calendarview/model/CalendarMonth.kt b/library/src/main/java/com/kizitonwose/calendarview/model/CalendarMonth.kt index b29ca223..8fd9a199 100644 --- a/library/src/main/java/com/kizitonwose/calendarview/model/CalendarMonth.kt +++ b/library/src/main/java/com/kizitonwose/calendarview/model/CalendarMonth.kt @@ -1,7 +1,7 @@ package com.kizitonwose.calendarview.model -import org.threeten.bp.YearMonth import java.io.Serializable +import java.time.YearMonth data class CalendarMonth( val yearMonth: YearMonth, diff --git a/library/src/main/java/com/kizitonwose/calendarview/model/MonthConfig.kt b/library/src/main/java/com/kizitonwose/calendarview/model/MonthConfig.kt index f0e47cb3..f312af51 100644 --- a/library/src/main/java/com/kizitonwose/calendarview/model/MonthConfig.kt +++ b/library/src/main/java/com/kizitonwose/calendarview/model/MonthConfig.kt @@ -1,10 +1,10 @@ package com.kizitonwose.calendarview.model import com.kizitonwose.calendarview.utils.next -import org.threeten.bp.DayOfWeek -import org.threeten.bp.LocalDate -import org.threeten.bp.YearMonth -import org.threeten.bp.temporal.WeekFields +import java.time.DayOfWeek +import java.time.LocalDate +import java.time.YearMonth +import java.time.temporal.WeekFields internal data class MonthConfig( val outDateStyle: OutDateStyle, diff --git a/library/src/main/java/com/kizitonwose/calendarview/ui/CalendarAdapter.kt b/library/src/main/java/com/kizitonwose/calendarview/ui/CalendarAdapter.kt index a9c2c65f..5efb41f7 100644 --- a/library/src/main/java/com/kizitonwose/calendarview/ui/CalendarAdapter.kt +++ b/library/src/main/java/com/kizitonwose/calendarview/ui/CalendarAdapter.kt @@ -16,8 +16,8 @@ import com.kizitonwose.calendarview.model.* import com.kizitonwose.calendarview.utils.NO_INDEX import com.kizitonwose.calendarview.utils.inflate import com.kizitonwose.calendarview.utils.orZero -import org.threeten.bp.LocalDate -import org.threeten.bp.YearMonth +import java.time.LocalDate +import java.time.YearMonth internal typealias LP = ViewGroup.LayoutParams diff --git a/library/src/main/java/com/kizitonwose/calendarview/ui/CalendarLayoutManager.kt b/library/src/main/java/com/kizitonwose/calendarview/ui/CalendarLayoutManager.kt index 011fe95c..cf84d367 100644 --- a/library/src/main/java/com/kizitonwose/calendarview/ui/CalendarLayoutManager.kt +++ b/library/src/main/java/com/kizitonwose/calendarview/ui/CalendarLayoutManager.kt @@ -11,7 +11,7 @@ import com.kizitonwose.calendarview.CalendarView import com.kizitonwose.calendarview.model.CalendarDay import com.kizitonwose.calendarview.model.ScrollMode import com.kizitonwose.calendarview.utils.NO_INDEX -import org.threeten.bp.YearMonth +import java.time.YearMonth internal class CalendarLayoutManager(private val calView: CalendarView, @RecyclerView.Orientation orientation: Int) : LinearLayoutManager(calView.context, orientation, false) { @@ -23,7 +23,7 @@ internal class CalendarLayoutManager(private val calView: CalendarView, @Recycle get() = calView.context fun scrollToMonth(month: YearMonth) { - scrollToPosition(adapter.getAdapterPosition(month)) + scrollToPositionWithOffset(adapter.getAdapterPosition(month), 0) calView.post { adapter.notifyMonthScrollListenerIfNeeded() } } @@ -45,7 +45,7 @@ internal class CalendarLayoutManager(private val calView: CalendarView, @Recycle fun scrollToDay(day: CalendarDay) { val monthPosition = adapter.getAdapterPosition(day) - scrollToPosition(monthPosition) + scrollToPositionWithOffset(monthPosition, 0) // Can't target a specific day in a paged calendar. if (calView.scrollMode == ScrollMode.PAGED) return calView.post { diff --git a/library/src/main/java/com/kizitonwose/calendarview/utils/Extensions.kt b/library/src/main/java/com/kizitonwose/calendarview/utils/Extensions.kt index 472033fe..888ae586 100644 --- a/library/src/main/java/com/kizitonwose/calendarview/utils/Extensions.kt +++ b/library/src/main/java/com/kizitonwose/calendarview/utils/Extensions.kt @@ -5,8 +5,8 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.annotation.LayoutRes -import org.threeten.bp.LocalDate -import org.threeten.bp.YearMonth +import java.time.LocalDate +import java.time.YearMonth internal fun ViewGroup.inflate(@LayoutRes layoutRes: Int, attachToRoot: Boolean = false): View { return LayoutInflater.from(context).inflate(layoutRes, this, attachToRoot) diff --git a/library/src/test/java/com/kizitonwose/calenderview/CalenderViewTests.kt b/library/src/test/java/com/kizitonwose/calenderview/CalenderViewTests.kt index 18abbb5f..f3139e72 100644 --- a/library/src/test/java/com/kizitonwose/calenderview/CalenderViewTests.kt +++ b/library/src/test/java/com/kizitonwose/calenderview/CalenderViewTests.kt @@ -6,8 +6,8 @@ import com.kizitonwose.calendarview.model.MonthConfig import com.kizitonwose.calendarview.model.OutDateStyle import org.junit.Assert.assertTrue import org.junit.Test -import org.threeten.bp.DayOfWeek -import org.threeten.bp.YearMonth +import java.time.DayOfWeek +import java.time.YearMonth /** * These are core functionality tests. diff --git a/sample/build.gradle b/sample/build.gradle index 3bef53f9..e0d894eb 100644 --- a/sample/build.gradle +++ b/sample/build.gradle @@ -21,6 +21,7 @@ android { } } compileOptions { + coreLibraryDesugaringEnabled true sourceCompatibility = 1.8 targetCompatibility = 1.8 } @@ -32,6 +33,7 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation project(':library') + coreLibraryDesugaring "com.android.tools:desugar_jdk_libs:$versions.desugar_jdk_libs" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$versions.kotlin_lang" implementation "androidx.legacy:legacy-support-v4:$versions.androidx_legacy" implementation "androidx.appcompat:appcompat:$versions.androidx_appcompat" diff --git a/sample/src/androidTest/java/com/kizitonwose/calenderviewsample/CalenderViewTests.kt b/sample/src/androidTest/java/com/kizitonwose/calenderviewsample/CalenderViewTests.kt index 30cc5535..799fba86 100644 --- a/sample/src/androidTest/java/com/kizitonwose/calenderviewsample/CalenderViewTests.kt +++ b/sample/src/androidTest/java/com/kizitonwose/calenderviewsample/CalenderViewTests.kt @@ -27,9 +27,9 @@ import org.junit.Before import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith -import org.threeten.bp.LocalDate -import org.threeten.bp.YearMonth import java.lang.Thread.sleep +import java.time.LocalDate +import java.time.YearMonth /** * These are UI behaviour tests. diff --git a/sample/src/main/java/com/kizitonwose/calendarviewsample/CalendarViewApp.kt b/sample/src/main/java/com/kizitonwose/calendarviewsample/CalendarViewApp.kt index 3a0f66dc..5a75c4b8 100644 --- a/sample/src/main/java/com/kizitonwose/calendarviewsample/CalendarViewApp.kt +++ b/sample/src/main/java/com/kizitonwose/calendarviewsample/CalendarViewApp.kt @@ -1,13 +1,10 @@ package com.kizitonwose.calendarviewsample import android.app.Application -import com.jakewharton.threetenabp.AndroidThreeTen class CalendarViewApp : Application() { override fun onCreate() { super.onCreate() - // Initialize ThreeTenABP library - AndroidThreeTen.init(this) } } diff --git a/sample/src/main/java/com/kizitonwose/calendarviewsample/Example1Fragment.kt b/sample/src/main/java/com/kizitonwose/calendarviewsample/Example1Fragment.kt index 62d7fb3f..e48eb040 100644 --- a/sample/src/main/java/com/kizitonwose/calendarviewsample/Example1Fragment.kt +++ b/sample/src/main/java/com/kizitonwose/calendarviewsample/Example1Fragment.kt @@ -18,10 +18,10 @@ import com.kizitonwose.calendarview.utils.next import com.kizitonwose.calendarview.utils.yearMonth import com.kizitonwose.calendarviewsample.databinding.Example1CalendarDayBinding import com.kizitonwose.calendarviewsample.databinding.Example1FragmentBinding -import org.threeten.bp.LocalDate -import org.threeten.bp.YearMonth -import org.threeten.bp.format.DateTimeFormatter -import org.threeten.bp.format.TextStyle +import java.time.LocalDate +import java.time.YearMonth +import java.time.format.DateTimeFormatter +import java.time.format.TextStyle import java.util.* class Example1Fragment : BaseFragment(R.layout.example_1_fragment), HasToolbar { diff --git a/sample/src/main/java/com/kizitonwose/calendarviewsample/Example2Fragment.kt b/sample/src/main/java/com/kizitonwose/calendarviewsample/Example2Fragment.kt index 60a051ae..a9d910be 100644 --- a/sample/src/main/java/com/kizitonwose/calendarviewsample/Example2Fragment.kt +++ b/sample/src/main/java/com/kizitonwose/calendarviewsample/Example2Fragment.kt @@ -19,9 +19,9 @@ import com.kizitonwose.calendarview.ui.ViewContainer import com.kizitonwose.calendarviewsample.databinding.Example2CalendarDayBinding import com.kizitonwose.calendarviewsample.databinding.Example2CalendarHeaderBinding import com.kizitonwose.calendarviewsample.databinding.Example2FragmentBinding -import org.threeten.bp.LocalDate -import org.threeten.bp.YearMonth -import org.threeten.bp.format.DateTimeFormatter +import java.time.LocalDate +import java.time.YearMonth +import java.time.format.DateTimeFormatter class Example2Fragment : BaseFragment(R.layout.example_2_fragment), HasToolbar, HasBackButton { diff --git a/sample/src/main/java/com/kizitonwose/calendarviewsample/Example3Fragment.kt b/sample/src/main/java/com/kizitonwose/calendarviewsample/Example3Fragment.kt index e06eab42..62377bb0 100644 --- a/sample/src/main/java/com/kizitonwose/calendarviewsample/Example3Fragment.kt +++ b/sample/src/main/java/com/kizitonwose/calendarviewsample/Example3Fragment.kt @@ -26,9 +26,9 @@ import com.kizitonwose.calendarviewsample.databinding.Example3CalendarDayBinding import com.kizitonwose.calendarviewsample.databinding.Example3CalendarHeaderBinding import com.kizitonwose.calendarviewsample.databinding.Example3EventItemViewBinding import com.kizitonwose.calendarviewsample.databinding.Example3FragmentBinding -import org.threeten.bp.LocalDate -import org.threeten.bp.YearMonth -import org.threeten.bp.format.DateTimeFormatter +import java.time.LocalDate +import java.time.YearMonth +import java.time.format.DateTimeFormatter import java.util.* data class Event(val id: String, val text: String, val date: LocalDate) diff --git a/sample/src/main/java/com/kizitonwose/calendarviewsample/Example4Fragment.kt b/sample/src/main/java/com/kizitonwose/calendarviewsample/Example4Fragment.kt index 22f22638..80f80cf0 100644 --- a/sample/src/main/java/com/kizitonwose/calendarviewsample/Example4Fragment.kt +++ b/sample/src/main/java/com/kizitonwose/calendarviewsample/Example4Fragment.kt @@ -23,10 +23,10 @@ import com.kizitonwose.calendarview.ui.ViewContainer import com.kizitonwose.calendarviewsample.databinding.Example4CalendarDayBinding import com.kizitonwose.calendarviewsample.databinding.Example4CalendarHeaderBinding import com.kizitonwose.calendarviewsample.databinding.Example4FragmentBinding -import org.threeten.bp.LocalDate -import org.threeten.bp.YearMonth -import org.threeten.bp.format.DateTimeFormatter -import org.threeten.bp.format.TextStyle +import java.time.LocalDate +import java.time.YearMonth +import java.time.format.DateTimeFormatter +import java.time.format.TextStyle import java.util.* class Example4Fragment : BaseFragment(R.layout.example_4_fragment), HasToolbar, HasBackButton { diff --git a/sample/src/main/java/com/kizitonwose/calendarviewsample/Example5Fragment.kt b/sample/src/main/java/com/kizitonwose/calendarviewsample/Example5Fragment.kt index 31cb17b6..00a40105 100644 --- a/sample/src/main/java/com/kizitonwose/calendarviewsample/Example5Fragment.kt +++ b/sample/src/main/java/com/kizitonwose/calendarviewsample/Example5Fragment.kt @@ -23,11 +23,11 @@ import com.kizitonwose.calendarviewsample.databinding.Example5CalendarDayBinding import com.kizitonwose.calendarviewsample.databinding.Example5CalendarHeaderBinding import com.kizitonwose.calendarviewsample.databinding.Example5EventItemViewBinding import com.kizitonwose.calendarviewsample.databinding.Example5FragmentBinding -import org.threeten.bp.LocalDate -import org.threeten.bp.LocalDateTime -import org.threeten.bp.YearMonth -import org.threeten.bp.format.DateTimeFormatter -import org.threeten.bp.format.TextStyle +import java.time.LocalDate +import java.time.LocalDateTime +import java.time.YearMonth +import java.time.format.DateTimeFormatter +import java.time.format.TextStyle import java.util.* data class Flight(val time: LocalDateTime, val departure: Airport, val destination: Airport, @ColorRes val color: Int) { diff --git a/sample/src/main/java/com/kizitonwose/calendarviewsample/Example6Fragment.kt b/sample/src/main/java/com/kizitonwose/calendarviewsample/Example6Fragment.kt index 88a96624..b17e11c4 100644 --- a/sample/src/main/java/com/kizitonwose/calendarviewsample/Example6Fragment.kt +++ b/sample/src/main/java/com/kizitonwose/calendarviewsample/Example6Fragment.kt @@ -18,8 +18,8 @@ import com.kizitonwose.calendarview.ui.ViewContainer import com.kizitonwose.calendarviewsample.databinding.Example6CalendarDayBinding import com.kizitonwose.calendarviewsample.databinding.Example6CalendarHeaderBinding import com.kizitonwose.calendarviewsample.databinding.Example6FragmentBinding -import org.threeten.bp.YearMonth -import org.threeten.bp.format.DateTimeFormatter +import java.time.YearMonth +import java.time.format.DateTimeFormatter // We assign this class to the `monthViewClass` attribute in XML. // See usage in example_6_fragment.xml diff --git a/sample/src/main/java/com/kizitonwose/calendarviewsample/Example7Fragment.kt b/sample/src/main/java/com/kizitonwose/calendarviewsample/Example7Fragment.kt index 1cf19861..3630277e 100644 --- a/sample/src/main/java/com/kizitonwose/calendarviewsample/Example7Fragment.kt +++ b/sample/src/main/java/com/kizitonwose/calendarviewsample/Example7Fragment.kt @@ -12,10 +12,10 @@ import com.kizitonwose.calendarview.ui.DayBinder import com.kizitonwose.calendarview.ui.ViewContainer import com.kizitonwose.calendarviewsample.databinding.Example7CalendarDayBinding import com.kizitonwose.calendarviewsample.databinding.Example7FragmentBinding -import org.threeten.bp.DayOfWeek -import org.threeten.bp.LocalDate -import org.threeten.bp.YearMonth -import org.threeten.bp.format.DateTimeFormatter +import java.time.DayOfWeek +import java.time.LocalDate +import java.time.YearMonth +import java.time.format.DateTimeFormatter class Example7Fragment : BaseFragment(R.layout.example_7_fragment), HasToolbar, HasBackButton { diff --git a/sample/src/main/java/com/kizitonwose/calendarviewsample/Extensions.kt b/sample/src/main/java/com/kizitonwose/calendarviewsample/Extensions.kt index 9a25d92f..b79cb769 100644 --- a/sample/src/main/java/com/kizitonwose/calendarviewsample/Extensions.kt +++ b/sample/src/main/java/com/kizitonwose/calendarviewsample/Extensions.kt @@ -12,8 +12,8 @@ import androidx.annotation.ColorRes import androidx.annotation.DrawableRes import androidx.annotation.LayoutRes import androidx.core.content.ContextCompat -import org.threeten.bp.DayOfWeek -import org.threeten.bp.temporal.WeekFields +import java.time.DayOfWeek +import java.time.temporal.WeekFields import java.util.* fun View.makeVisible() { diff --git a/sample/src/main/java/com/kizitonwose/calendarviewsample/Utils.kt b/sample/src/main/java/com/kizitonwose/calendarviewsample/Utils.kt index 3bd39f84..20991566 100644 --- a/sample/src/main/java/com/kizitonwose/calendarviewsample/Utils.kt +++ b/sample/src/main/java/com/kizitonwose/calendarviewsample/Utils.kt @@ -1,6 +1,6 @@ package com.kizitonwose.calendarviewsample -import org.threeten.bp.YearMonth +import java.time.YearMonth private typealias Airport = Flight.Airport