|
@@ -20,6 +20,7 @@
|
|
|
|
|
|
package com.nextcloud.talk.remotefilebrowser.adapters
|
|
|
|
|
|
+import android.graphics.drawable.Drawable
|
|
|
import android.text.format.Formatter
|
|
|
import android.view.View
|
|
|
import androidx.appcompat.content.res.AppCompatResources
|
|
@@ -33,6 +34,7 @@ import com.nextcloud.talk.data.user.model.User
|
|
|
import com.nextcloud.talk.databinding.RvItemBrowserFileBinding
|
|
|
import com.nextcloud.talk.remotefilebrowser.SelectionInterface
|
|
|
import com.nextcloud.talk.remotefilebrowser.model.RemoteFileBrowserItem
|
|
|
+import com.nextcloud.talk.ui.theme.ViewThemeUtils
|
|
|
import com.nextcloud.talk.utils.ApiUtils
|
|
|
import com.nextcloud.talk.utils.DateUtils.getLocalDateTimeStringFromTimestamp
|
|
|
import com.nextcloud.talk.utils.DisplayUtils
|
|
@@ -45,6 +47,7 @@ class RemoteFileBrowserItemsListViewHolder(
|
|
|
mimeTypeSelectionFilter: String?,
|
|
|
currentUser: User,
|
|
|
selectionInterface: SelectionInterface,
|
|
|
+ private val viewThemeUtils: ViewThemeUtils,
|
|
|
onItemClicked: (Int) -> Unit
|
|
|
) : RemoteFileBrowserItemsViewHolder(binding, mimeTypeSelectionFilter, currentUser, selectionInterface) {
|
|
|
|
|
@@ -66,7 +69,6 @@ class RemoteFileBrowserItemsListViewHolder(
|
|
|
}
|
|
|
|
|
|
override fun onBind(item: RemoteFileBrowserItem) {
|
|
|
-
|
|
|
super.onBind(item)
|
|
|
|
|
|
binding.fileIcon.controller = null
|
|
@@ -99,9 +101,7 @@ class RemoteFileBrowserItemsListViewHolder(
|
|
|
binding.fileIcon
|
|
|
.hierarchy
|
|
|
.setPlaceholderImage(
|
|
|
- AppCompatResources.getDrawable(
|
|
|
- binding.fileIcon.context, getDrawableResourceIdForMimeType(item.mimeType)
|
|
|
- )
|
|
|
+ getPlaceholderImage(item)
|
|
|
)
|
|
|
|
|
|
if (item.hasPreview) {
|
|
@@ -129,9 +129,23 @@ class RemoteFileBrowserItemsListViewHolder(
|
|
|
binding.selectFileCheckbox.isChecked = selectionInterface.isPathSelected(item.path!!)
|
|
|
}
|
|
|
|
|
|
+ private fun getPlaceholderImage(item: RemoteFileBrowserItem): Drawable? {
|
|
|
+ val drawableResourceId = getDrawableResourceIdForMimeType(item.mimeType)
|
|
|
+ val context = binding.fileIcon.context
|
|
|
+ val drawable = AppCompatResources.getDrawable(
|
|
|
+ context,
|
|
|
+ drawableResourceId
|
|
|
+ )
|
|
|
+ if (drawable != null && THEMEABLE_PLACEHOLDER_IDS.contains(drawableResourceId)) {
|
|
|
+ viewThemeUtils.colorDrawable(context, drawable)
|
|
|
+ }
|
|
|
+ return drawable
|
|
|
+ }
|
|
|
+
|
|
|
private fun setSelectability() {
|
|
|
if (selectable) {
|
|
|
binding.selectFileCheckbox.visibility = View.VISIBLE
|
|
|
+ viewThemeUtils.themeCheckbox(binding.selectFileCheckbox)
|
|
|
} else {
|
|
|
binding.selectFileCheckbox.visibility = View.GONE
|
|
|
}
|
|
@@ -150,5 +164,9 @@ class RemoteFileBrowserItemsListViewHolder(
|
|
|
companion object {
|
|
|
private const val DISABLED_ALPHA: Float = 0.38f
|
|
|
private const val ENABLED_ALPHA: Float = 1.0f
|
|
|
+ private val THEMEABLE_PLACEHOLDER_IDS = listOf(
|
|
|
+ R.drawable.ic_mimetype_package_x_generic,
|
|
|
+ R.drawable.ic_mimetype_folder
|
|
|
+ )
|
|
|
}
|
|
|
}
|