瀏覽代碼

show progress bar also when user left and re-entered the media tab screen

how to test:
1. click on file with big file size that was not clicked before (so it's not in the cache)
2. leave media tab view or just select other tab.
3. go back to the clicked file
4. --> see that progress bar is still spinning (otherwise it's already finished and a click should oen the file directly without showing the progress bar)

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Marcel Hibbe 3 年之前
父節點
當前提交
e0d1f16106

+ 12 - 6
app/src/main/java/com/nextcloud/talk/adapters/SharedItemsGridAdapter.kt

@@ -18,7 +18,6 @@ import com.facebook.imagepipeline.request.ImageRequestBuilder
 import com.nextcloud.talk.databinding.SharedItemGridBinding
 import com.nextcloud.talk.repositories.SharedItem
 import com.nextcloud.talk.utils.DrawableUtils
-import com.nextcloud.talk.utils.DrawableUtils.getDrawableResourceIdForMimeType
 import com.nextcloud.talk.utils.FileViewerUtils
 
 class SharedItemsGridAdapter : RecyclerView.Adapter<SharedItemsGridAdapter.ViewHolder>() {
@@ -66,9 +65,10 @@ class SharedItemsGridAdapter : RecyclerView.Adapter<SharedItemsGridAdapter.ViewH
         } else {
             setStaticMimetypeImage(currentItem, holder)
         }
-        holder.binding.image.setOnClickListener {
-            val fileViewerUtils = FileViewerUtils(it.context, currentItem.userEntity)
 
+        val fileViewerUtils = FileViewerUtils(holder.binding.image.context, currentItem.userEntity)
+
+        holder.binding.image.setOnClickListener {
             fileViewerUtils.openFile(
                 FileViewerUtils.FileInfo(currentItem.id, currentItem.name, currentItem.fileSize),
                 currentItem.path,
@@ -77,15 +77,21 @@ class SharedItemsGridAdapter : RecyclerView.Adapter<SharedItemsGridAdapter.ViewH
                 FileViewerUtils.ProgressUi(
                     holder.binding.progressBar,
                     null,
-                    it as SimpleDraweeView
-                )
+                    it as SimpleDraweeView)
             )
         }
+
+        fileViewerUtils.resumeToUpdateViewsByProgress(
+            currentItem.name,
+            currentItem.id,
+            currentItem.mimeType,
+            FileViewerUtils.ProgressUi(holder.binding.progressBar, null, holder.binding.image)
+        )
     }
 
     private fun setStaticMimetypeImage(
         currentItem: SharedItem,
-        holder: SharedItemsGridAdapter.ViewHolder
+        holder: ViewHolder
     ) {
         val drawableResourceId = DrawableUtils.getDrawableResourceIdForMimeType(currentItem.mimeType)
         val drawable = ContextCompat.getDrawable(holder.binding.image.context, drawableResourceId)

+ 15 - 3
app/src/main/java/com/nextcloud/talk/adapters/SharedItemsListAdapter.kt

@@ -20,6 +20,7 @@ import com.nextcloud.talk.repositories.SharedItem
 import com.nextcloud.talk.utils.DateUtils
 import com.nextcloud.talk.utils.DrawableUtils
 import com.nextcloud.talk.utils.FileViewerUtils
+import com.nextcloud.talk.utils.FileViewerUtils.ProgressUi
 
 class SharedItemsListAdapter : RecyclerView.Adapter<SharedItemsListAdapter.ViewHolder>() {
 
@@ -76,17 +77,28 @@ class SharedItemsListAdapter : RecyclerView.Adapter<SharedItemsListAdapter.ViewH
         } else {
             setStaticMimetypeImage(currentItem, holder)
         }
-        holder.binding.fileItem.setOnClickListener {
-            val fileViewerUtils = FileViewerUtils(it.context, currentItem.userEntity)
 
+        val fileViewerUtils = FileViewerUtils(holder.binding.fileImage.context, currentItem.userEntity)
+
+        holder.binding.fileItem.setOnClickListener {
             fileViewerUtils.openFile(
                 FileViewerUtils.FileInfo(currentItem.id, currentItem.name, currentItem.fileSize),
                 currentItem.path,
                 currentItem.link,
                 currentItem.mimeType,
-                FileViewerUtils.ProgressUi(holder.binding.progressBar, null, holder.binding.fileImage)
+                ProgressUi(
+                    holder.binding.progressBar,
+                    null,
+                    holder.binding.fileImage)
             )
         }
+
+        fileViewerUtils.resumeToUpdateViewsByProgress(
+            currentItem.name,
+            currentItem.id,
+            currentItem.mimeType,
+            ProgressUi(holder.binding.progressBar, null, holder.binding.fileImage)
+        )
     }
 
     private fun setStaticMimetypeImage(