show pin/unpin actionmenu item only when needed
This commit is contained in:
parent
830f456359
commit
e6585180c3
|
@ -108,24 +108,12 @@ class DirectoryAdapter(val activity: SimpleActivity, val dirs: MutableList<Direc
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onPrepareActionMode(actionMode: ActionMode?, menu: Menu): Boolean {
|
override fun onPrepareActionMode(actionMode: ActionMode?, menu: Menu): Boolean {
|
||||||
val menuItem = menu.findItem(R.id.cab_edit)
|
|
||||||
menuItem.isVisible = multiSelector.selectedPositions.size <= 1
|
|
||||||
|
|
||||||
var hiddenCnt = 0
|
|
||||||
var unhiddenCnt = 0
|
|
||||||
val positions = multiSelector.selectedPositions
|
val positions = multiSelector.selectedPositions
|
||||||
positions.map { dirs[it].path }
|
val menuItem = menu.findItem(R.id.cab_edit)
|
||||||
.forEach {
|
menuItem.isVisible = positions.size <= 1
|
||||||
if (config.getIsFolderHidden(it))
|
|
||||||
hiddenCnt++
|
|
||||||
else
|
|
||||||
unhiddenCnt++
|
|
||||||
}
|
|
||||||
|
|
||||||
menu.findItem(R.id.cab_hide).isVisible = unhiddenCnt > 0
|
|
||||||
menu.findItem(R.id.cab_unhide).isVisible = hiddenCnt > 0
|
|
||||||
|
|
||||||
|
|
||||||
|
checkHideBtnVisibility(menu, positions)
|
||||||
|
checkPinBtnVisibility(menu, positions)
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
@ -135,6 +123,35 @@ class DirectoryAdapter(val activity: SimpleActivity, val dirs: MutableList<Direc
|
||||||
views.forEach { toggleItemSelection(it, false) }
|
views.forEach { toggleItemSelection(it, false) }
|
||||||
markedItems.clear()
|
markedItems.clear()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun checkHideBtnVisibility(menu: Menu, positions: List<Int>) {
|
||||||
|
var hiddenCnt = 0
|
||||||
|
var unhiddenCnt = 0
|
||||||
|
positions.map { dirs[it].path }.forEach {
|
||||||
|
if (config.getIsFolderHidden(it))
|
||||||
|
hiddenCnt++
|
||||||
|
else
|
||||||
|
unhiddenCnt++
|
||||||
|
}
|
||||||
|
|
||||||
|
menu.findItem(R.id.cab_hide).isVisible = unhiddenCnt > 0
|
||||||
|
menu.findItem(R.id.cab_unhide).isVisible = hiddenCnt > 0
|
||||||
|
}
|
||||||
|
|
||||||
|
fun checkPinBtnVisibility(menu: Menu, positions: List<Int>) {
|
||||||
|
val pinnedFolders = config.pinnedFolders
|
||||||
|
var pinnedCnt = 0
|
||||||
|
var unpinnedCnt = 0
|
||||||
|
positions.map { dirs[it].path }.forEach {
|
||||||
|
if (pinnedFolders.contains(it))
|
||||||
|
pinnedCnt++
|
||||||
|
else
|
||||||
|
unpinnedCnt++
|
||||||
|
}
|
||||||
|
|
||||||
|
menu.findItem(R.id.cab_pin).isVisible = unpinnedCnt > 0
|
||||||
|
menu.findItem(R.id.cab_unpin).isVisible = pinnedCnt > 0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun showProperties() {
|
private fun showProperties() {
|
||||||
|
|
|
@ -80,20 +80,15 @@ class GetDirectoriesAsynctask(val context: Context, val isPickVideo: Boolean, va
|
||||||
}
|
}
|
||||||
|
|
||||||
context.scanFiles(invalidFiles) {}
|
context.scanFiles(invalidFiles) {}
|
||||||
var dirs = ArrayList(directories.values)
|
val dirs = ArrayList(directories.values)
|
||||||
filterDirectories(dirs)
|
filterDirectories(dirs)
|
||||||
Directory.sorting = mConfig.directorySorting
|
Directory.sorting = mConfig.directorySorting
|
||||||
dirs.sort()
|
dirs.sort()
|
||||||
|
|
||||||
dirs = movePinnedToFront(dirs)
|
return movePinnedToFront(dirs)
|
||||||
|
|
||||||
return dirs
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun movePinnedToFront(dirs: ArrayList<Directory>): ArrayList<Directory> {
|
private fun movePinnedToFront(dirs: ArrayList<Directory>): ArrayList<Directory> {
|
||||||
if (dirs.isEmpty())
|
|
||||||
return dirs
|
|
||||||
|
|
||||||
val foundFolders = ArrayList<Directory>()
|
val foundFolders = ArrayList<Directory>()
|
||||||
val pinnedFolders = mConfig.pinnedFolders
|
val pinnedFolders = mConfig.pinnedFolders
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue