moving the static carousel state creation to the state constructor

This commit is contained in:
Adam Brown 2022-01-07 11:16:24 +00:00
parent 7ad0e2514f
commit 8a3652aec2
3 changed files with 34 additions and 33 deletions

View file

@ -54,34 +54,7 @@ class FtueAuthSplashCarouselFragment @Inject constructor(
private fun setupViews() {
views.splashCarousel.adapter = carouselController.adapter
TabLayoutMediator(views.carouselIndicator, views.splashCarousel) { _, _ -> }.attach()
carouselController.setData(SplashCarouselState(
items = listOf(
SplashCarouselState.Item(
getString(R.string.ftue_auth_carousel_1_title),
getString(R.string.ftue_auth_carousel_1_body),
R.drawable.onboarding_carousel_conversations,
R.drawable.bg_carousel_page_1
),
SplashCarouselState.Item(
getString(R.string.ftue_auth_carousel_2_title),
getString(R.string.ftue_auth_carousel_2_body),
R.drawable.onboarding_carousel_ems,
R.drawable.bg_carousel_page_2
),
SplashCarouselState.Item(
getString(R.string.ftue_auth_carousel_3_title),
getString(R.string.ftue_auth_carousel_3_body),
R.drawable.onboarding_carousel_connect,
R.drawable.bg_carousel_page_3
),
SplashCarouselState.Item(
getString(R.string.ftue_auth_carousel_4_title),
getString(R.string.ftue_auth_carousel_4_body),
R.drawable.onboarding_carousel_universal,
R.drawable.bg_carousel_page_4
)
)
))
carouselController.setData(SplashCarouselState())
views.loginSplashSubmit.debouncedClicks { getStarted() }
views.loginSplashAlreadyHaveAccount.apply {

View file

@ -32,10 +32,11 @@ abstract class SplashCarouselItem : VectorEpoxyModel<SplashCarouselItem.Holder>(
override fun bind(holder: Holder) {
super.bind(holder)
holder.view.setBackgroundResource(item.pageBackground)
holder.image.setImageResource(item.image)
holder.title.text = item.title
holder.body.text = item.body
holder.title.setText(item.title)
holder.body.setText(item.body)
}
class Holder : VectorEpoxyHolder() {

View file

@ -17,13 +17,40 @@
package im.vector.app.features.onboarding.ftueauth
import androidx.annotation.DrawableRes
import androidx.annotation.StringRes
import im.vector.app.R
data class SplashCarouselState(
val items: List<Item>
val items: List<Item> = listOf(
Item(
R.string.ftue_auth_carousel_1_title,
R.string.ftue_auth_carousel_1_body,
R.drawable.onboarding_carousel_conversations,
R.drawable.bg_carousel_page_1
),
Item(
R.string.ftue_auth_carousel_2_title,
R.string.ftue_auth_carousel_2_body,
R.drawable.onboarding_carousel_ems,
R.drawable.bg_carousel_page_2
),
Item(
R.string.ftue_auth_carousel_3_title,
R.string.ftue_auth_carousel_3_body,
R.drawable.onboarding_carousel_connect,
R.drawable.bg_carousel_page_3
),
Item(
R.string.ftue_auth_carousel_4_title,
R.string.ftue_auth_carousel_4_body,
R.drawable.onboarding_carousel_universal,
R.drawable.bg_carousel_page_4
)
)
) {
data class Item(
val title: String,
val body: String,
@StringRes val title: Int,
@StringRes val body: Int,
@DrawableRes val image: Int,
@DrawableRes val pageBackground: Int
)