From 6d7363fced84451d84fc631e44855ffc310e03cb Mon Sep 17 00:00:00 2001 From: tibbi Date: Sat, 3 Dec 2016 23:44:42 +0100 Subject: [PATCH] dont always recreate the list, just update the items --- .../filemanager/adapters/ItemsAdapter.kt | 7 ++++++- .../filemanager/fragments/ItemsFragment.kt | 14 ++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/adapters/ItemsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/adapters/ItemsAdapter.kt index 4a8a3090..54b08525 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/adapters/ItemsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/adapters/ItemsAdapter.kt @@ -26,7 +26,7 @@ import kotlinx.android.synthetic.main.list_item.view.* import java.io.File import java.util.* -class ItemsAdapter(val activity: SimpleActivity, val mItems: List, val listener: ItemOperationsListener?, val itemClick: (FileDirItem) -> Unit) : +class ItemsAdapter(val activity: SimpleActivity, var mItems: List, val listener: ItemOperationsListener?, val itemClick: (FileDirItem) -> Unit) : RecyclerView.Adapter() { val multiSelector = MultiSelector() val views = ArrayList() @@ -179,6 +179,11 @@ class ItemsAdapter(val activity: SimpleActivity, val mItems: List, return selectedMedia } + fun updateItems(newItems: List) { + mItems = newItems + notifyDataSetChanged() + } + override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): ViewHolder { val view = LayoutInflater.from(parent?.context).inflate(R.layout.list_item, parent, false) return ViewHolder(activity, view, itemClick) diff --git a/app/src/main/kotlin/com/simplemobiletools/filemanager/fragments/ItemsFragment.kt b/app/src/main/kotlin/com/simplemobiletools/filemanager/fragments/ItemsFragment.kt index 57e443a4..36fa27d5 100644 --- a/app/src/main/kotlin/com/simplemobiletools/filemanager/fragments/ItemsFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/filemanager/fragments/ItemsFragment.kt @@ -76,10 +76,16 @@ class ItemsFragment : android.support.v4.app.Fragment(), ItemsAdapter.ItemOperat val adapter = ItemsAdapter(activity as SimpleActivity, mItems, this) { itemClicked(it) } - items_list.apply { - this@apply.adapter = adapter - addItemDecoration(RecyclerViewDivider(context)) - setOnTouchListener { view, motionEvent -> checkDelete(); false } + + val currAdapter = items_list.adapter + if (currAdapter == null) { + items_list.apply { + this@apply.adapter = adapter + addItemDecoration(RecyclerViewDivider(context)) + setOnTouchListener { view, motionEvent -> checkDelete(); false } + } + } else { + (currAdapter as ItemsAdapter).updateItems(mItems) } }