Refine SelectableGalleryInfoRecyclerView
This commit is contained in:
1 parent
44b60185cc
commit
e2ac340b6f
3 files changed
+5
-16
No files matched your search
@@ -21,6 +21,7 @@ class SelectableGalleryInfoRecyclerView @JvmOverloads constructor(
|
||||
val checkedItemCount
|
||||
get() = checkedGid.size
|
||||
lateinit var gidGetter: (Int) -> Long?
|
||||
lateinit var allGid: () -> List<Long>
|
||||
private var checkedGid = mutableSetOf<Long>()
|
||||
|
||||
private fun checkChild(child: View) {
|
||||
@@ -61,8 +62,7 @@ class SelectableGalleryInfoRecyclerView @JvmOverloads constructor(
|
||||
|
||||
fun checkAll() {
|
||||
check(isInCustomChoice) { "Call intoCheckMode first" }
|
||||
// Foreach checked
|
||||
// Notify customChoiceListener!!.onItemCheckedStateChanged(this)
|
||||
checkedGid.addAll(allGid())
|
||||
updateOnScreenCheckedViews()
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ class SelectableGalleryInfoRecyclerView @JvmOverloads constructor(
|
||||
} else {
|
||||
checkedGid.add(gid)
|
||||
}
|
||||
customChoiceListener?.onItemCheckedStateChanged(this)
|
||||
if (checkedGid.isEmpty()) outOfCustomChoiceMode()
|
||||
updateOnScreenCheckedViews()
|
||||
}
|
||||
|
||||
@@ -105,7 +105,6 @@ class SelectableGalleryInfoRecyclerView @JvmOverloads constructor(
|
||||
interface CustomChoiceListener {
|
||||
fun onIntoCustomChoice(view: SelectableGalleryInfoRecyclerView)
|
||||
fun onOutOfCustomChoice(view: SelectableGalleryInfoRecyclerView)
|
||||
fun onItemCheckedStateChanged(view: SelectableGalleryInfoRecyclerView)
|
||||
}
|
||||
|
||||
@Parcelize
|
||||
|
||||
@@ -278,6 +278,7 @@ class DownloadsScene :
|
||||
recyclerView.clipToPadding = false
|
||||
recyclerView.clipChildren = false
|
||||
recyclerView.gidGetter = { mList?.get(it)?.gid }
|
||||
recyclerView.allGid = { mList?.map { it.gid }.orEmpty() }
|
||||
recyclerView.setCustomCheckedListener(DownloadChoiceListener())
|
||||
// Cancel change animation
|
||||
val itemAnimator = recyclerView.itemAnimator
|
||||
@@ -1059,12 +1060,6 @@ class DownloadsScene :
|
||||
setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, GravityCompat.START)
|
||||
setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, GravityCompat.END)
|
||||
}
|
||||
|
||||
override fun onItemCheckedStateChanged(view: SelectableGalleryInfoRecyclerView) {
|
||||
if (view.checkedItemCount == 0) {
|
||||
view.outOfCustomChoiceMode()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private inner class RenameLabelDialogHelper(
|
||||
|
||||
@@ -354,6 +354,7 @@ class FavoritesScene : SearchBarScene() {
|
||||
}
|
||||
}
|
||||
gidGetter = { adapter.peek(it)?.gid }
|
||||
allGid = { adapter.snapshot().items.map { it.gid } }
|
||||
}
|
||||
switchFav(Settings.recentFavCat)
|
||||
setCustomCheckedListener(object : CustomChoiceListener {
|
||||
@@ -377,12 +378,6 @@ class FavoritesScene : SearchBarScene() {
|
||||
setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, GravityCompat.START)
|
||||
setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED, GravityCompat.END)
|
||||
}
|
||||
|
||||
override fun onItemCheckedStateChanged(view: SelectableGalleryInfoRecyclerView) {
|
||||
if (view.checkedItemCount == 0) {
|
||||
view.outOfCustomChoiceMode()
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
setAllowEmptySearch(false)
|
||||
|
||||
Reference in new issue
Block a user