Browse Source

Merge pull request #11673 from nextcloud/fixShowingOneGroupfolder

fix showing only one groupfolder
Tobias Kaminsky 2 years ago
parent
commit
8e86617177

BIN
app/screenshots/gplay/debug/com.owncloud.android.ui.fragment.GroupfolderListFragmentIT_showEmpty.png


BIN
app/screenshots/gplay/debug/com.owncloud.android.ui.fragment.GroupfolderListFragmentIT_showGroupfolder.png


+ 23 - 1
app/src/androidTest/java/com/owncloud/android/ui/fragment/GroupfolderListFragmentIT.kt

@@ -44,11 +44,33 @@ class GroupfolderListFragmentIT : AbstractIT() {
 
     @Test
     @ScreenshotTest
-    fun showGroupfolders() {
+    fun showGroupfolder() {
         val sut = GroupfolderListFragment()
         activity.addFragment(sut)
 
+        shortSleep() // to let async task finish
+
+        activity.runOnUiThread {
+            sut.setAdapter(null)
+            sut.setData(
+                mapOf(
+                    Pair("2", Groupfolder(2, "/subfolder/group"))
+                )
+            )
+        }
+
         waitForIdleSync()
+        shortSleep()
+        screenshot(activity)
+    }
+
+    @Test
+    @ScreenshotTest
+    fun showGroupfolders() {
+        val sut = GroupfolderListFragment()
+        activity.addFragment(sut)
+
+        shortSleep() // to let async task finish
 
         activity.runOnUiThread {
             sut.setAdapter(null)

+ 11 - 2
app/src/main/java/com/owncloud/android/ui/fragment/GroupfolderListFragment.kt

@@ -26,7 +26,7 @@ import android.content.Intent.ACTION_VIEW
 import android.os.Bundle
 import android.os.Handler
 import androidx.lifecycle.lifecycleScope
-import androidx.recyclerview.widget.GridLayoutManager
+import androidx.recyclerview.widget.LinearLayoutManager
 import com.nextcloud.android.lib.resources.groupfolders.Groupfolder
 import com.nextcloud.client.di.Injectable
 import com.nextcloud.client.logger.Logger
@@ -35,6 +35,7 @@ import com.owncloud.android.R
 import com.owncloud.android.datamodel.OCFile
 import com.owncloud.android.lib.resources.files.ReadFileRemoteOperation
 import com.owncloud.android.lib.resources.files.model.RemoteFile
+import com.owncloud.android.ui.EmptyRecyclerView
 import com.owncloud.android.ui.activity.FileDisplayActivity
 import com.owncloud.android.ui.adapter.GroupfolderListAdapter
 import com.owncloud.android.ui.asynctasks.GroupfoldersSearchTask
@@ -65,6 +66,7 @@ class GroupfolderListFragment : OCFileListFragment(), Injectable, GroupfolderLis
         searchFragment = true
     }
 
+    @Deprecated("Deprecated in Java")
     override fun onActivityCreated(savedInstanceState: Bundle?) {
         super.onActivityCreated(savedInstanceState)
 
@@ -79,8 +81,9 @@ class GroupfolderListFragment : OCFileListFragment(), Injectable, GroupfolderLis
         adapter = GroupfolderListAdapter(requireContext(), viewThemeUtils, this)
         setRecyclerViewAdapter(adapter)
 
-        val layoutManager = GridLayoutManager(context, 1)
+        val layoutManager = LinearLayoutManager(context)
         recyclerView.layoutManager = layoutManager
+        (recyclerView as EmptyRecyclerView).setHasFooter(false)
     }
 
     private fun search() {
@@ -104,6 +107,12 @@ class GroupfolderListFragment : OCFileListFragment(), Injectable, GroupfolderLis
         }
     }
 
+    override fun onRefresh() {
+        super.onRefresh()
+
+        search()
+    }
+
     @SuppressLint("NotifyDataSetChanged")
     fun setData(result: Map<String, Groupfolder>) {
         adapter.setData(result)