Skip to content

Commit 3acb283

Browse files
committed
use integers for storing selected recyclerview item keys
1 parent 19d9f20 commit 3acb283

File tree

3 files changed

+19
-13
lines changed

3 files changed

+19
-13
lines changed

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ android {
4242
}
4343

4444
dependencies {
45-
implementation 'com.simplemobiletools:commons:5.0.16'
45+
implementation 'com.simplemobiletools:commons:5.0.18'
4646

4747
implementation files('../libs/RootTools.jar')
4848
}

app/src/main/kotlin/com/simplemobiletools/filemanager/adapters/ItemsAdapter.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,9 @@ class ItemsAdapter(activity: SimpleActivity, var fileDirItems: MutableList<FileD
9999

100100
override fun getIsItemSelectable(position: Int) = true
101101

102-
override fun getItemSelectionKey(position: Int) = fileDirItems.getOrNull(position)?.path
102+
override fun getItemSelectionKey(position: Int) = fileDirItems.getOrNull(position)?.path?.hashCode()
103103

104-
override fun getItemKeyPosition(key: String) = fileDirItems.indexOfFirst { it.path == key }
104+
override fun getItemKeyPosition(key: Int) = fileDirItems.indexOfFirst { it.path.hashCode() == key }
105105

106106
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) = createViewHolder(R.layout.list_item, parent)
107107

@@ -115,7 +115,7 @@ class ItemsAdapter(activity: SimpleActivity, var fileDirItems: MutableList<FileD
115115

116116
override fun getItemCount() = fileDirItems.size
117117

118-
private fun getItemWithKey(key: String): FileDirItem? = fileDirItems.firstOrNull { it.path == key }
118+
private fun getItemWithKey(key: Int): FileDirItem? = fileDirItems.firstOrNull { it.path.hashCode() == key }
119119

120120
fun initDrawables() {
121121
folderDrawable = activity.resources.getColoredDrawableWithColor(R.drawable.ic_folder, textColor)
@@ -493,9 +493,9 @@ class ItemsAdapter(activity: SimpleActivity, var fileDirItems: MutableList<FileD
493493
val files = ArrayList<FileDirItem>(selectedKeys.size)
494494
val positions = ArrayList<Int>()
495495
selectedKeys.forEach {
496-
activity.config.removeFavorite(it)
496+
activity.config.removeFavorite(getItemWithKey(it)?.path ?: "")
497497
val key = it
498-
val position = fileDirItems.indexOfFirst { it.path == key }
498+
val position = fileDirItems.indexOfFirst { it.path.hashCode() == key }
499499
if (position != -1) {
500500
positions.add(position)
501501
files.add(fileDirItems[position])
@@ -545,7 +545,7 @@ class ItemsAdapter(activity: SimpleActivity, var fileDirItems: MutableList<FileD
545545
}
546546

547547
private fun setupView(view: View, fileDirItem: FileDirItem) {
548-
val isSelected = isKeySelected(fileDirItem.path)
548+
val isSelected = isKeySelected(fileDirItem.path.hashCode())
549549
view.apply {
550550
item_frame.isSelected = isSelected
551551
val fileName = fileDirItem.name

app/src/main/kotlin/com/simplemobiletools/filemanager/adapters/ManageFavoritesAdapter.kt

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ class ManageFavoritesAdapter(activity: BaseSimpleActivity, var favorites: ArrayL
3333

3434
override fun getIsItemSelectable(position: Int) = true
3535

36-
override fun getItemSelectionKey(position: Int) = favorites.getOrNull(position)
36+
override fun getItemSelectionKey(position: Int) = favorites.getOrNull(position)?.hashCode()
3737

38-
override fun getItemKeyPosition(key: String) = favorites.indexOfFirst { it == key }
38+
override fun getItemKeyPosition(key: Int) = favorites.indexOfFirst { it.hashCode() == key }
3939

4040
override fun prepareActionMode(menu: Menu) {}
4141

@@ -44,7 +44,7 @@ class ManageFavoritesAdapter(activity: BaseSimpleActivity, var favorites: ArrayL
4444
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
4545
val favorite = favorites[position]
4646
holder.bindView(favorite, true, true) { itemView, layoutPosition ->
47-
setupView(itemView, favorite, isKeySelected(favorite))
47+
setupView(itemView, favorite, isKeySelected(favorite.hashCode()))
4848
}
4949
bindViewHolder(holder)
5050
}
@@ -67,11 +67,15 @@ class ManageFavoritesAdapter(activity: BaseSimpleActivity, var favorites: ArrayL
6767
val positions = java.util.ArrayList<Int>()
6868
selectedKeys.forEach {
6969
val key = it
70-
val position = favorites.indexOfFirst { it == key }
70+
val position = favorites.indexOfFirst { it.hashCode() == key }
7171
if (position != -1) {
7272
positions.add(position)
73-
removeFavorites.add(key)
74-
config.removeFavorite(key)
73+
74+
val favorite = getItemWithKey(key)
75+
if (favorite != null) {
76+
removeFavorites.add(favorite)
77+
config.removeFavorite(favorite)
78+
}
7579
}
7680
}
7781

@@ -83,4 +87,6 @@ class ManageFavoritesAdapter(activity: BaseSimpleActivity, var favorites: ArrayL
8387
listener?.refreshItems()
8488
}
8589
}
90+
91+
private fun getItemWithKey(key: Int): String? = favorites.firstOrNull { it.hashCode() == key }
8692
}

0 commit comments

Comments
 (0)