Using ordinal of enum to render tabs

This commit is contained in:
Maxime NATUREL 2023-01-06 14:13:58 +01:00
parent 9b5fda2689
commit 85cfa433d9
6 changed files with 18 additions and 17 deletions

View file

@ -66,8 +66,8 @@ class RoomPollsFragment : VectorBaseFragment<FragmentRoomPollsBinding>() {
tabLayoutMediator = TabLayoutMediator(views.roomPollsTabs, views.roomPollsViewPager) { tab, position -> tabLayoutMediator = TabLayoutMediator(views.roomPollsTabs, views.roomPollsViewPager) { tab, position ->
when (position) { when (position) {
0 -> tab.text = getString(R.string.room_polls_active) RoomPollsType.ACTIVE.ordinal -> tab.text = getString(R.string.room_polls_active)
1 -> tab.text = getString(R.string.room_polls_ended) RoomPollsType.ENDED.ordinal -> tab.text = getString(R.string.room_polls_ended)
} }
}.also { it.attach() } }.also { it.attach() }
} }

View file

@ -25,12 +25,13 @@ class RoomPollsPagerAdapter(
private val fragment: Fragment private val fragment: Fragment
) : FragmentStateAdapter(fragment) { ) : FragmentStateAdapter(fragment) {
override fun getItemCount() = 2 override fun getItemCount() = RoomPollsType.values().size
override fun createFragment(position: Int): Fragment { override fun createFragment(position: Int): Fragment {
return when (position) { return when (position) {
0 -> instantiateFragment(RoomActivePollsFragment::class.java.name) RoomPollsType.ACTIVE.ordinal -> instantiateFragment(RoomActivePollsFragment::class.java.name)
else -> instantiateFragment(RoomEndedPollsFragment::class.java.name) RoomPollsType.ENDED.ordinal -> instantiateFragment(RoomEndedPollsFragment::class.java.name)
else -> throw IllegalArgumentException("position should be between 0 and ${itemCount - 1}, while it was $position")
} }
} }

View file

@ -16,7 +16,7 @@
package im.vector.app.features.roomprofile.polls package im.vector.app.features.roomprofile.polls
enum class RoomPollsFilterType { enum class RoomPollsType {
ACTIVE, ACTIVE,
ENDED, ENDED,
} }

View file

@ -18,7 +18,7 @@ package im.vector.app.features.roomprofile.polls.active
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.features.roomprofile.polls.RoomPollsFilterType import im.vector.app.features.roomprofile.polls.RoomPollsType
import im.vector.app.features.roomprofile.polls.list.RoomPollsListFragment import im.vector.app.features.roomprofile.polls.list.RoomPollsListFragment
@AndroidEntryPoint @AndroidEntryPoint
@ -28,7 +28,7 @@ class RoomActivePollsFragment : RoomPollsListFragment() {
return getString(R.string.room_polls_active_no_item) return getString(R.string.room_polls_active_no_item)
} }
override fun getRoomPollsFilter(): RoomPollsFilterType { override fun getRoomPollsType(): RoomPollsType {
return RoomPollsFilterType.ACTIVE return RoomPollsType.ACTIVE
} }
} }

View file

@ -18,7 +18,7 @@ package im.vector.app.features.roomprofile.polls.ended
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import im.vector.app.R import im.vector.app.R
import im.vector.app.features.roomprofile.polls.RoomPollsFilterType import im.vector.app.features.roomprofile.polls.RoomPollsType
import im.vector.app.features.roomprofile.polls.list.RoomPollsListFragment import im.vector.app.features.roomprofile.polls.list.RoomPollsListFragment
@AndroidEntryPoint @AndroidEntryPoint
@ -28,7 +28,7 @@ class RoomEndedPollsFragment : RoomPollsListFragment() {
return getString(R.string.room_polls_ended_no_item) return getString(R.string.room_polls_ended_no_item)
} }
override fun getRoomPollsFilter(): RoomPollsFilterType { override fun getRoomPollsType(): RoomPollsType {
return RoomPollsFilterType.ENDED return RoomPollsType.ENDED
} }
} }

View file

@ -28,7 +28,7 @@ import im.vector.app.core.extensions.configureWith
import im.vector.app.core.platform.VectorBaseFragment import im.vector.app.core.platform.VectorBaseFragment
import im.vector.app.databinding.FragmentRoomPollsListBinding import im.vector.app.databinding.FragmentRoomPollsListBinding
import im.vector.app.features.roomprofile.polls.PollSummary import im.vector.app.features.roomprofile.polls.PollSummary
import im.vector.app.features.roomprofile.polls.RoomPollsFilterType import im.vector.app.features.roomprofile.polls.RoomPollsType
import im.vector.app.features.roomprofile.polls.RoomPollsViewModel import im.vector.app.features.roomprofile.polls.RoomPollsViewModel
import timber.log.Timber import timber.log.Timber
import javax.inject.Inject import javax.inject.Inject
@ -53,7 +53,7 @@ abstract class RoomPollsListFragment :
abstract fun getEmptyListTitle(): String abstract fun getEmptyListTitle(): String
abstract fun getRoomPollsFilter(): RoomPollsFilterType abstract fun getRoomPollsType(): RoomPollsType
private fun setupList() { private fun setupList() {
roomPollsController.listener = this roomPollsController.listener = this
@ -72,9 +72,9 @@ abstract class RoomPollsListFragment :
} }
override fun invalidate() = withState(viewModel) { viewState -> override fun invalidate() = withState(viewModel) { viewState ->
when (getRoomPollsFilter()) { when (getRoomPollsType()) {
RoomPollsFilterType.ACTIVE -> renderList(viewState.polls.filterIsInstance(PollSummary.ActivePoll::class.java)) RoomPollsType.ACTIVE -> renderList(viewState.polls.filterIsInstance(PollSummary.ActivePoll::class.java))
RoomPollsFilterType.ENDED -> renderList(viewState.polls.filterIsInstance(PollSummary.EndedPoll::class.java)) RoomPollsType.ENDED -> renderList(viewState.polls.filterIsInstance(PollSummary.EndedPoll::class.java))
} }
} }