mirror of
https://github.com/vector-im/element-android.git
synced 2024-11-15 01:35:07 +08:00
Adding winner option views for ended poll items
This commit is contained in:
parent
1cc26449f3
commit
05363dc8ca
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package im.vector.app.features.roomprofile.polls.list
|
package im.vector.app.features.roomprofile.polls.list
|
||||||
|
|
||||||
|
import android.widget.LinearLayout
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import com.airbnb.epoxy.EpoxyAttribute
|
import com.airbnb.epoxy.EpoxyAttribute
|
||||||
import com.airbnb.epoxy.EpoxyModelClass
|
import com.airbnb.epoxy.EpoxyModelClass
|
||||||
@ -24,6 +25,8 @@ import im.vector.app.core.epoxy.ClickListener
|
|||||||
import im.vector.app.core.epoxy.VectorEpoxyHolder
|
import im.vector.app.core.epoxy.VectorEpoxyHolder
|
||||||
import im.vector.app.core.epoxy.VectorEpoxyModel
|
import im.vector.app.core.epoxy.VectorEpoxyModel
|
||||||
import im.vector.app.core.epoxy.onClick
|
import im.vector.app.core.epoxy.onClick
|
||||||
|
import im.vector.app.features.home.room.detail.timeline.item.PollOptionView
|
||||||
|
import im.vector.app.features.home.room.detail.timeline.item.PollOptionViewState
|
||||||
|
|
||||||
@EpoxyModelClass
|
@EpoxyModelClass
|
||||||
abstract class RoomPollItem : VectorEpoxyModel<RoomPollItem.Holder>(R.layout.item_poll) {
|
abstract class RoomPollItem : VectorEpoxyModel<RoomPollItem.Holder>(R.layout.item_poll) {
|
||||||
@ -34,6 +37,9 @@ abstract class RoomPollItem : VectorEpoxyModel<RoomPollItem.Holder>(R.layout.ite
|
|||||||
@EpoxyAttribute
|
@EpoxyAttribute
|
||||||
lateinit var title: String
|
lateinit var title: String
|
||||||
|
|
||||||
|
@EpoxyAttribute
|
||||||
|
var winnerOptions: List<PollOptionViewState.PollEnded> = emptyList()
|
||||||
|
|
||||||
@EpoxyAttribute(EpoxyAttribute.Option.DoNotHash)
|
@EpoxyAttribute(EpoxyAttribute.Option.DoNotHash)
|
||||||
var clickListener: ClickListener? = null
|
var clickListener: ClickListener? = null
|
||||||
|
|
||||||
@ -42,10 +48,17 @@ abstract class RoomPollItem : VectorEpoxyModel<RoomPollItem.Holder>(R.layout.ite
|
|||||||
holder.view.onClick(clickListener)
|
holder.view.onClick(clickListener)
|
||||||
holder.date.text = formattedDate
|
holder.date.text = formattedDate
|
||||||
holder.title.text = title
|
holder.title.text = title
|
||||||
|
holder.winnerOptions.removeAllViews()
|
||||||
|
for (winnerOption in winnerOptions) {
|
||||||
|
val optionView = PollOptionView(holder.view.context)
|
||||||
|
holder.winnerOptions.addView(optionView)
|
||||||
|
optionView.render(winnerOption)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class Holder : VectorEpoxyHolder() {
|
class Holder : VectorEpoxyHolder() {
|
||||||
val date by bind<TextView>(R.id.pollDate)
|
val date by bind<TextView>(R.id.pollDate)
|
||||||
val title by bind<TextView>(R.id.pollTitle)
|
val title by bind<TextView>(R.id.pollTitle)
|
||||||
|
val winnerOptions by bind<LinearLayout>(R.id.pollWinnerOptionsContainer)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -63,6 +63,7 @@ class RoomPollsController @Inject constructor(
|
|||||||
id(poll.id)
|
id(poll.id)
|
||||||
formattedDate(host.dateFormatter.format(poll.creationTimestamp, DateFormatKind.TIMELINE_DAY_DIVIDER))
|
formattedDate(host.dateFormatter.format(poll.creationTimestamp, DateFormatKind.TIMELINE_DAY_DIVIDER))
|
||||||
title(poll.title)
|
title(poll.title)
|
||||||
|
winnerOptions(poll.winnerOptions)
|
||||||
clickListener {
|
clickListener {
|
||||||
host.listener?.onPollClicked(poll.id)
|
host.listener?.onPollClicked(poll.id)
|
||||||
}
|
}
|
||||||
|
@ -42,4 +42,16 @@
|
|||||||
app:layout_constraintTop_toBottomOf="@id/pollDate"
|
app:layout_constraintTop_toBottomOf="@id/pollDate"
|
||||||
tools:text="Which sport should the pupils do this year?" />
|
tools:text="Which sport should the pupils do this year?" />
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/pollWinnerOptionsContainer"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="13dp"
|
||||||
|
android:divider="@drawable/divider_poll_options"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:showDividers="middle"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/pollTitle" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
Loading…
Reference in New Issue
Block a user