Tune favourite categories list ui
This commit is contained in:
@@ -3,6 +3,8 @@ package org.koitharu.kotatsu.favourites.ui.categories
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.transition.Fade
|
||||
import android.transition.TransitionManager
|
||||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
@@ -22,6 +24,7 @@ import org.koitharu.kotatsu.base.ui.list.ListSelectionController
|
||||
import org.koitharu.kotatsu.core.model.FavouriteCategory
|
||||
import org.koitharu.kotatsu.databinding.ActivityCategoriesBinding
|
||||
import org.koitharu.kotatsu.favourites.ui.FavouritesActivity
|
||||
import org.koitharu.kotatsu.favourites.ui.categories.adapter.CategoriesAdapter
|
||||
import org.koitharu.kotatsu.favourites.ui.categories.edit.FavouritesCategoryEditActivity
|
||||
import org.koitharu.kotatsu.list.ui.adapter.ListStateHolderListener
|
||||
import org.koitharu.kotatsu.list.ui.model.ListModel
|
||||
@@ -144,6 +147,10 @@ class FavouriteCategoriesActivity :
|
||||
}
|
||||
|
||||
private fun onReorderModeChanged(isReorderMode: Boolean) {
|
||||
val transition = Fade().apply {
|
||||
duration = resources.getInteger(android.R.integer.config_shortAnimTime).toLong()
|
||||
}
|
||||
TransitionManager.beginDelayedTransition(binding.toolbar, transition)
|
||||
reorderHelper?.attachToRecyclerView(null)
|
||||
reorderHelper = if (isReorderMode) {
|
||||
selectionController.clear()
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
package org.koitharu.kotatsu.favourites.ui.categories
|
||||
package org.koitharu.kotatsu.favourites.ui.categories.adapter
|
||||
|
||||
import androidx.lifecycle.LifecycleOwner
|
||||
import androidx.recyclerview.widget.DiffUtil
|
||||
import coil.ImageLoader
|
||||
import com.hannesdorfmann.adapterdelegates4.AsyncListDifferDelegationAdapter
|
||||
import org.koitharu.kotatsu.favourites.ui.categories.adapter.CategoryListModel
|
||||
import org.koitharu.kotatsu.favourites.ui.categories.adapter.categoryAD
|
||||
import org.koitharu.kotatsu.favourites.ui.categories.FavouriteCategoriesListListener
|
||||
import org.koitharu.kotatsu.list.ui.adapter.ListStateHolderListener
|
||||
import org.koitharu.kotatsu.list.ui.adapter.emptyStateListAD
|
||||
import org.koitharu.kotatsu.list.ui.adapter.loadingStateAD
|
||||
@@ -43,7 +42,11 @@ class CategoriesAdapter(
|
||||
override fun getChangePayload(oldItem: ListModel, newItem: ListModel): Any? {
|
||||
return when {
|
||||
oldItem is CategoryListModel && newItem is CategoryListModel -> {
|
||||
if (oldItem.isReorderMode != newItem.isReorderMode) {
|
||||
if (oldItem.category == newItem.category &&
|
||||
oldItem.mangaCount == newItem.mangaCount &&
|
||||
oldItem.covers == newItem.covers &&
|
||||
oldItem.isReorderMode != newItem.isReorderMode
|
||||
) {
|
||||
Unit
|
||||
} else {
|
||||
super.getChangePayload(oldItem, newItem)
|
||||
@@ -57,9 +57,12 @@ fun categoryAD(
|
||||
itemView.setOnLongClickListener(eventListener)
|
||||
itemView.setOnTouchListener(eventListener)
|
||||
|
||||
bind {
|
||||
imageRequests.forEach { it?.dispose() }
|
||||
bind { payloads ->
|
||||
binding.imageViewHandle.isVisible = item.isReorderMode
|
||||
if (payloads.isNotEmpty()) {
|
||||
return@bind
|
||||
}
|
||||
imageRequests.forEach { it?.dispose() }
|
||||
binding.textViewTitle.text = item.category.title
|
||||
binding.textViewSubtitle.text = if (item.mangaCount == 0) {
|
||||
getString(R.string.empty)
|
||||
@@ -73,7 +76,6 @@ fun categoryAD(
|
||||
repeat(coverViews.size) { i ->
|
||||
imageRequests[i] = coverViews[i].newImageRequest(item.covers.getOrNull(i))
|
||||
.placeholder(R.drawable.ic_placeholder)
|
||||
.crossfade(crossFadeDuration * (i + 1))
|
||||
.fallback(fallback)
|
||||
.error(R.drawable.ic_placeholder)
|
||||
.allowRgb565(isLowRamDevice(context))
|
||||
|
||||
Reference in New Issue
Block a user