use integers for storing selected recyclerview item keys
This commit is contained in:
parent
19d9f20b89
commit
3acb283fa3
|
@ -42,7 +42,7 @@ android {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'com.simplemobiletools:commons:5.0.16'
|
||||
implementation 'com.simplemobiletools:commons:5.0.18'
|
||||
|
||||
implementation files('../libs/RootTools.jar')
|
||||
}
|
||||
|
|
|
@ -99,9 +99,9 @@ class ItemsAdapter(activity: SimpleActivity, var fileDirItems: MutableList<FileD
|
|||
|
||||
override fun getIsItemSelectable(position: Int) = true
|
||||
|
||||
override fun getItemSelectionKey(position: Int) = fileDirItems.getOrNull(position)?.path
|
||||
override fun getItemSelectionKey(position: Int) = fileDirItems.getOrNull(position)?.path?.hashCode()
|
||||
|
||||
override fun getItemKeyPosition(key: String) = fileDirItems.indexOfFirst { it.path == key }
|
||||
override fun getItemKeyPosition(key: Int) = fileDirItems.indexOfFirst { it.path.hashCode() == key }
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = createViewHolder(R.layout.list_item, parent)
|
||||
|
||||
|
@ -115,7 +115,7 @@ class ItemsAdapter(activity: SimpleActivity, var fileDirItems: MutableList<FileD
|
|||
|
||||
override fun getItemCount() = fileDirItems.size
|
||||
|
||||
private fun getItemWithKey(key: String): FileDirItem? = fileDirItems.firstOrNull { it.path == key }
|
||||
private fun getItemWithKey(key: Int): FileDirItem? = fileDirItems.firstOrNull { it.path.hashCode() == key }
|
||||
|
||||
fun initDrawables() {
|
||||
folderDrawable = activity.resources.getColoredDrawableWithColor(R.drawable.ic_folder, textColor)
|
||||
|
@ -493,9 +493,9 @@ class ItemsAdapter(activity: SimpleActivity, var fileDirItems: MutableList<FileD
|
|||
val files = ArrayList<FileDirItem>(selectedKeys.size)
|
||||
val positions = ArrayList<Int>()
|
||||
selectedKeys.forEach {
|
||||
activity.config.removeFavorite(it)
|
||||
activity.config.removeFavorite(getItemWithKey(it)?.path ?: "")
|
||||
val key = it
|
||||
val position = fileDirItems.indexOfFirst { it.path == key }
|
||||
val position = fileDirItems.indexOfFirst { it.path.hashCode() == key }
|
||||
if (position != -1) {
|
||||
positions.add(position)
|
||||
files.add(fileDirItems[position])
|
||||
|
@ -545,7 +545,7 @@ class ItemsAdapter(activity: SimpleActivity, var fileDirItems: MutableList<FileD
|
|||
}
|
||||
|
||||
private fun setupView(view: View, fileDirItem: FileDirItem) {
|
||||
val isSelected = isKeySelected(fileDirItem.path)
|
||||
val isSelected = isKeySelected(fileDirItem.path.hashCode())
|
||||
view.apply {
|
||||
item_frame.isSelected = isSelected
|
||||
val fileName = fileDirItem.name
|
||||
|
|
|
@ -33,9 +33,9 @@ class ManageFavoritesAdapter(activity: BaseSimpleActivity, var favorites: ArrayL
|
|||
|
||||
override fun getIsItemSelectable(position: Int) = true
|
||||
|
||||
override fun getItemSelectionKey(position: Int) = favorites.getOrNull(position)
|
||||
override fun getItemSelectionKey(position: Int) = favorites.getOrNull(position)?.hashCode()
|
||||
|
||||
override fun getItemKeyPosition(key: String) = favorites.indexOfFirst { it == key }
|
||||
override fun getItemKeyPosition(key: Int) = favorites.indexOfFirst { it.hashCode() == key }
|
||||
|
||||
override fun prepareActionMode(menu: Menu) {}
|
||||
|
||||
|
@ -44,7 +44,7 @@ class ManageFavoritesAdapter(activity: BaseSimpleActivity, var favorites: ArrayL
|
|||
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
|
||||
val favorite = favorites[position]
|
||||
holder.bindView(favorite, true, true) { itemView, layoutPosition ->
|
||||
setupView(itemView, favorite, isKeySelected(favorite))
|
||||
setupView(itemView, favorite, isKeySelected(favorite.hashCode()))
|
||||
}
|
||||
bindViewHolder(holder)
|
||||
}
|
||||
|
@ -67,11 +67,15 @@ class ManageFavoritesAdapter(activity: BaseSimpleActivity, var favorites: ArrayL
|
|||
val positions = java.util.ArrayList<Int>()
|
||||
selectedKeys.forEach {
|
||||
val key = it
|
||||
val position = favorites.indexOfFirst { it == key }
|
||||
val position = favorites.indexOfFirst { it.hashCode() == key }
|
||||
if (position != -1) {
|
||||
positions.add(position)
|
||||
removeFavorites.add(key)
|
||||
config.removeFavorite(key)
|
||||
|
||||
val favorite = getItemWithKey(key)
|
||||
if (favorite != null) {
|
||||
removeFavorites.add(favorite)
|
||||
config.removeFavorite(favorite)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -83,4 +87,6 @@ class ManageFavoritesAdapter(activity: BaseSimpleActivity, var favorites: ArrayL
|
|||
listener?.refreshItems()
|
||||
}
|
||||
}
|
||||
|
||||
private fun getItemWithKey(key: Int): String? = favorites.firstOrNull { it.hashCode() == key }
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue