Update image placeholders
This commit is contained in:
@@ -18,9 +18,8 @@ fun bookmarkListAD(
|
|||||||
lifecycleOwner: LifecycleOwner,
|
lifecycleOwner: LifecycleOwner,
|
||||||
clickListener: OnListItemClickListener<Bookmark>,
|
clickListener: OnListItemClickListener<Bookmark>,
|
||||||
) = adapterDelegateViewBinding<Bookmark, Bookmark, ItemBookmarkBinding>(
|
) = adapterDelegateViewBinding<Bookmark, Bookmark, ItemBookmarkBinding>(
|
||||||
{ inflater, parent -> ItemBookmarkBinding.inflate(inflater, parent, false) }
|
{ inflater, parent -> ItemBookmarkBinding.inflate(inflater, parent, false) },
|
||||||
) {
|
) {
|
||||||
|
|
||||||
val listener = AdapterDelegateClickListenerAdapter(this, clickListener)
|
val listener = AdapterDelegateClickListenerAdapter(this, clickListener)
|
||||||
|
|
||||||
binding.root.setOnClickListener(listener)
|
binding.root.setOnClickListener(listener)
|
||||||
@@ -31,7 +30,7 @@ fun bookmarkListAD(
|
|||||||
referer(item.manga.publicUrl)
|
referer(item.manga.publicUrl)
|
||||||
placeholder(R.drawable.ic_placeholder)
|
placeholder(R.drawable.ic_placeholder)
|
||||||
fallback(R.drawable.ic_placeholder)
|
fallback(R.drawable.ic_placeholder)
|
||||||
error(R.drawable.ic_placeholder)
|
error(R.drawable.ic_error_placeholder)
|
||||||
allowRgb565(true)
|
allowRgb565(true)
|
||||||
lifecycle(lifecycleOwner)
|
lifecycle(lifecycleOwner)
|
||||||
enqueueWith(coil)
|
enqueueWith(coil)
|
||||||
@@ -41,4 +40,4 @@ fun bookmarkListAD(
|
|||||||
onViewRecycled {
|
onViewRecycled {
|
||||||
binding.imageViewThumb.disposeImageRequest()
|
binding.imageViewThumb.disposeImageRequest()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,9 +24,8 @@ fun bookmarksGroupAD(
|
|||||||
bookmarkClickListener: OnListItemClickListener<Bookmark>,
|
bookmarkClickListener: OnListItemClickListener<Bookmark>,
|
||||||
groupClickListener: OnListItemClickListener<BookmarksGroup>,
|
groupClickListener: OnListItemClickListener<BookmarksGroup>,
|
||||||
) = adapterDelegateViewBinding<BookmarksGroup, ListModel, ItemBookmarksGroupBinding>(
|
) = adapterDelegateViewBinding<BookmarksGroup, ListModel, ItemBookmarksGroupBinding>(
|
||||||
{ layoutInflater, parent -> ItemBookmarksGroupBinding.inflate(layoutInflater, parent, false) }
|
{ layoutInflater, parent -> ItemBookmarksGroupBinding.inflate(layoutInflater, parent, false) },
|
||||||
) {
|
) {
|
||||||
|
|
||||||
val viewListenerAdapter = object : View.OnClickListener, View.OnLongClickListener {
|
val viewListenerAdapter = object : View.OnClickListener, View.OnLongClickListener {
|
||||||
override fun onClick(v: View) = groupClickListener.onItemClick(item, v)
|
override fun onClick(v: View) = groupClickListener.onItemClick(item, v)
|
||||||
override fun onLongClick(v: View) = groupClickListener.onItemLongClick(item, v)
|
override fun onLongClick(v: View) = groupClickListener.onItemLongClick(item, v)
|
||||||
@@ -50,7 +49,7 @@ fun bookmarksGroupAD(
|
|||||||
referer(item.manga.publicUrl)
|
referer(item.manga.publicUrl)
|
||||||
placeholder(R.drawable.ic_placeholder)
|
placeholder(R.drawable.ic_placeholder)
|
||||||
fallback(R.drawable.ic_placeholder)
|
fallback(R.drawable.ic_placeholder)
|
||||||
error(R.drawable.ic_placeholder)
|
error(R.drawable.ic_error_placeholder)
|
||||||
allowRgb565(true)
|
allowRgb565(true)
|
||||||
lifecycle(lifecycleOwner)
|
lifecycle(lifecycleOwner)
|
||||||
enqueueWith(coil)
|
enqueueWith(coil)
|
||||||
@@ -62,4 +61,4 @@ fun bookmarksGroupAD(
|
|||||||
onViewRecycled {
|
onViewRecycled {
|
||||||
binding.imageViewCover.disposeImageRequest()
|
binding.imageViewCover.disposeImageRequest()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -211,7 +211,7 @@ class DetailsFragment :
|
|||||||
imageViewCover.newImageRequest(scrobbling.coverUrl)?.run {
|
imageViewCover.newImageRequest(scrobbling.coverUrl)?.run {
|
||||||
placeholder(R.drawable.ic_placeholder)
|
placeholder(R.drawable.ic_placeholder)
|
||||||
fallback(R.drawable.ic_placeholder)
|
fallback(R.drawable.ic_placeholder)
|
||||||
error(R.drawable.ic_placeholder)
|
error(R.drawable.ic_error_placeholder)
|
||||||
lifecycle(viewLifecycleOwner)
|
lifecycle(viewLifecycleOwner)
|
||||||
enqueueWith(coil)
|
enqueueWith(coil)
|
||||||
}
|
}
|
||||||
@@ -316,6 +316,9 @@ class DetailsFragment :
|
|||||||
}
|
}
|
||||||
val request = ImageRequest.Builder(context ?: return)
|
val request = ImageRequest.Builder(context ?: return)
|
||||||
.target(binding.imageViewCover)
|
.target(binding.imageViewCover)
|
||||||
|
.placeholder(R.drawable.ic_placeholder)
|
||||||
|
.fallback(R.drawable.ic_placeholder)
|
||||||
|
.error(R.drawable.ic_error_placeholder)
|
||||||
.data(imageUrl)
|
.data(imageUrl)
|
||||||
.crossfade(context)
|
.crossfade(context)
|
||||||
.referer(manga.publicUrl)
|
.referer(manga.publicUrl)
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ class ScrobblingInfoBottomSheet :
|
|||||||
.lifecycle(viewLifecycleOwner)
|
.lifecycle(viewLifecycleOwner)
|
||||||
.placeholder(R.drawable.ic_placeholder)
|
.placeholder(R.drawable.ic_placeholder)
|
||||||
.fallback(R.drawable.ic_placeholder)
|
.fallback(R.drawable.ic_placeholder)
|
||||||
.error(R.drawable.ic_placeholder)
|
.error(R.drawable.ic_error_placeholder)
|
||||||
.enqueueWith(coil)
|
.enqueueWith(coil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ fun downloadItemAD(
|
|||||||
referer(state.manga.publicUrl)
|
referer(state.manga.publicUrl)
|
||||||
placeholder(state.cover)
|
placeholder(state.cover)
|
||||||
fallback(R.drawable.ic_placeholder)
|
fallback(R.drawable.ic_placeholder)
|
||||||
error(R.drawable.ic_placeholder)
|
error(R.drawable.ic_error_placeholder)
|
||||||
allowRgb565(true)
|
allowRgb565(true)
|
||||||
enqueueWith(coil)
|
enqueueWith(coil)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,9 +23,8 @@ fun categoryAD(
|
|||||||
lifecycleOwner: LifecycleOwner,
|
lifecycleOwner: LifecycleOwner,
|
||||||
clickListener: FavouriteCategoriesListListener,
|
clickListener: FavouriteCategoriesListListener,
|
||||||
) = adapterDelegateViewBinding<CategoryListModel, ListModel, ItemCategoryBinding>(
|
) = adapterDelegateViewBinding<CategoryListModel, ListModel, ItemCategoryBinding>(
|
||||||
{ inflater, parent -> ItemCategoryBinding.inflate(inflater, parent, false) }
|
{ inflater, parent -> ItemCategoryBinding.inflate(inflater, parent, false) },
|
||||||
) {
|
) {
|
||||||
|
|
||||||
val eventListener = object : OnClickListener, OnLongClickListener, OnTouchListener {
|
val eventListener = object : OnClickListener, OnLongClickListener, OnTouchListener {
|
||||||
override fun onClick(v: View) = clickListener.onItemClick(item.category, binding.imageViewCover1)
|
override fun onClick(v: View) = clickListener.onItemClick(item.category, binding.imageViewCover1)
|
||||||
override fun onLongClick(v: View) = clickListener.onItemLongClick(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)
|
val backgroundColor = context.getThemeColor(android.R.attr.colorBackground)
|
||||||
ImageViewCompat.setImageTintList(
|
ImageViewCompat.setImageTintList(
|
||||||
binding.imageViewCover3,
|
binding.imageViewCover3,
|
||||||
ColorStateList.valueOf(ColorUtils.setAlphaComponent(backgroundColor, 153))
|
ColorStateList.valueOf(ColorUtils.setAlphaComponent(backgroundColor, 153)),
|
||||||
)
|
)
|
||||||
ImageViewCompat.setImageTintList(
|
ImageViewCompat.setImageTintList(
|
||||||
binding.imageViewCover2,
|
binding.imageViewCover2,
|
||||||
ColorStateList.valueOf(ColorUtils.setAlphaComponent(backgroundColor, 76))
|
ColorStateList.valueOf(ColorUtils.setAlphaComponent(backgroundColor, 76)),
|
||||||
)
|
)
|
||||||
binding.imageViewCover2.backgroundTintList =
|
binding.imageViewCover2.backgroundTintList =
|
||||||
ColorStateList.valueOf(ColorUtils.setAlphaComponent(backgroundColor, 76))
|
ColorStateList.valueOf(ColorUtils.setAlphaComponent(backgroundColor, 76))
|
||||||
@@ -48,8 +47,10 @@ fun categoryAD(
|
|||||||
ColorStateList.valueOf(ColorUtils.setAlphaComponent(backgroundColor, 153))
|
ColorStateList.valueOf(ColorUtils.setAlphaComponent(backgroundColor, 153))
|
||||||
val fallback = ColorDrawable(Color.TRANSPARENT)
|
val fallback = ColorDrawable(Color.TRANSPARENT)
|
||||||
val coverViews = arrayOf(binding.imageViewCover1, binding.imageViewCover2, binding.imageViewCover3)
|
val coverViews = arrayOf(binding.imageViewCover1, binding.imageViewCover2, binding.imageViewCover3)
|
||||||
val crossFadeDuration = (context.resources.getInteger(R.integer.config_defaultAnimTime) *
|
val crossFadeDuration = (
|
||||||
context.animatorDurationScale).toInt()
|
context.resources.getInteger(R.integer.config_defaultAnimTime) *
|
||||||
|
context.animatorDurationScale
|
||||||
|
).toInt()
|
||||||
itemView.setOnClickListener(eventListener)
|
itemView.setOnClickListener(eventListener)
|
||||||
itemView.setOnLongClickListener(eventListener)
|
itemView.setOnLongClickListener(eventListener)
|
||||||
itemView.setOnTouchListener(eventListener)
|
itemView.setOnTouchListener(eventListener)
|
||||||
@@ -74,7 +75,7 @@ fun categoryAD(
|
|||||||
placeholder(R.drawable.ic_placeholder)
|
placeholder(R.drawable.ic_placeholder)
|
||||||
fallback(fallback)
|
fallback(fallback)
|
||||||
crossfade(crossFadeDuration * (i + 1))
|
crossfade(crossFadeDuration * (i + 1))
|
||||||
error(R.drawable.ic_placeholder)
|
error(R.drawable.ic_error_placeholder)
|
||||||
allowRgb565(true)
|
allowRgb565(true)
|
||||||
lifecycle(lifecycleOwner)
|
lifecycle(lifecycleOwner)
|
||||||
enqueueWith(coil)
|
enqueueWith(coil)
|
||||||
@@ -87,4 +88,4 @@ fun categoryAD(
|
|||||||
it.disposeImageRequest()
|
it.disposeImageRequest()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ fun mangaGridItemAD(
|
|||||||
referer(item.manga.publicUrl)
|
referer(item.manga.publicUrl)
|
||||||
placeholder(R.drawable.ic_placeholder)
|
placeholder(R.drawable.ic_placeholder)
|
||||||
fallback(R.drawable.ic_placeholder)
|
fallback(R.drawable.ic_placeholder)
|
||||||
error(R.drawable.ic_placeholder)
|
error(R.drawable.ic_error_placeholder)
|
||||||
allowRgb565(true)
|
allowRgb565(true)
|
||||||
lifecycle(lifecycleOwner)
|
lifecycle(lifecycleOwner)
|
||||||
enqueueWith(coil)
|
enqueueWith(coil)
|
||||||
|
|||||||
@@ -18,9 +18,8 @@ fun mangaListDetailedItemAD(
|
|||||||
lifecycleOwner: LifecycleOwner,
|
lifecycleOwner: LifecycleOwner,
|
||||||
clickListener: OnListItemClickListener<Manga>,
|
clickListener: OnListItemClickListener<Manga>,
|
||||||
) = adapterDelegateViewBinding<MangaListDetailedModel, ListModel, ItemMangaListDetailsBinding>(
|
) = adapterDelegateViewBinding<MangaListDetailedModel, ListModel, ItemMangaListDetailsBinding>(
|
||||||
{ inflater, parent -> ItemMangaListDetailsBinding.inflate(inflater, parent, false) }
|
{ inflater, parent -> ItemMangaListDetailsBinding.inflate(inflater, parent, false) },
|
||||||
) {
|
) {
|
||||||
|
|
||||||
var badge: BadgeDrawable? = null
|
var badge: BadgeDrawable? = null
|
||||||
|
|
||||||
itemView.setOnClickListener {
|
itemView.setOnClickListener {
|
||||||
@@ -38,7 +37,7 @@ fun mangaListDetailedItemAD(
|
|||||||
referer(item.manga.publicUrl)
|
referer(item.manga.publicUrl)
|
||||||
placeholder(R.drawable.ic_placeholder)
|
placeholder(R.drawable.ic_placeholder)
|
||||||
fallback(R.drawable.ic_placeholder)
|
fallback(R.drawable.ic_placeholder)
|
||||||
error(R.drawable.ic_placeholder)
|
error(R.drawable.ic_error_placeholder)
|
||||||
allowRgb565(true)
|
allowRgb565(true)
|
||||||
lifecycle(lifecycleOwner)
|
lifecycle(lifecycleOwner)
|
||||||
enqueueWith(coil)
|
enqueueWith(coil)
|
||||||
@@ -54,4 +53,4 @@ fun mangaListDetailedItemAD(
|
|||||||
badge = null
|
badge = null
|
||||||
binding.imageViewCover.disposeImageRequest()
|
binding.imageViewCover.disposeImageRequest()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,9 +17,8 @@ fun mangaListItemAD(
|
|||||||
lifecycleOwner: LifecycleOwner,
|
lifecycleOwner: LifecycleOwner,
|
||||||
clickListener: OnListItemClickListener<Manga>,
|
clickListener: OnListItemClickListener<Manga>,
|
||||||
) = adapterDelegateViewBinding<MangaListModel, ListModel, ItemMangaListBinding>(
|
) = adapterDelegateViewBinding<MangaListModel, ListModel, ItemMangaListBinding>(
|
||||||
{ inflater, parent -> ItemMangaListBinding.inflate(inflater, parent, false) }
|
{ inflater, parent -> ItemMangaListBinding.inflate(inflater, parent, false) },
|
||||||
) {
|
) {
|
||||||
|
|
||||||
var badge: BadgeDrawable? = null
|
var badge: BadgeDrawable? = null
|
||||||
|
|
||||||
itemView.setOnClickListener {
|
itemView.setOnClickListener {
|
||||||
@@ -36,7 +35,7 @@ fun mangaListItemAD(
|
|||||||
referer(item.manga.publicUrl)
|
referer(item.manga.publicUrl)
|
||||||
placeholder(R.drawable.ic_placeholder)
|
placeholder(R.drawable.ic_placeholder)
|
||||||
fallback(R.drawable.ic_placeholder)
|
fallback(R.drawable.ic_placeholder)
|
||||||
error(R.drawable.ic_placeholder)
|
error(R.drawable.ic_error_placeholder)
|
||||||
allowRgb565(true)
|
allowRgb565(true)
|
||||||
lifecycle(lifecycleOwner)
|
lifecycle(lifecycleOwner)
|
||||||
enqueueWith(coil)
|
enqueueWith(coil)
|
||||||
@@ -49,4 +48,4 @@ fun mangaListItemAD(
|
|||||||
badge = null
|
badge = null
|
||||||
binding.imageViewCover.disposeImageRequest()
|
binding.imageViewCover.disposeImageRequest()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,9 +18,8 @@ fun shikimoriMangaAD(
|
|||||||
coil: ImageLoader,
|
coil: ImageLoader,
|
||||||
clickListener: OnListItemClickListener<ScrobblerManga>,
|
clickListener: OnListItemClickListener<ScrobblerManga>,
|
||||||
) = adapterDelegateViewBinding<ScrobblerManga, ListModel, ItemMangaListBinding>(
|
) = adapterDelegateViewBinding<ScrobblerManga, ListModel, ItemMangaListBinding>(
|
||||||
{ inflater, parent -> ItemMangaListBinding.inflate(inflater, parent, false) }
|
{ inflater, parent -> ItemMangaListBinding.inflate(inflater, parent, false) },
|
||||||
) {
|
) {
|
||||||
|
|
||||||
itemView.setOnClickListener {
|
itemView.setOnClickListener {
|
||||||
clickListener.onItemClick(item, it)
|
clickListener.onItemClick(item, it)
|
||||||
}
|
}
|
||||||
@@ -31,7 +30,7 @@ fun shikimoriMangaAD(
|
|||||||
binding.imageViewCover.newImageRequest(item.cover)?.run {
|
binding.imageViewCover.newImageRequest(item.cover)?.run {
|
||||||
placeholder(R.drawable.ic_placeholder)
|
placeholder(R.drawable.ic_placeholder)
|
||||||
fallback(R.drawable.ic_placeholder)
|
fallback(R.drawable.ic_placeholder)
|
||||||
error(R.drawable.ic_placeholder)
|
error(R.drawable.ic_error_placeholder)
|
||||||
allowRgb565(true)
|
allowRgb565(true)
|
||||||
lifecycle(lifecycleOwner)
|
lifecycle(lifecycleOwner)
|
||||||
enqueueWith(coil)
|
enqueueWith(coil)
|
||||||
@@ -41,4 +40,4 @@ fun shikimoriMangaAD(
|
|||||||
onViewRecycled {
|
onViewRecycled {
|
||||||
binding.imageViewCover.disposeImageRequest()
|
binding.imageViewCover.disposeImageRequest()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,6 @@ fun searchSuggestionMangaListAD(
|
|||||||
lifecycleOwner: LifecycleOwner,
|
lifecycleOwner: LifecycleOwner,
|
||||||
listener: SearchSuggestionListener,
|
listener: SearchSuggestionListener,
|
||||||
) = adapterDelegate<SearchSuggestionItem.MangaList, SearchSuggestionItem>(R.layout.item_search_suggestion_manga_list) {
|
) = adapterDelegate<SearchSuggestionItem.MangaList, SearchSuggestionItem>(R.layout.item_search_suggestion_manga_list) {
|
||||||
|
|
||||||
val adapter = AsyncListDifferDelegationAdapter(
|
val adapter = AsyncListDifferDelegationAdapter(
|
||||||
SuggestionMangaDiffCallback(),
|
SuggestionMangaDiffCallback(),
|
||||||
searchSuggestionMangaGridAD(coil, lifecycleOwner, listener),
|
searchSuggestionMangaGridAD(coil, lifecycleOwner, listener),
|
||||||
@@ -49,9 +48,8 @@ private fun searchSuggestionMangaGridAD(
|
|||||||
lifecycleOwner: LifecycleOwner,
|
lifecycleOwner: LifecycleOwner,
|
||||||
listener: SearchSuggestionListener,
|
listener: SearchSuggestionListener,
|
||||||
) = adapterDelegateViewBinding<Manga, Manga, ItemSearchSuggestionMangaGridBinding>(
|
) = adapterDelegateViewBinding<Manga, Manga, ItemSearchSuggestionMangaGridBinding>(
|
||||||
{ layoutInflater, parent -> ItemSearchSuggestionMangaGridBinding.inflate(layoutInflater, parent, false) }
|
{ layoutInflater, parent -> ItemSearchSuggestionMangaGridBinding.inflate(layoutInflater, parent, false) },
|
||||||
) {
|
) {
|
||||||
|
|
||||||
itemView.setOnClickListener {
|
itemView.setOnClickListener {
|
||||||
listener.onMangaClick(item)
|
listener.onMangaClick(item)
|
||||||
}
|
}
|
||||||
@@ -60,7 +58,7 @@ private fun searchSuggestionMangaGridAD(
|
|||||||
binding.imageViewCover.newImageRequest(item.coverUrl)?.run {
|
binding.imageViewCover.newImageRequest(item.coverUrl)?.run {
|
||||||
placeholder(R.drawable.ic_placeholder)
|
placeholder(R.drawable.ic_placeholder)
|
||||||
fallback(R.drawable.ic_placeholder)
|
fallback(R.drawable.ic_placeholder)
|
||||||
error(R.drawable.ic_placeholder)
|
error(R.drawable.ic_error_placeholder)
|
||||||
allowRgb565(true)
|
allowRgb565(true)
|
||||||
lifecycle(lifecycleOwner)
|
lifecycle(lifecycleOwner)
|
||||||
enqueueWith(coil)
|
enqueueWith(coil)
|
||||||
@@ -82,5 +80,4 @@ private class SuggestionMangaDiffCallback : DiffUtil.ItemCallback<Manga>() {
|
|||||||
override fun areContentsTheSame(oldItem: Manga, newItem: Manga): Boolean {
|
override fun areContentsTheSame(oldItem: Manga, newItem: Manga): Boolean {
|
||||||
return oldItem.title == newItem.title && oldItem.coverUrl == newItem.coverUrl
|
return oldItem.title == newItem.title && oldItem.coverUrl == newItem.coverUrl
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ fun feedItemAD(
|
|||||||
binding.imageViewCover.newImageRequest(item.imageUrl)?.run {
|
binding.imageViewCover.newImageRequest(item.imageUrl)?.run {
|
||||||
placeholder(R.drawable.ic_placeholder)
|
placeholder(R.drawable.ic_placeholder)
|
||||||
fallback(R.drawable.ic_placeholder)
|
fallback(R.drawable.ic_placeholder)
|
||||||
error(R.drawable.ic_placeholder)
|
error(R.drawable.ic_error_placeholder)
|
||||||
allowRgb565(true)
|
allowRgb565(true)
|
||||||
lifecycle(lifecycleOwner)
|
lifecycle(lifecycleOwner)
|
||||||
enqueueWith(coil)
|
enqueueWith(coil)
|
||||||
@@ -46,4 +46,4 @@ fun feedItemAD(
|
|||||||
onViewRecycled {
|
onViewRecycled {
|
||||||
binding.imageViewCover.disposeImageRequest()
|
binding.imageViewCover.disposeImageRequest()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
11
app/src/main/res/drawable/ic_error_placeholder.xml
Normal file
11
app/src/main/res/drawable/ic_error_placeholder.xml
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
<vector
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="60dp"
|
||||||
|
android:height="60dp"
|
||||||
|
android:tint="?attr/colorTertiary"
|
||||||
|
android:viewportWidth="60"
|
||||||
|
android:viewportHeight="60">
|
||||||
|
<path
|
||||||
|
android:fillColor="#FF000000"
|
||||||
|
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.7zM22.9,31.3l4.8,-4.8l4.7,4.7l4.8,-4.8l1.2,1.2v-6H21.7v8.4L22.9,31.3zM21.7,38.4h16.7v-8.3l-1.2,-1.2l-4.8,4.8l-4.7,-4.7l-4.8,4.8l-1.2,-1.2V38.4zM21.7,38.4v-8.3v1.7V21.7V38.4z" />
|
||||||
|
</vector>
|
||||||
@@ -7,8 +7,5 @@
|
|||||||
android:viewportHeight="60">
|
android:viewportHeight="60">
|
||||||
<path
|
<path
|
||||||
android:fillColor="#FF000000"
|
android:fillColor="#FF000000"
|
||||||
android:pathData="M20 37.891C20 39.056 20.948 40 22.109 40H37.89c1.166 0 2.11-0.948 2.11-2.109V22.11c0-1.166-0.948-2.11-2.109-2.11H22.11C20.944 20 20 20.948 20 22.109V37.89zM37.891 39H22.11C21.499 38.999 21 38.5 21 37.89v-2.636l3.793-3.792 3.24 3.24c0.196 0.197 0.511 0.197 0.707 0l5.852-5.851L39 33.257v4.634c0 0.61-0.499 1.108-1.108 1.108zM22.11 21h15.78c0.61 0 1.108 0.499 1.108 1.108v9.73l-4.054-4.05c-0.196-0.196-0.51-0.196-0.707 0l-5.852 5.852-3.24-3.24c-0.197-0.197-0.512-0.197-0.708 0L21 33.836V22.11c0-0.61 0.499-1.108 1.108-1.108z" />
|
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" />
|
||||||
<path
|
|
||||||
android:fillColor="#FF000000"
|
|
||||||
android:pathData="M26.2 28.014c1.405 0 2.545-1.144 2.545-2.546s-1.144-2.546-2.546-2.546c-1.401 0-2.546 1.144-2.546 2.546s1.14 2.546 2.546 2.546zm0-4.09c0.854 0 1.544 0.694 1.544 1.544 0 0.85-0.695 1.545-1.545 1.545s-1.544-0.695-1.544-1.545 0.69-1.545 1.544-1.545z" />
|
|
||||||
</vector>
|
</vector>
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
android:layout_marginStart="16dp"
|
android:layout_marginStart="16dp"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
|
android:background="?colorSecondaryContainer"
|
||||||
android:foreground="?selectableItemBackground"
|
android:foreground="?selectableItemBackground"
|
||||||
android:scaleType="centerCrop"
|
android:scaleType="centerCrop"
|
||||||
app:layout_constraintDimensionRatio="H,13:18"
|
app:layout_constraintDimensionRatio="H,13:18"
|
||||||
|
|||||||
@@ -19,6 +19,7 @@
|
|||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
android:layout_marginStart="16dp"
|
android:layout_marginStart="16dp"
|
||||||
android:layout_marginTop="16dp"
|
android:layout_marginTop="16dp"
|
||||||
|
android:background="?colorSecondaryContainer"
|
||||||
android:foreground="?selectableItemBackground"
|
android:foreground="?selectableItemBackground"
|
||||||
android:scaleType="centerCrop"
|
android:scaleType="centerCrop"
|
||||||
app:layout_constraintDimensionRatio="H,13:18"
|
app:layout_constraintDimensionRatio="H,13:18"
|
||||||
|
|||||||
@@ -14,4 +14,4 @@
|
|||||||
android:paddingBottom="@dimen/grid_spacing_outer"
|
android:paddingBottom="@dimen/grid_spacing_outer"
|
||||||
android:scrollbars="vertical"
|
android:scrollbars="vertical"
|
||||||
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
|
||||||
tools:listitem="@layout/item_explore_source" />
|
tools:listitem="@layout/item_explore_source" />
|
||||||
|
|||||||
Reference in New Issue
Block a user