diff --git a/app/src/main/java/com/keylesspalace/tusky/components/notifications/NotificationsPagingAdapter.kt b/app/src/main/java/com/keylesspalace/tusky/components/notifications/NotificationsPagingAdapter.kt index c3d00c142..309f17b72 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/notifications/NotificationsPagingAdapter.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/notifications/NotificationsPagingAdapter.kt @@ -29,7 +29,9 @@ import com.keylesspalace.tusky.databinding.ItemReportNotificationBinding import com.keylesspalace.tusky.databinding.ItemStatusBinding import com.keylesspalace.tusky.databinding.ItemStatusNotificationBinding import com.keylesspalace.tusky.databinding.ItemStatusPlaceholderBinding +import com.keylesspalace.tusky.databinding.ItemStatusWrapperBinding import com.keylesspalace.tusky.databinding.ItemUnknownNotificationBinding +import com.keylesspalace.tusky.entity.Filter import com.keylesspalace.tusky.entity.Notification import com.keylesspalace.tusky.interfaces.AccountActionListener import com.keylesspalace.tusky.interfaces.StatusActionListener @@ -77,7 +79,11 @@ class NotificationsPagingAdapter( is NotificationViewData.Concrete -> { when (notification.type) { Notification.Type.MENTION, - Notification.Type.POLL -> VIEW_TYPE_STATUS + Notification.Type.POLL -> if (notification.statusViewData?.filterAction == Filter.Action.WARN) { + VIEW_TYPE_STATUS_FILTERED + } else { + VIEW_TYPE_STATUS + } Notification.Type.STATUS, Notification.Type.FAVOURITE, Notification.Type.REBLOG, @@ -97,7 +103,12 @@ class NotificationsPagingAdapter( val inflater = LayoutInflater.from(parent.context) return when (viewType) { VIEW_TYPE_STATUS -> StatusViewHolder( - ItemStatusBinding.inflate(inflater, parent, false), + ItemStatusBinding.inflate(inflater, parent, false).root, + statusListener, + accountId + ) + VIEW_TYPE_STATUS_FILTERED -> StatusViewHolder( + ItemStatusWrapperBinding.inflate(inflater, parent, false).root, statusListener, accountId ) @@ -157,12 +168,13 @@ class NotificationsPagingAdapter( companion object { private const val VIEW_TYPE_STATUS = 0 - private const val VIEW_TYPE_STATUS_NOTIFICATION = 1 - private const val VIEW_TYPE_FOLLOW = 2 - private const val VIEW_TYPE_FOLLOW_REQUEST = 3 - private const val VIEW_TYPE_PLACEHOLDER = 4 - private const val VIEW_TYPE_REPORT = 5 - private const val VIEW_TYPE_UNKNOWN = 6 + private const val VIEW_TYPE_STATUS_FILTERED = 1 + private const val VIEW_TYPE_STATUS_NOTIFICATION = 2 + private const val VIEW_TYPE_FOLLOW = 3 + private const val VIEW_TYPE_FOLLOW_REQUEST = 4 + private const val VIEW_TYPE_PLACEHOLDER = 5 + private const val VIEW_TYPE_REPORT = 6 + private const val VIEW_TYPE_UNKNOWN = 7 val NotificationsDifferCallback = object : DiffUtil.ItemCallback() { override fun areItemsTheSame( diff --git a/app/src/main/java/com/keylesspalace/tusky/components/notifications/StatusViewHolder.kt b/app/src/main/java/com/keylesspalace/tusky/components/notifications/StatusViewHolder.kt index fcc289e5c..19ec41608 100644 --- a/app/src/main/java/com/keylesspalace/tusky/components/notifications/StatusViewHolder.kt +++ b/app/src/main/java/com/keylesspalace/tusky/components/notifications/StatusViewHolder.kt @@ -17,18 +17,18 @@ package com.keylesspalace.tusky.components.notifications +import android.view.View import com.keylesspalace.tusky.adapter.StatusViewHolder -import com.keylesspalace.tusky.databinding.ItemStatusBinding import com.keylesspalace.tusky.entity.Notification import com.keylesspalace.tusky.interfaces.StatusActionListener import com.keylesspalace.tusky.util.StatusDisplayOptions import com.keylesspalace.tusky.viewdata.NotificationViewData internal class StatusViewHolder( - binding: ItemStatusBinding, + itemView: View, private val statusActionListener: StatusActionListener, private val accountId: String -) : NotificationsViewHolder, StatusViewHolder(binding.root) { +) : NotificationsViewHolder, StatusViewHolder(itemView) { override fun bind( viewData: NotificationViewData.Concrete,