diff --git a/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/EmptyStateListAD.kt b/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/EmptyStateListAD.kt index 8385090ab..0bf2f1309 100644 --- a/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/EmptyStateListAD.kt +++ b/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/EmptyStateListAD.kt @@ -1,23 +1,31 @@ package org.koitharu.kotatsu.list.ui.adapter +import coil.ImageLoader import com.hannesdorfmann.adapterdelegates4.dsl.adapterDelegateViewBinding import org.koitharu.kotatsu.databinding.ItemEmptyStateBinding import org.koitharu.kotatsu.list.ui.model.EmptyState import org.koitharu.kotatsu.list.ui.model.ListModel +import org.koitharu.kotatsu.utils.ext.disposeImageRequest +import org.koitharu.kotatsu.utils.ext.enqueueWith +import org.koitharu.kotatsu.utils.ext.newImageRequest import org.koitharu.kotatsu.utils.ext.setTextAndVisible fun emptyStateListAD( + coil: ImageLoader, listener: MangaListListener, ) = adapterDelegateViewBinding( - { inflater, parent -> ItemEmptyStateBinding.inflate(inflater, parent, false) } + { inflater, parent -> ItemEmptyStateBinding.inflate(inflater, parent, false) }, ) { - binding.buttonRetry.setOnClickListener { listener.onEmptyActionClick() } bind { - binding.icon.setImageResource(item.icon) + binding.icon.newImageRequest(item.icon)?.enqueueWith(coil) binding.textPrimary.setText(item.textPrimary) binding.textSecondary.setTextAndVisible(item.textSecondary) binding.buttonRetry.setTextAndVisible(item.actionStringRes) } + + onViewRecycled { + binding.icon.disposeImageRequest() + } } \ No newline at end of file diff --git a/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaListAdapter.kt b/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaListAdapter.kt index 6b69445c5..9efaca7ec 100644 --- a/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaListAdapter.kt +++ b/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaListAdapter.kt @@ -4,9 +4,9 @@ import androidx.lifecycle.LifecycleOwner import androidx.recyclerview.widget.DiffUtil import coil.ImageLoader import com.hannesdorfmann.adapterdelegates4.AsyncListDifferDelegationAdapter +import kotlin.jvm.internal.Intrinsics import org.koitharu.kotatsu.core.ui.DateTimeAgo import org.koitharu.kotatsu.list.ui.model.* -import kotlin.jvm.internal.Intrinsics class MangaListAdapter( coil: ImageLoader, @@ -24,7 +24,7 @@ class MangaListAdapter( .addDelegate(ITEM_TYPE_DATE, relatedDateItemAD()) .addDelegate(ITEM_TYPE_ERROR_STATE, errorStateListAD(listener)) .addDelegate(ITEM_TYPE_ERROR_FOOTER, errorFooterAD(listener)) - .addDelegate(ITEM_TYPE_EMPTY, emptyStateListAD(listener)) + .addDelegate(ITEM_TYPE_EMPTY, emptyStateListAD(coil, listener)) .addDelegate(ITEM_TYPE_HEADER, listHeaderAD()) .addDelegate(ITEM_TYPE_FILTER, currentFilterAD(listener)) .addDelegate(ITEM_TYPE_HEADER_FILTER, listHeaderWithFilterAD(listener)) diff --git a/app/src/main/java/org/koitharu/kotatsu/search/ui/multi/adapter/MultiSearchAdapter.kt b/app/src/main/java/org/koitharu/kotatsu/search/ui/multi/adapter/MultiSearchAdapter.kt index 35afb49d4..2d46c03b2 100644 --- a/app/src/main/java/org/koitharu/kotatsu/search/ui/multi/adapter/MultiSearchAdapter.kt +++ b/app/src/main/java/org/koitharu/kotatsu/search/ui/multi/adapter/MultiSearchAdapter.kt @@ -5,12 +5,12 @@ import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.RecyclerView.RecycledViewPool import coil.ImageLoader import com.hannesdorfmann.adapterdelegates4.AsyncListDifferDelegationAdapter +import kotlin.jvm.internal.Intrinsics import org.koitharu.kotatsu.base.ui.list.OnListItemClickListener import org.koitharu.kotatsu.list.ui.MangaSelectionDecoration import org.koitharu.kotatsu.list.ui.adapter.* import org.koitharu.kotatsu.list.ui.model.ListModel import org.koitharu.kotatsu.search.ui.multi.MultiSearchListModel -import kotlin.jvm.internal.Intrinsics class MultiSearchAdapter( lifecycleOwner: LifecycleOwner, @@ -33,11 +33,11 @@ class MultiSearchAdapter( selectionDecoration = selectionDecoration, listener = listener, itemClickListener = itemClickListener, - ) + ), ) .addDelegate(loadingStateAD()) .addDelegate(loadingFooterAD()) - .addDelegate(emptyStateListAD(listener)) + .addDelegate(emptyStateListAD(coil, listener)) .addDelegate(errorStateListAD(listener)) } diff --git a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/adapter/FeedAdapter.kt b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/adapter/FeedAdapter.kt index bebf7baae..cc6acfe93 100644 --- a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/adapter/FeedAdapter.kt +++ b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/adapter/FeedAdapter.kt @@ -4,11 +4,11 @@ import androidx.lifecycle.LifecycleOwner import androidx.recyclerview.widget.DiffUtil import coil.ImageLoader import com.hannesdorfmann.adapterdelegates4.AsyncListDifferDelegationAdapter +import kotlin.jvm.internal.Intrinsics import org.koitharu.kotatsu.core.ui.DateTimeAgo import org.koitharu.kotatsu.list.ui.adapter.* import org.koitharu.kotatsu.list.ui.model.ListModel import org.koitharu.kotatsu.tracker.ui.model.FeedItem -import kotlin.jvm.internal.Intrinsics class FeedAdapter( coil: ImageLoader, @@ -23,7 +23,7 @@ class FeedAdapter( .addDelegate(ITEM_TYPE_LOADING_STATE, loadingStateAD()) .addDelegate(ITEM_TYPE_ERROR_FOOTER, errorFooterAD(listener)) .addDelegate(ITEM_TYPE_ERROR_STATE, errorStateListAD(listener)) - .addDelegate(ITEM_TYPE_EMPTY, emptyStateListAD(listener)) + .addDelegate(ITEM_TYPE_EMPTY, emptyStateListAD(coil, listener)) .addDelegate(ITEM_TYPE_HEADER, listHeaderAD()) .addDelegate(ITEM_TYPE_DATE_HEADER, relatedDateItemAD()) }