@@ -26,7 +26,6 @@ package com.owncloud.android.presentation.files.filelist
2626
2727import android.accounts.Account
2828import android.content.Context
29- import android.graphics.Bitmap
3029import android.graphics.Color
3130import android.view.LayoutInflater
3231import android.view.View
@@ -42,7 +41,8 @@ import com.owncloud.android.R
4241import com.owncloud.android.databinding.GridItemBinding
4342import com.owncloud.android.databinding.ItemFileListBinding
4443import com.owncloud.android.databinding.ListFooterBinding
45- import com.owncloud.android.datamodel.ThumbnailsCacheManager
44+ import com.owncloud.android.presentation.thumbnails.ThumbnailsRequester
45+ import coil.load
4646import com.owncloud.android.domain.files.model.FileListOption
4747import com.owncloud.android.domain.files.model.OCFileWithSyncInfo
4848import com.owncloud.android.domain.files.model.OCFooterFile
@@ -188,7 +188,6 @@ class FileListAdapter(
188188 val fileIcon = holder.itemView.findViewById<ImageView >(R .id.thumbnail).apply {
189189 tag = file.id
190190 }
191- val thumbnail: Bitmap ? = file.remoteId?.let { ThumbnailsCacheManager .getBitmapFromDiskCache(file.remoteId) }
192191
193192 holder.itemView.findViewById<LinearLayout >(R .id.ListItemLayout )?.apply {
194193 contentDescription = " LinearLayout-$name "
@@ -203,7 +202,7 @@ class FileListAdapter(
203202 holder.itemView.findViewById<ImageView >(R .id.shared_via_users_icon).isVisible =
204203 file.sharedWithSharee == true || file.isSharedWithMe
205204
206- setSpecificViewHolder(viewType, holder, fileWithSyncInfo, thumbnail )
205+ setSpecificViewHolder(viewType, holder, fileWithSyncInfo)
207206
208207 setIconPinAccordingToFilesLocalState(holder.itemView.findViewById(R .id.localFileIndicator), fileWithSyncInfo)
209208
@@ -237,22 +236,12 @@ class FileListAdapter(
237236 // Folder
238237 fileIcon.setImageResource(R .drawable.ic_menu_archive)
239238 } else {
240- // Set file icon depending on its mimetype. Ask for thumbnail later.
241- fileIcon.setImageResource(MimetypeIconUtil .getFileTypeIconId(file.mimeType, file.fileName))
242-
243- if (thumbnail != null ) {
244- fileIcon.setImageBitmap(thumbnail)
245- }
246- if (file.needsToUpdateThumbnail && ThumbnailsCacheManager .cancelPotentialThumbnailWork(file, fileIcon)) {
247- // generate new Thumbnail
248- val task = ThumbnailsCacheManager .ThumbnailGenerationTask (fileIcon, account)
249- val asyncDrawable = ThumbnailsCacheManager .AsyncThumbnailDrawable (context.resources, thumbnail, task)
250-
251- // If drawable is not visible, do not update it.
252- if (asyncDrawable.minimumHeight > 0 && asyncDrawable.minimumWidth > 0 ) {
253- fileIcon.setImageDrawable(asyncDrawable)
254- }
255- task.execute(file)
239+ fileIcon.load(
240+ ThumbnailsRequester .getPreviewUriForFile(fileWithSyncInfo, account!! ),
241+ ThumbnailsRequester .getCoilImageLoader()
242+ ) {
243+ placeholder(MimetypeIconUtil .getFileTypeIconId(file.mimeType, file.fileName))
244+ error(MimetypeIconUtil .getFileTypeIconId(file.mimeType, file.fileName))
256245 }
257246
258247 if (file.mimeType == " image/png" ) {
@@ -272,7 +261,7 @@ class FileListAdapter(
272261 }
273262 }
274263
275- private fun setSpecificViewHolder (viewType : Int , holder : RecyclerView .ViewHolder , fileWithSyncInfo : OCFileWithSyncInfo , thumbnail : Bitmap ? ) {
264+ private fun setSpecificViewHolder (viewType : Int , holder : RecyclerView .ViewHolder , fileWithSyncInfo : OCFileWithSyncInfo ) {
276265 val file = fileWithSyncInfo.file
277266
278267 when (viewType) {
@@ -327,23 +316,14 @@ class FileListAdapter(
327316 val fileIcon = holder.itemView.findViewById<ImageView >(R .id.thumbnail)
328317 val layoutParams = fileIcon.layoutParams as ViewGroup .MarginLayoutParams
329318
330- if (thumbnail == null ) {
331- view.binding.Filename .text = file.fileName
332- // Reset layout params values default
333- manageGridLayoutParams(
334- layoutParams = layoutParams,
335- marginVertical = 0 ,
336- height = context.resources.getDimensionPixelSize(R .dimen.item_file_grid_height),
337- width = context.resources.getDimensionPixelSize(R .dimen.item_file_grid_width),
338- )
339- } else {
340- manageGridLayoutParams(
341- layoutParams = layoutParams,
342- marginVertical = context.resources.getDimensionPixelSize(R .dimen.item_file_image_grid_margin),
343- height = ViewGroup .LayoutParams .MATCH_PARENT ,
344- width = ViewGroup .LayoutParams .MATCH_PARENT ,
345- )
346- }
319+ view.binding.Filename .text = file.fileName
320+ // Reset layout params values default
321+ manageGridLayoutParams(
322+ layoutParams = layoutParams,
323+ marginVertical = 0 ,
324+ height = context.resources.getDimensionPixelSize(R .dimen.item_file_grid_height),
325+ width = context.resources.getDimensionPixelSize(R .dimen.item_file_grid_width),
326+ )
347327 }
348328 }
349329 }
@@ -412,7 +392,7 @@ class FileListAdapter(
412392 }
413393
414394 filesCount == 1 -> {
415- when {
395+ when {
416396 foldersCount <= 0 -> {
417397 context.getString(R .string.file_list__footer__file)
418398 }
0 commit comments