mirror of
				https://github.com/SimpleMobileTools/Simple-File-Manager.git
				synced 2025-06-05 22:09:15 +02:00 
			
		
		
		
	use integers for storing selected recyclerview item keys
This commit is contained in:
		| @@ -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 } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user