From c9e18d320ec4576d8ae549ed8006fac1001f8102 Mon Sep 17 00:00:00 2001 From: Ben Loe Date: Thu, 13 Aug 2020 17:33:58 -0400 Subject: [PATCH] Update sample app with Today button and add test for month listener on scrollToDate() --- .../calenderviewsample/CalenderViewTests.kt | 23 +++++++++++++++++++ .../calendarviewsample/Example1Fragment.kt | 4 ++++ .../main/res/layout/example_1_fragment.xml | 10 ++++++++ sample/src/main/res/values/strings.xml | 1 + 4 files changed, 38 insertions(+) diff --git a/sample/src/androidTest/java/com/kizitonwose/calenderviewsample/CalenderViewTests.kt b/sample/src/androidTest/java/com/kizitonwose/calenderviewsample/CalenderViewTests.kt index 5acaebeb..b47f75cd 100644 --- a/sample/src/androidTest/java/com/kizitonwose/calenderviewsample/CalenderViewTests.kt +++ b/sample/src/androidTest/java/com/kizitonwose/calenderviewsample/CalenderViewTests.kt @@ -45,6 +45,7 @@ class CalenderViewTests { val homeScreenRule = ActivityTestRule(HomeActivity::class.java, true, false) private val currentMonth = YearMonth.now() + private val today = LocalDate.now() @Before fun setup() { @@ -224,6 +225,28 @@ class CalenderViewTests { assertEquals(targetCalMonth?.yearMonth, targetMonth) } + @Test + fun monthScrollListenerIsCalledWhenScrolledToDate() { + onView(withId(R.id.examplesRv)).perform(actionOnItemAtPosition(0, click())) + + val calendarView = findFragment().findViewById(R.id.exOneCalendar) + + val targetDay = today.plusDays(60) + + var targetCalMonth: CalendarMonth? = null + calendarView.monthScrollListener = { month -> + targetCalMonth = month + } + + homeScreenRule.runOnUiThread { + calendarView.scrollToDate(targetDay) + } + + sleep(5000) // Enough time for smooth scrolling animation. + + assertEquals(targetDay.yearMonth, targetCalMonth?.yearMonth) + } + @Test fun findVisibleDaysAndMonthsWorksOnVerticalOrientation() { onView(withId(R.id.examplesRv)).perform(actionOnItemAtPosition(1, click())) diff --git a/sample/src/main/java/com/kizitonwose/calendarviewsample/Example1Fragment.kt b/sample/src/main/java/com/kizitonwose/calendarviewsample/Example1Fragment.kt index 597f8a51..a7e5206d 100644 --- a/sample/src/main/java/com/kizitonwose/calendarviewsample/Example1Fragment.kt +++ b/sample/src/main/java/com/kizitonwose/calendarviewsample/Example1Fragment.kt @@ -189,6 +189,10 @@ class Example1Fragment : BaseFragment(R.layout.example_1_fragment), HasToolbar { animator.duration = 250 animator.start() } + + binding.todayButton.setOnClickListener { + binding.exOneCalendar.scrollToDate(LocalDate.now()) + } } override fun onStart() { diff --git a/sample/src/main/res/layout/example_1_fragment.xml b/sample/src/main/res/layout/example_1_fragment.xml index ac29247b..f95fffbf 100644 --- a/sample/src/main/res/layout/example_1_fragment.xml +++ b/sample/src/main/res/layout/example_1_fragment.xml @@ -78,6 +78,16 @@ android:textSize="18sp" android:layout_gravity="bottom|center_horizontal" /> +