From 2f35ae19fc49b90bc7bd6dd862b94f664b595fed Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Fri, 3 Sep 2021 12:25:46 +0200 Subject: [PATCH] call adapter methods in UI thread otherwise sometimes this exception was thrown: IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling androidx.recyclerview.widget.RecyclerView Signed-off-by: Marcel Hibbe --- .../filebrowser/controllers/BrowserController.kt | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/components/filebrowser/controllers/BrowserController.kt b/app/src/main/java/com/nextcloud/talk/components/filebrowser/controllers/BrowserController.kt index ef7a57ac1..aa92aca60 100644 --- a/app/src/main/java/com/nextcloud/talk/components/filebrowser/controllers/BrowserController.kt +++ b/app/src/main/java/com/nextcloud/talk/components/filebrowser/controllers/BrowserController.kt @@ -195,7 +195,6 @@ abstract class BrowserController(args: Bundle) : } override fun listingResult(davResponse: DavResponse) { - adapter!!.clear() recyclerViewItems = ArrayList() if (davResponse.getData() != null) { val objectList = davResponse.getData() as List @@ -210,9 +209,10 @@ abstract class BrowserController(args: Bundle) : FileSortOrder.getFileSortOrder(appPreferences?.sorting).sortCloudFiles(recyclerViewItems) - adapter!!.addItems(0, recyclerViewItems) if (activity != null) { activity!!.runOnUiThread { + adapter!!.clear() + adapter!!.addItems(0, recyclerViewItems) adapter!!.notifyDataSetChanged() changeEnabledStatusForBarItems(true) } @@ -247,7 +247,11 @@ abstract class BrowserController(args: Bundle) : selectedPaths.remove(file.parent!! + "/") file = File(file.parent!!) } - adapter!!.notifyDataSetChanged() + if (activity != null) { + activity!!.runOnUiThread { + adapter!!.notifyDataSetChanged() + } + } } override fun onItemClick(view: View, position: Int): Boolean {