show mimetype icons from DrawableUtils

Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
Marcel Hibbe 2022-04-29 11:20:43 +02:00
parent 704ea90449
commit 8c20180545
No known key found for this signature in database
GPG Key ID: C793F8B59F43CE7B
2 changed files with 10 additions and 40 deletions

View File

@ -4,15 +4,16 @@ import android.net.Uri
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.facebook.drawee.backends.pipeline.Fresco import com.facebook.drawee.backends.pipeline.Fresco
import com.facebook.drawee.interfaces.DraweeController import com.facebook.drawee.interfaces.DraweeController
import com.facebook.drawee.view.SimpleDraweeView import com.facebook.drawee.view.SimpleDraweeView
import com.facebook.imagepipeline.common.RotationOptions import com.facebook.imagepipeline.common.RotationOptions
import com.facebook.imagepipeline.request.ImageRequestBuilder import com.facebook.imagepipeline.request.ImageRequestBuilder
import com.nextcloud.talk.R
import com.nextcloud.talk.databinding.AttachmentItemBinding import com.nextcloud.talk.databinding.AttachmentItemBinding
import com.nextcloud.talk.repositories.SharedItem import com.nextcloud.talk.repositories.SharedItem
import com.nextcloud.talk.utils.DrawableUtils.getDrawableResourceIdForMimeType
import com.nextcloud.talk.utils.FileViewerUtils import com.nextcloud.talk.utils.FileViewerUtils
class SharedItemsAdapter : RecyclerView.Adapter<SharedItemsAdapter.ViewHolder>() { class SharedItemsAdapter : RecyclerView.Adapter<SharedItemsAdapter.ViewHolder>() {
@ -50,25 +51,9 @@ class SharedItemsAdapter : RecyclerView.Adapter<SharedItemsAdapter.ViewHolder>()
.build() .build()
holder.binding.image.controller = draweeController holder.binding.image.controller = draweeController
} else { } else {
when (currentItem.mimeType) { val drawableResourceId = getDrawableResourceIdForMimeType(currentItem.mimeType)
"video/mp4", val drawable = ContextCompat.getDrawable(holder.binding.image.context, drawableResourceId)
"video/quicktime", holder.binding.image.hierarchy.setPlaceholderImage(drawable)
"video/ogg"
-> holder.binding.image.setImageResource(R.drawable.ic_mimetype_video)
"audio/mpeg",
"audio/wav",
"audio/ogg",
-> holder.binding.image.setImageResource(R.drawable.ic_mimetype_audio)
"image/png",
"image/jpeg",
"image/gif"
-> holder.binding.image.setImageResource(R.drawable.ic_mimetype_image)
"text/markdown",
"text/plain"
-> holder.binding.image.setImageResource(R.drawable.ic_mimetype_text)
else
-> holder.binding.image.setImageResource(R.drawable.ic_mimetype_file)
}
} }
holder.binding.image.setOnClickListener { holder.binding.image.setOnClickListener {
val fileViewerUtils = FileViewerUtils(it.context, currentItem.userEntity) val fileViewerUtils = FileViewerUtils(it.context, currentItem.userEntity)

View File

@ -5,15 +5,16 @@ import android.text.format.Formatter
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.facebook.drawee.backends.pipeline.Fresco import com.facebook.drawee.backends.pipeline.Fresco
import com.facebook.drawee.interfaces.DraweeController import com.facebook.drawee.interfaces.DraweeController
import com.facebook.imagepipeline.common.RotationOptions import com.facebook.imagepipeline.common.RotationOptions
import com.facebook.imagepipeline.request.ImageRequestBuilder import com.facebook.imagepipeline.request.ImageRequestBuilder
import com.nextcloud.talk.R
import com.nextcloud.talk.databinding.AttachmentListItemBinding import com.nextcloud.talk.databinding.AttachmentListItemBinding
import com.nextcloud.talk.repositories.SharedItem 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.FileViewerUtils import com.nextcloud.talk.utils.FileViewerUtils
class SharedItemsListAdapter : RecyclerView.Adapter<SharedItemsListAdapter.ViewHolder>() { class SharedItemsListAdapter : RecyclerView.Adapter<SharedItemsListAdapter.ViewHolder>() {
@ -61,25 +62,9 @@ class SharedItemsListAdapter : RecyclerView.Adapter<SharedItemsListAdapter.ViewH
.build() .build()
holder.binding.fileImage.controller = draweeController holder.binding.fileImage.controller = draweeController
} else { } else {
when (currentItem.mimeType) { val drawableResourceId = DrawableUtils.getDrawableResourceIdForMimeType(currentItem.mimeType)
"video/mp4", val drawable = ContextCompat.getDrawable(holder.binding.fileImage.context, drawableResourceId)
"video/quicktime", holder.binding.fileImage.hierarchy.setPlaceholderImage(drawable)
"video/ogg"
-> holder.binding.fileImage.setImageResource(R.drawable.ic_mimetype_video)
"audio/mpeg",
"audio/wav",
"audio/ogg",
-> holder.binding.fileImage.setImageResource(R.drawable.ic_mimetype_audio)
"image/png",
"image/jpeg",
"image/gif"
-> holder.binding.fileImage.setImageResource(R.drawable.ic_mimetype_image)
"text/markdown",
"text/plain"
-> holder.binding.fileImage.setImageResource(R.drawable.ic_mimetype_text)
else
-> holder.binding.fileImage.setImageResource(R.drawable.ic_mimetype_file)
}
} }
holder.binding.fileItem.setOnClickListener { holder.binding.fileItem.setOnClickListener {
val fileViewerUtils = FileViewerUtils(it.context, currentItem.userEntity) val fileViewerUtils = FileViewerUtils(it.context, currentItem.userEntity)