Skip to content
Snippets Groups Projects
Commit efb3d857 authored by Taras's avatar Taras
Browse files

Create list item

parent 6e74ea39
No related branches found
No related tags found
No related merge requests found
......@@ -30,7 +30,10 @@ class FilterTimelinesDialogFragment :
private val filterTimelinesAdapter by lazy {
FilterTimelinesAdapter(
onItemSelected = { id -> viewModel.toggleItemSelected(id) }
onItemSelected = { id ->
binding.btnSave.isEnabled = true
viewModel.toggleItemSelected(id)
}
)
}
......@@ -46,7 +49,10 @@ class FilterTimelinesDialogFragment :
startLoading(btnSave)
viewModel.saveFilter()
}
btnSelectAll.setOnClickListener { viewModel.selectAllItems() }
btnSelectAll.setOnClickListener {
binding.btnSave.isEnabled = true
viewModel.selectAllItems()
}
rvTimelines.apply {
addItemDecoration(DividerItemDecoration(context, DividerItemDecoration.VERTICAL))
adapter = filterTimelinesAdapter
......
package org.futo.circles.core.feature.circles.filter.list
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import org.futo.circles.core.base.list.ViewBindingHolder
import org.futo.circles.core.databinding.ListItemTimelineFilterBinding
import org.futo.circles.core.extensions.loadRoomProfileIcon
import org.futo.circles.core.extensions.onClick
import org.futo.circles.core.model.FilterTimelinesListItem
class FilterTimelinesViewHolder(
parent: ViewGroup,
onItemClicked: (Int) -> Unit
) : RecyclerView.ViewHolder(inflate(parent, ListItemTimelineFilterBinding::inflate)) {
private companion object : ViewBindingHolder
private val binding = baseBinding as ListItemTimelineFilterBinding
init {
onClick(itemView) { position -> onItemClicked(position) }
}
fun bind(data: FilterTimelinesListItem) {
with(binding) {
tvRoomName.text = data.name
tvOwnerName.text = data.ownerName
ivRoom.loadRoomProfileIcon(data.avatarUrl, data.name)
vCheck.isChecked = data.isSelected
}
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:padding="8dp">
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/ivRoom"
android:layout_width="45dp"
android:layout_height="45dp"
android:scaleType="fitCenter"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:shapeAppearanceOverlay="@style/ShapeAppearanceOverlay.App.CornerSize50Percent"
tools:src="@color/blue" />
<TextView
android:id="@+id/tvRoomName"
style="@style/headline"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginEnd="8dp"
android:ellipsize="end"
android:lines="1"
app:layout_constraintBottom_toTopOf="@id/tvOwnerName"
app:layout_constraintEnd_toStartOf="@+id/vCheck"
app:layout_constraintStart_toEndOf="@id/ivRoom"
app:layout_constraintTop_toTopOf="@id/ivRoom"
app:layout_constraintVertical_chainStyle="packed"
tools:text="texsdt" />
<TextView
android:id="@+id/tvOwnerName"
style="@style/footNote"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:lines="1"
app:layout_constraintBottom_toBottomOf="@id/ivRoom"
app:layout_constraintEnd_toEndOf="@id/tvRoomName"
app:layout_constraintStart_toStartOf="@id/tvRoomName"
app:layout_constraintTop_toBottomOf="@id/tvRoomName"
tools:text="texsdt" />
<com.google.android.material.checkbox.MaterialCheckBox
android:id="@+id/vCheck"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment