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