Эх сурвалжийг харах

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 жил өмнө
parent
commit
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.databinding.SharedItemGridBinding
 import com.nextcloud.talk.repositories.SharedItem
 import com.nextcloud.talk.repositories.SharedItem
 import com.nextcloud.talk.utils.DrawableUtils
 import com.nextcloud.talk.utils.DrawableUtils
-import com.nextcloud.talk.utils.DrawableUtils.getDrawableResourceIdForMimeType
 import com.nextcloud.talk.utils.FileViewerUtils
 import com.nextcloud.talk.utils.FileViewerUtils
 
 
 class SharedItemsGridAdapter : RecyclerView.Adapter<SharedItemsGridAdapter.ViewHolder>() {
 class SharedItemsGridAdapter : RecyclerView.Adapter<SharedItemsGridAdapter.ViewHolder>() {
@@ -66,9 +65,10 @@ class SharedItemsGridAdapter : RecyclerView.Adapter<SharedItemsGridAdapter.ViewH
         } else {
         } else {
             setStaticMimetypeImage(currentItem, holder)
             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.openFile(
                 FileViewerUtils.FileInfo(currentItem.id, currentItem.name, currentItem.fileSize),
                 FileViewerUtils.FileInfo(currentItem.id, currentItem.name, currentItem.fileSize),
                 currentItem.path,
                 currentItem.path,
@@ -77,15 +77,21 @@ class SharedItemsGridAdapter : RecyclerView.Adapter<SharedItemsGridAdapter.ViewH
                 FileViewerUtils.ProgressUi(
                 FileViewerUtils.ProgressUi(
                     holder.binding.progressBar,
                     holder.binding.progressBar,
                     null,
                     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(
     private fun setStaticMimetypeImage(
         currentItem: SharedItem,
         currentItem: SharedItem,
-        holder: SharedItemsGridAdapter.ViewHolder
+        holder: ViewHolder
     ) {
     ) {
         val drawableResourceId = DrawableUtils.getDrawableResourceIdForMimeType(currentItem.mimeType)
         val drawableResourceId = DrawableUtils.getDrawableResourceIdForMimeType(currentItem.mimeType)
         val drawable = ContextCompat.getDrawable(holder.binding.image.context, drawableResourceId)
         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.DateUtils
 import com.nextcloud.talk.utils.DrawableUtils
 import com.nextcloud.talk.utils.DrawableUtils
 import com.nextcloud.talk.utils.FileViewerUtils
 import com.nextcloud.talk.utils.FileViewerUtils
+import com.nextcloud.talk.utils.FileViewerUtils.ProgressUi
 
 
 class SharedItemsListAdapter : RecyclerView.Adapter<SharedItemsListAdapter.ViewHolder>() {
 class SharedItemsListAdapter : RecyclerView.Adapter<SharedItemsListAdapter.ViewHolder>() {
 
 
@@ -76,17 +77,28 @@ class SharedItemsListAdapter : RecyclerView.Adapter<SharedItemsListAdapter.ViewH
         } else {
         } else {
             setStaticMimetypeImage(currentItem, holder)
             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.openFile(
                 FileViewerUtils.FileInfo(currentItem.id, currentItem.name, currentItem.fileSize),
                 FileViewerUtils.FileInfo(currentItem.id, currentItem.name, currentItem.fileSize),
                 currentItem.path,
                 currentItem.path,
                 currentItem.link,
                 currentItem.link,
                 currentItem.mimeType,
                 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(
     private fun setStaticMimetypeImage(