diff --git a/app/src/main/java/org/futo/circles/feature/notifications/test/list/NotificationsTestAdapter.kt b/app/src/main/java/org/futo/circles/feature/notifications/test/list/NotificationsTestAdapter.kt index 8fce20c40f0023af793b4c937f61c6dfa39cabec..a6d940ce95a0a4b1b29ad682172d745f1e4f9cc7 100644 --- a/app/src/main/java/org/futo/circles/feature/notifications/test/list/NotificationsTestAdapter.kt +++ b/app/src/main/java/org/futo/circles/feature/notifications/test/list/NotificationsTestAdapter.kt @@ -6,8 +6,7 @@ import org.futo.circles.model.NotificationTestListItem class NotificationsTestAdapter( private val onFixClicked: (Int) -> Unit, -) : - BaseRvAdapter<NotificationTestListItem, NotificationTestViewHolder>(DefaultIdEntityCallback()) { +) : BaseRvAdapter<NotificationTestListItem, NotificationTestViewHolder>(DefaultIdEntityCallback()) { override fun onCreateViewHolder( parent: ViewGroup, diff --git a/core/src/main/java/org/futo/circles/core/workspace/list/WorkspaceTasksListAdapter.kt b/core/src/main/java/org/futo/circles/core/workspace/list/WorkspaceTasksListAdapter.kt new file mode 100644 index 0000000000000000000000000000000000000000..bce0cbdb2a5e7380d74bf6329c00188904c3b4c1 --- /dev/null +++ b/core/src/main/java/org/futo/circles/core/workspace/list/WorkspaceTasksListAdapter.kt @@ -0,0 +1,40 @@ +package org.futo.circles.core.workspace.list + +import android.view.ViewGroup +import org.futo.circles.core.list.BaseRvAdapter +import org.futo.circles.core.model.MandatoryWorkspaceTask +import org.futo.circles.core.model.OptionalWorkspaceTask +import org.futo.circles.core.model.WorkspaceTask + +private enum class WorkspaceTaskViewType { Mandatory, Optional } + +class WorkspaceTasksListAdapter( + private val onOptionalItemClicked: (OptionalWorkspaceTask) -> Unit +) : BaseRvAdapter<WorkspaceTask, WorkspaceTaskViewHolder>(DefaultIdEntityCallback()) { + + override fun getItemViewType(position: Int): Int = when (getItem(position)) { + is MandatoryWorkspaceTask -> WorkspaceTaskViewType.Mandatory.ordinal + is OptionalWorkspaceTask -> WorkspaceTaskViewType.Optional.ordinal + } + + override fun onCreateViewHolder( + parent: ViewGroup, + viewType: Int + ) = when (WorkspaceTaskViewType.values()[viewType]) { + WorkspaceTaskViewType.Mandatory -> MandatoryWorkspaceTaskViewHolder(parent = parent) + + WorkspaceTaskViewType.Optional -> OptionalWorkspaceTaskViewHolder( + parent = parent, + onItemClicked = { position -> + (getItem(position) as? OptionalWorkspaceTask)?.let { + onOptionalItemClicked.invoke(it) + } + } + ) + } + + override fun onBindViewHolder(holder: WorkspaceTaskViewHolder, position: Int) { + holder.bind(getItem(position)) + } + +} \ No newline at end of file