Using ordinal of enum to render tabs
This commit is contained in:
parent
9b5fda2689
commit
85cfa433d9
@ -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() }
|
||||||
}
|
}
|
||||||
|
@ -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")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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,
|
||||||
}
|
}
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user