mirror of
https://github.com/SimpleMobileTools/Simple-File-Manager.git
synced 2025-06-05 22:09:15 +02:00
dont always recreate the list, just update the items
This commit is contained in:
@ -26,7 +26,7 @@ import kotlinx.android.synthetic.main.list_item.view.*
|
|||||||
import java.io.File
|
import java.io.File
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class ItemsAdapter(val activity: SimpleActivity, val mItems: List<FileDirItem>, val listener: ItemOperationsListener?, val itemClick: (FileDirItem) -> Unit) :
|
class ItemsAdapter(val activity: SimpleActivity, var mItems: List<FileDirItem>, val listener: ItemOperationsListener?, val itemClick: (FileDirItem) -> Unit) :
|
||||||
RecyclerView.Adapter<ItemsAdapter.ViewHolder>() {
|
RecyclerView.Adapter<ItemsAdapter.ViewHolder>() {
|
||||||
val multiSelector = MultiSelector()
|
val multiSelector = MultiSelector()
|
||||||
val views = ArrayList<View>()
|
val views = ArrayList<View>()
|
||||||
@ -179,6 +179,11 @@ class ItemsAdapter(val activity: SimpleActivity, val mItems: List<FileDirItem>,
|
|||||||
return selectedMedia
|
return selectedMedia
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun updateItems(newItems: List<FileDirItem>) {
|
||||||
|
mItems = newItems
|
||||||
|
notifyDataSetChanged()
|
||||||
|
}
|
||||||
|
|
||||||
override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ViewHolder {
|
override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ViewHolder {
|
||||||
val view = LayoutInflater.from(parent?.context).inflate(R.layout.list_item, parent, false)
|
val view = LayoutInflater.from(parent?.context).inflate(R.layout.list_item, parent, false)
|
||||||
return ViewHolder(activity, view, itemClick)
|
return ViewHolder(activity, view, itemClick)
|
||||||
|
@ -76,10 +76,16 @@ class ItemsFragment : android.support.v4.app.Fragment(), ItemsAdapter.ItemOperat
|
|||||||
val adapter = ItemsAdapter(activity as SimpleActivity, mItems, this) {
|
val adapter = ItemsAdapter(activity as SimpleActivity, mItems, this) {
|
||||||
itemClicked(it)
|
itemClicked(it)
|
||||||
}
|
}
|
||||||
items_list.apply {
|
|
||||||
this@apply.adapter = adapter
|
val currAdapter = items_list.adapter
|
||||||
addItemDecoration(RecyclerViewDivider(context))
|
if (currAdapter == null) {
|
||||||
setOnTouchListener { view, motionEvent -> checkDelete(); false }
|
items_list.apply {
|
||||||
|
this@apply.adapter = adapter
|
||||||
|
addItemDecoration(RecyclerViewDivider(context))
|
||||||
|
setOnTouchListener { view, motionEvent -> checkDelete(); false }
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
(currAdapter as ItemsAdapter).updateItems(mItems)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user