diff --git a/app/src/main/java/org/koitharu/kotatsu/bookmarks/ui/adapter/BookmarkListAD.kt b/app/src/main/java/org/koitharu/kotatsu/bookmarks/ui/adapter/BookmarkListAD.kt index b02ce9750..79ce1e06b 100644 --- a/app/src/main/java/org/koitharu/kotatsu/bookmarks/ui/adapter/BookmarkListAD.kt +++ b/app/src/main/java/org/koitharu/kotatsu/bookmarks/ui/adapter/BookmarkListAD.kt @@ -18,9 +18,8 @@ fun bookmarkListAD( lifecycleOwner: LifecycleOwner, clickListener: OnListItemClickListener, ) = adapterDelegateViewBinding( - { inflater, parent -> ItemBookmarkBinding.inflate(inflater, parent, false) } + { inflater, parent -> ItemBookmarkBinding.inflate(inflater, parent, false) }, ) { - val listener = AdapterDelegateClickListenerAdapter(this, clickListener) binding.root.setOnClickListener(listener) @@ -31,7 +30,7 @@ fun bookmarkListAD( referer(item.manga.publicUrl) placeholder(R.drawable.ic_placeholder) fallback(R.drawable.ic_placeholder) - error(R.drawable.ic_placeholder) + error(R.drawable.ic_error_placeholder) allowRgb565(true) lifecycle(lifecycleOwner) enqueueWith(coil) @@ -41,4 +40,4 @@ fun bookmarkListAD( onViewRecycled { binding.imageViewThumb.disposeImageRequest() } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/koitharu/kotatsu/bookmarks/ui/adapter/BookmarksGroupAD.kt b/app/src/main/java/org/koitharu/kotatsu/bookmarks/ui/adapter/BookmarksGroupAD.kt index b71d83662..7927ed287 100644 --- a/app/src/main/java/org/koitharu/kotatsu/bookmarks/ui/adapter/BookmarksGroupAD.kt +++ b/app/src/main/java/org/koitharu/kotatsu/bookmarks/ui/adapter/BookmarksGroupAD.kt @@ -24,9 +24,8 @@ fun bookmarksGroupAD( bookmarkClickListener: OnListItemClickListener, groupClickListener: OnListItemClickListener, ) = adapterDelegateViewBinding( - { layoutInflater, parent -> ItemBookmarksGroupBinding.inflate(layoutInflater, parent, false) } + { layoutInflater, parent -> ItemBookmarksGroupBinding.inflate(layoutInflater, parent, false) }, ) { - val viewListenerAdapter = object : View.OnClickListener, View.OnLongClickListener { override fun onClick(v: View) = groupClickListener.onItemClick(item, v) override fun onLongClick(v: View) = groupClickListener.onItemLongClick(item, v) @@ -50,7 +49,7 @@ fun bookmarksGroupAD( referer(item.manga.publicUrl) placeholder(R.drawable.ic_placeholder) fallback(R.drawable.ic_placeholder) - error(R.drawable.ic_placeholder) + error(R.drawable.ic_error_placeholder) allowRgb565(true) lifecycle(lifecycleOwner) enqueueWith(coil) @@ -62,4 +61,4 @@ fun bookmarksGroupAD( onViewRecycled { binding.imageViewCover.disposeImageRequest() } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsFragment.kt b/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsFragment.kt index 6d8a4d0f3..a55c0e8b5 100644 --- a/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/details/ui/DetailsFragment.kt @@ -211,7 +211,7 @@ class DetailsFragment : imageViewCover.newImageRequest(scrobbling.coverUrl)?.run { placeholder(R.drawable.ic_placeholder) fallback(R.drawable.ic_placeholder) - error(R.drawable.ic_placeholder) + error(R.drawable.ic_error_placeholder) lifecycle(viewLifecycleOwner) enqueueWith(coil) } @@ -316,6 +316,9 @@ class DetailsFragment : } val request = ImageRequest.Builder(context ?: return) .target(binding.imageViewCover) + .placeholder(R.drawable.ic_placeholder) + .fallback(R.drawable.ic_placeholder) + .error(R.drawable.ic_error_placeholder) .data(imageUrl) .crossfade(context) .referer(manga.publicUrl) diff --git a/app/src/main/java/org/koitharu/kotatsu/details/ui/scrobbling/ScrobblingInfoBottomSheet.kt b/app/src/main/java/org/koitharu/kotatsu/details/ui/scrobbling/ScrobblingInfoBottomSheet.kt index b6f086271..0ec3b545a 100644 --- a/app/src/main/java/org/koitharu/kotatsu/details/ui/scrobbling/ScrobblingInfoBottomSheet.kt +++ b/app/src/main/java/org/koitharu/kotatsu/details/ui/scrobbling/ScrobblingInfoBottomSheet.kt @@ -118,7 +118,7 @@ class ScrobblingInfoBottomSheet : .lifecycle(viewLifecycleOwner) .placeholder(R.drawable.ic_placeholder) .fallback(R.drawable.ic_placeholder) - .error(R.drawable.ic_placeholder) + .error(R.drawable.ic_error_placeholder) .enqueueWith(coil) } diff --git a/app/src/main/java/org/koitharu/kotatsu/download/ui/DownloadItemAD.kt b/app/src/main/java/org/koitharu/kotatsu/download/ui/DownloadItemAD.kt index 5dcf4fd9e..90bd30365 100644 --- a/app/src/main/java/org/koitharu/kotatsu/download/ui/DownloadItemAD.kt +++ b/app/src/main/java/org/koitharu/kotatsu/download/ui/DownloadItemAD.kt @@ -29,7 +29,7 @@ fun downloadItemAD( referer(state.manga.publicUrl) placeholder(state.cover) fallback(R.drawable.ic_placeholder) - error(R.drawable.ic_placeholder) + error(R.drawable.ic_error_placeholder) allowRgb565(true) enqueueWith(coil) } diff --git a/app/src/main/java/org/koitharu/kotatsu/favourites/ui/categories/adapter/CategoryAD.kt b/app/src/main/java/org/koitharu/kotatsu/favourites/ui/categories/adapter/CategoryAD.kt index 41f0f142a..db3ba22be 100644 --- a/app/src/main/java/org/koitharu/kotatsu/favourites/ui/categories/adapter/CategoryAD.kt +++ b/app/src/main/java/org/koitharu/kotatsu/favourites/ui/categories/adapter/CategoryAD.kt @@ -23,9 +23,8 @@ fun categoryAD( lifecycleOwner: LifecycleOwner, clickListener: FavouriteCategoriesListListener, ) = adapterDelegateViewBinding( - { inflater, parent -> ItemCategoryBinding.inflate(inflater, parent, false) } + { inflater, parent -> ItemCategoryBinding.inflate(inflater, parent, false) }, ) { - val eventListener = object : OnClickListener, OnLongClickListener, OnTouchListener { override fun onClick(v: View) = clickListener.onItemClick(item.category, binding.imageViewCover1) override fun onLongClick(v: View) = clickListener.onItemLongClick(item.category, binding.imageViewCover1) @@ -36,11 +35,11 @@ fun categoryAD( val backgroundColor = context.getThemeColor(android.R.attr.colorBackground) ImageViewCompat.setImageTintList( binding.imageViewCover3, - ColorStateList.valueOf(ColorUtils.setAlphaComponent(backgroundColor, 153)) + ColorStateList.valueOf(ColorUtils.setAlphaComponent(backgroundColor, 153)), ) ImageViewCompat.setImageTintList( binding.imageViewCover2, - ColorStateList.valueOf(ColorUtils.setAlphaComponent(backgroundColor, 76)) + ColorStateList.valueOf(ColorUtils.setAlphaComponent(backgroundColor, 76)), ) binding.imageViewCover2.backgroundTintList = ColorStateList.valueOf(ColorUtils.setAlphaComponent(backgroundColor, 76)) @@ -48,8 +47,10 @@ fun categoryAD( ColorStateList.valueOf(ColorUtils.setAlphaComponent(backgroundColor, 153)) val fallback = ColorDrawable(Color.TRANSPARENT) val coverViews = arrayOf(binding.imageViewCover1, binding.imageViewCover2, binding.imageViewCover3) - val crossFadeDuration = (context.resources.getInteger(R.integer.config_defaultAnimTime) * - context.animatorDurationScale).toInt() + val crossFadeDuration = ( + context.resources.getInteger(R.integer.config_defaultAnimTime) * + context.animatorDurationScale + ).toInt() itemView.setOnClickListener(eventListener) itemView.setOnLongClickListener(eventListener) itemView.setOnTouchListener(eventListener) @@ -74,7 +75,7 @@ fun categoryAD( placeholder(R.drawable.ic_placeholder) fallback(fallback) crossfade(crossFadeDuration * (i + 1)) - error(R.drawable.ic_placeholder) + error(R.drawable.ic_error_placeholder) allowRgb565(true) lifecycle(lifecycleOwner) enqueueWith(coil) @@ -87,4 +88,4 @@ fun categoryAD( it.disposeImageRequest() } } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaGridItemAD.kt b/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaGridItemAD.kt index 61328e10e..cc6191860 100644 --- a/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaGridItemAD.kt +++ b/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaGridItemAD.kt @@ -42,7 +42,7 @@ fun mangaGridItemAD( referer(item.manga.publicUrl) placeholder(R.drawable.ic_placeholder) fallback(R.drawable.ic_placeholder) - error(R.drawable.ic_placeholder) + error(R.drawable.ic_error_placeholder) allowRgb565(true) lifecycle(lifecycleOwner) enqueueWith(coil) diff --git a/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaListDetailedItemAD.kt b/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaListDetailedItemAD.kt index b5b94fbdf..15b8dd6ba 100644 --- a/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaListDetailedItemAD.kt +++ b/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaListDetailedItemAD.kt @@ -18,9 +18,8 @@ fun mangaListDetailedItemAD( lifecycleOwner: LifecycleOwner, clickListener: OnListItemClickListener, ) = adapterDelegateViewBinding( - { inflater, parent -> ItemMangaListDetailsBinding.inflate(inflater, parent, false) } + { inflater, parent -> ItemMangaListDetailsBinding.inflate(inflater, parent, false) }, ) { - var badge: BadgeDrawable? = null itemView.setOnClickListener { @@ -38,7 +37,7 @@ fun mangaListDetailedItemAD( referer(item.manga.publicUrl) placeholder(R.drawable.ic_placeholder) fallback(R.drawable.ic_placeholder) - error(R.drawable.ic_placeholder) + error(R.drawable.ic_error_placeholder) allowRgb565(true) lifecycle(lifecycleOwner) enqueueWith(coil) @@ -54,4 +53,4 @@ fun mangaListDetailedItemAD( badge = null binding.imageViewCover.disposeImageRequest() } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaListItemAD.kt b/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaListItemAD.kt index 8de5943b4..a18743022 100644 --- a/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaListItemAD.kt +++ b/app/src/main/java/org/koitharu/kotatsu/list/ui/adapter/MangaListItemAD.kt @@ -17,9 +17,8 @@ fun mangaListItemAD( lifecycleOwner: LifecycleOwner, clickListener: OnListItemClickListener, ) = adapterDelegateViewBinding( - { inflater, parent -> ItemMangaListBinding.inflate(inflater, parent, false) } + { inflater, parent -> ItemMangaListBinding.inflate(inflater, parent, false) }, ) { - var badge: BadgeDrawable? = null itemView.setOnClickListener { @@ -36,7 +35,7 @@ fun mangaListItemAD( referer(item.manga.publicUrl) placeholder(R.drawable.ic_placeholder) fallback(R.drawable.ic_placeholder) - error(R.drawable.ic_placeholder) + error(R.drawable.ic_error_placeholder) allowRgb565(true) lifecycle(lifecycleOwner) enqueueWith(coil) @@ -49,4 +48,4 @@ fun mangaListItemAD( badge = null binding.imageViewCover.disposeImageRequest() } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/koitharu/kotatsu/scrobbling/ui/selector/adapter/ShikimoriMangaAD.kt b/app/src/main/java/org/koitharu/kotatsu/scrobbling/ui/selector/adapter/ShikimoriMangaAD.kt index c9f76e965..8ce317320 100644 --- a/app/src/main/java/org/koitharu/kotatsu/scrobbling/ui/selector/adapter/ShikimoriMangaAD.kt +++ b/app/src/main/java/org/koitharu/kotatsu/scrobbling/ui/selector/adapter/ShikimoriMangaAD.kt @@ -18,9 +18,8 @@ fun shikimoriMangaAD( coil: ImageLoader, clickListener: OnListItemClickListener, ) = adapterDelegateViewBinding( - { inflater, parent -> ItemMangaListBinding.inflate(inflater, parent, false) } + { inflater, parent -> ItemMangaListBinding.inflate(inflater, parent, false) }, ) { - itemView.setOnClickListener { clickListener.onItemClick(item, it) } @@ -31,7 +30,7 @@ fun shikimoriMangaAD( binding.imageViewCover.newImageRequest(item.cover)?.run { placeholder(R.drawable.ic_placeholder) fallback(R.drawable.ic_placeholder) - error(R.drawable.ic_placeholder) + error(R.drawable.ic_error_placeholder) allowRgb565(true) lifecycle(lifecycleOwner) enqueueWith(coil) @@ -41,4 +40,4 @@ fun shikimoriMangaAD( onViewRecycled { binding.imageViewCover.disposeImageRequest() } -} \ No newline at end of file +} diff --git a/app/src/main/java/org/koitharu/kotatsu/search/ui/suggestion/adapter/SearchSuggestionsMangaListAD.kt b/app/src/main/java/org/koitharu/kotatsu/search/ui/suggestion/adapter/SearchSuggestionsMangaListAD.kt index 7e35fa201..7c108274a 100644 --- a/app/src/main/java/org/koitharu/kotatsu/search/ui/suggestion/adapter/SearchSuggestionsMangaListAD.kt +++ b/app/src/main/java/org/koitharu/kotatsu/search/ui/suggestion/adapter/SearchSuggestionsMangaListAD.kt @@ -24,7 +24,6 @@ fun searchSuggestionMangaListAD( lifecycleOwner: LifecycleOwner, listener: SearchSuggestionListener, ) = adapterDelegate(R.layout.item_search_suggestion_manga_list) { - val adapter = AsyncListDifferDelegationAdapter( SuggestionMangaDiffCallback(), searchSuggestionMangaGridAD(coil, lifecycleOwner, listener), @@ -49,9 +48,8 @@ private fun searchSuggestionMangaGridAD( lifecycleOwner: LifecycleOwner, listener: SearchSuggestionListener, ) = adapterDelegateViewBinding( - { layoutInflater, parent -> ItemSearchSuggestionMangaGridBinding.inflate(layoutInflater, parent, false) } + { layoutInflater, parent -> ItemSearchSuggestionMangaGridBinding.inflate(layoutInflater, parent, false) }, ) { - itemView.setOnClickListener { listener.onMangaClick(item) } @@ -60,7 +58,7 @@ private fun searchSuggestionMangaGridAD( binding.imageViewCover.newImageRequest(item.coverUrl)?.run { placeholder(R.drawable.ic_placeholder) fallback(R.drawable.ic_placeholder) - error(R.drawable.ic_placeholder) + error(R.drawable.ic_error_placeholder) allowRgb565(true) lifecycle(lifecycleOwner) enqueueWith(coil) @@ -82,5 +80,4 @@ private class SuggestionMangaDiffCallback : DiffUtil.ItemCallback() { override fun areContentsTheSame(oldItem: Manga, newItem: Manga): Boolean { return oldItem.title == newItem.title && oldItem.coverUrl == newItem.coverUrl } - -} \ No newline at end of file +} diff --git a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/adapter/FeedItemAD.kt b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/adapter/FeedItemAD.kt index 63af05a91..522dad2f8 100644 --- a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/adapter/FeedItemAD.kt +++ b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/adapter/FeedItemAD.kt @@ -30,7 +30,7 @@ fun feedItemAD( binding.imageViewCover.newImageRequest(item.imageUrl)?.run { placeholder(R.drawable.ic_placeholder) fallback(R.drawable.ic_placeholder) - error(R.drawable.ic_placeholder) + error(R.drawable.ic_error_placeholder) allowRgb565(true) lifecycle(lifecycleOwner) enqueueWith(coil) @@ -46,4 +46,4 @@ fun feedItemAD( onViewRecycled { binding.imageViewCover.disposeImageRequest() } -} \ No newline at end of file +} diff --git a/app/src/main/res/drawable/ic_error_placeholder.xml b/app/src/main/res/drawable/ic_error_placeholder.xml new file mode 100644 index 000000000..5900c0e9e --- /dev/null +++ b/app/src/main/res/drawable/ic_error_placeholder.xml @@ -0,0 +1,11 @@ + + + diff --git a/app/src/main/res/drawable/ic_placeholder.xml b/app/src/main/res/drawable/ic_placeholder.xml index 2bbc4f567..ba8dd489f 100644 --- a/app/src/main/res/drawable/ic_placeholder.xml +++ b/app/src/main/res/drawable/ic_placeholder.xml @@ -7,8 +7,5 @@ android:viewportHeight="60"> - + android:pathData="M21.7,40c-0.4,0 -0.8,-0.2 -1.2,-0.5c-0.3,-0.3 -0.5,-0.7 -0.5,-1.2V21.7c0,-0.4 0.2,-0.8 0.5,-1.2s0.7,-0.5 1.2,-0.5h16.7c0.4,0 0.8,0.2 1.2,0.5s0.5,0.7 0.5,1.2v16.7c0,0.4 -0.2,0.8 -0.5,1.2c-0.3,0.3 -0.7,0.5 -1.2,0.5H21.7zM21.7,38.4h16.7V21.7H21.7V38.4zM23.2,35.7h13.6l-4.1,-5.5L29.1,35l-2.6,-3.5C26.5,31.4 23.2,35.7 23.2,35.7z" /> diff --git a/app/src/main/res/layout-w600dp/fragment_details.xml b/app/src/main/res/layout-w600dp/fragment_details.xml index 484c746d1..5365076fe 100644 --- a/app/src/main/res/layout-w600dp/fragment_details.xml +++ b/app/src/main/res/layout-w600dp/fragment_details.xml @@ -19,6 +19,7 @@ android:layout_height="0dp" android:layout_marginStart="16dp" android:layout_marginTop="16dp" + android:background="?colorSecondaryContainer" android:foreground="?selectableItemBackground" android:scaleType="centerCrop" app:layout_constraintDimensionRatio="H,13:18" diff --git a/app/src/main/res/layout/fragment_details.xml b/app/src/main/res/layout/fragment_details.xml index a475058d2..feb410049 100644 --- a/app/src/main/res/layout/fragment_details.xml +++ b/app/src/main/res/layout/fragment_details.xml @@ -19,6 +19,7 @@ android:layout_height="0dp" android:layout_marginStart="16dp" android:layout_marginTop="16dp" + android:background="?colorSecondaryContainer" android:foreground="?selectableItemBackground" android:scaleType="centerCrop" app:layout_constraintDimensionRatio="H,13:18" diff --git a/app/src/main/res/layout/fragment_explore.xml b/app/src/main/res/layout/fragment_explore.xml index 6d0be0260..dd7b22355 100644 --- a/app/src/main/res/layout/fragment_explore.xml +++ b/app/src/main/res/layout/fragment_explore.xml @@ -14,4 +14,4 @@ android:paddingBottom="@dimen/grid_spacing_outer" android:scrollbars="vertical" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" - tools:listitem="@layout/item_explore_source" /> \ No newline at end of file + tools:listitem="@layout/item_explore_source" />