Skip to content

Commit 6d7363f

Browse files
committed
dont always recreate the list, just update the items
1 parent b7b0eb4 commit 6d7363f

File tree

2 files changed

+16
-5
lines changed

2 files changed

+16
-5
lines changed

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ import kotlinx.android.synthetic.main.list_item.view.*
2626
import java.io.File
2727
import java.util.*
2828

29-
class ItemsAdapter(val activity: SimpleActivity, val mItems: List<FileDirItem>, val listener: ItemOperationsListener?, val itemClick: (FileDirItem) -> Unit) :
29+
class ItemsAdapter(val activity: SimpleActivity, var mItems: List<FileDirItem>, val listener: ItemOperationsListener?, val itemClick: (FileDirItem) -> Unit) :
3030
RecyclerView.Adapter<ItemsAdapter.ViewHolder>() {
3131
val multiSelector = MultiSelector()
3232
val views = ArrayList<View>()
@@ -179,6 +179,11 @@ class ItemsAdapter(val activity: SimpleActivity, val mItems: List<FileDirItem>,
179179
return selectedMedia
180180
}
181181

182+
fun updateItems(newItems: List<FileDirItem>) {
183+
mItems = newItems
184+
notifyDataSetChanged()
185+
}
186+
182187
override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ViewHolder {
183188
val view = LayoutInflater.from(parent?.context).inflate(R.layout.list_item, parent, false)
184189
return ViewHolder(activity, view, itemClick)

app/src/main/kotlin/com/simplemobiletools/filemanager/fragments/ItemsFragment.kt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,10 +76,16 @@ class ItemsFragment : android.support.v4.app.Fragment(), ItemsAdapter.ItemOperat
7676
val adapter = ItemsAdapter(activity as SimpleActivity, mItems, this) {
7777
itemClicked(it)
7878
}
79-
items_list.apply {
80-
this@apply.adapter = adapter
81-
addItemDecoration(RecyclerViewDivider(context))
82-
setOnTouchListener { view, motionEvent -> checkDelete(); false }
79+
80+
val currAdapter = items_list.adapter
81+
if (currAdapter == null) {
82+
items_list.apply {
83+
this@apply.adapter = adapter
84+
addItemDecoration(RecyclerViewDivider(context))
85+
setOnTouchListener { view, motionEvent -> checkDelete(); false }
86+
}
87+
} else {
88+
(currAdapter as ItemsAdapter).updateItems(mItems)
8389
}
8490
}
8591

0 commit comments

Comments
 (0)