diff --git a/sample/src/main/java/com/kizitonwose/calendarviewsample/Example1Fragment.kt b/sample/src/main/java/com/kizitonwose/calendarviewsample/Example1Fragment.kt index 0d38aac8..a0685105 100644 --- a/sample/src/main/java/com/kizitonwose/calendarviewsample/Example1Fragment.kt +++ b/sample/src/main/java/com/kizitonwose/calendarviewsample/Example1Fragment.kt @@ -186,6 +186,7 @@ class Example1Fragment : BaseFragment(), HasToolbar { if (firstDate.yearMonth == lastDate.yearMonth) { exOneCalendar.scrollToMonth(firstDate.yearMonth) } else { + // We compare the next with the last month on the calendar so we don't go over. exOneCalendar.scrollToMonth(minOf(firstDate.yearMonth.next, endMonth)) } } diff --git a/sample/src/main/java/com/kizitonwose/calendarviewsample/HomeActivity.kt b/sample/src/main/java/com/kizitonwose/calendarviewsample/HomeActivity.kt index 9f2ebd4d..e5eca1c2 100644 --- a/sample/src/main/java/com/kizitonwose/calendarviewsample/HomeActivity.kt +++ b/sample/src/main/java/com/kizitonwose/calendarviewsample/HomeActivity.kt @@ -12,19 +12,10 @@ import kotlinx.android.synthetic.main.home_activity.* class HomeActivity : AppCompatActivity() { private val examplesAdapter = HomeOptionsAdapter { - val instance = when (it.titleRes) { - R.string.example_1_title -> Example1Fragment() - R.string.example_2_title -> Example2Fragment() - R.string.example_3_title -> Example3Fragment() - R.string.example_4_title -> Example4Fragment() - R.string.example_5_title -> Example5Fragment() - R.string.example_6_title -> Example6Fragment() - R.string.example_7_title -> Example7Fragment() - else -> throw IllegalArgumentException() - } + val fragment = it.createView() supportFragmentManager.beginTransaction() .run { - if (instance is Example1Fragment || instance is Example4Fragment || instance is Example5Fragment) { + if (fragment is Example1Fragment || fragment is Example4Fragment || fragment is Example5Fragment) { return@run setCustomAnimations( R.anim.slide_in_up, R.anim.fade_out, @@ -39,8 +30,8 @@ class HomeActivity : AppCompatActivity() { R.anim.slide_out_right ) } - .add(R.id.homeContainer, instance, instance.javaClass.simpleName) - .addToBackStack(instance.javaClass.simpleName) + .add(R.id.homeContainer, fragment, fragment.javaClass.simpleName) + .addToBackStack(fragment.javaClass.simpleName) .commit() } diff --git a/sample/src/main/java/com/kizitonwose/calendarviewsample/HomeOptionsAdapter.kt b/sample/src/main/java/com/kizitonwose/calendarviewsample/HomeOptionsAdapter.kt index 7327caf4..dda765d3 100644 --- a/sample/src/main/java/com/kizitonwose/calendarviewsample/HomeOptionsAdapter.kt +++ b/sample/src/main/java/com/kizitonwose/calendarviewsample/HomeOptionsAdapter.kt @@ -5,23 +5,24 @@ import android.view.View import android.view.ViewGroup import androidx.annotation.StringRes import androidx.core.view.isVisible +import androidx.fragment.app.Fragment import androidx.recyclerview.widget.RecyclerView import kotlinx.android.extensions.LayoutContainer import kotlinx.android.synthetic.main.home_options_item_view.* -data class ExampleItem(@StringRes val titleRes: Int, @StringRes val subtitleRes: Int) +data class ExampleItem(@StringRes val titleRes: Int, @StringRes val subtitleRes: Int, val createView: () -> BaseFragment) class HomeOptionsAdapter(val onClick: (ExampleItem) -> Unit) : RecyclerView.Adapter() { val examples = listOf( - ExampleItem(R.string.example_1_title, R.string.example_1_subtitle), - ExampleItem(R.string.example_2_title, R.string.example_2_subtitle), - ExampleItem(R.string.example_3_title, R.string.example_3_subtitle), - ExampleItem(R.string.example_4_title, R.string.example_4_subtitle), - ExampleItem(R.string.example_5_title, R.string.example_5_subtitle), - ExampleItem(R.string.example_6_title, R.string.example_6_subtitle), - ExampleItem(R.string.example_7_title, R.string.example_7_subtitle) + ExampleItem(R.string.example_1_title, R.string.example_1_subtitle) { Example1Fragment() }, + ExampleItem(R.string.example_2_title, R.string.example_2_subtitle) { Example2Fragment() }, + ExampleItem(R.string.example_3_title, R.string.example_3_subtitle) { Example3Fragment() }, + ExampleItem(R.string.example_4_title, R.string.example_4_subtitle) { Example4Fragment() }, + ExampleItem(R.string.example_5_title, R.string.example_5_subtitle) { Example5Fragment() }, + ExampleItem(R.string.example_6_title, R.string.example_6_subtitle) { Example6Fragment() }, + ExampleItem(R.string.example_7_title, R.string.example_7_subtitle) { Example7Fragment() } ) override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): HomeOptionsViewHolder {