55 lines
1.7 KiB
Kotlin
55 lines
1.7 KiB
Kotlin
package com.simplemobiletools.smsmessenger.helpers
|
|
|
|
import android.net.Uri
|
|
import android.view.View
|
|
import com.simplemobiletools.commons.extensions.*
|
|
import com.simplemobiletools.smsmessenger.extensions.getFileSizeFromUri
|
|
import kotlinx.android.synthetic.main.item_attachment_document.view.*
|
|
import kotlinx.android.synthetic.main.item_remove_attachment_button.view.*
|
|
|
|
fun View.setupDocumentPreview(
|
|
uri: Uri,
|
|
title: String,
|
|
attachment: Boolean = false,
|
|
onClick: (() -> Unit)? = null,
|
|
onLongClick: (() -> Unit)? = null,
|
|
onRemoveButtonClicked: (() -> Unit)? = null
|
|
) {
|
|
if (title.isNotEmpty()) {
|
|
filename.text = title
|
|
}
|
|
|
|
val size = context.getFileSizeFromUri(uri)
|
|
file_size.beVisible()
|
|
file_size.text = size.formatSize()
|
|
|
|
val textColor = context.getProperTextColor()
|
|
val primaryColor = context.getProperPrimaryColor()
|
|
|
|
document_attachment_holder.background.applyColorFilter(textColor)
|
|
filename.setTextColor(textColor)
|
|
file_size.setTextColor(textColor)
|
|
// todo: set icon drawable based on mime type
|
|
icon.background.setTint(primaryColor)
|
|
document_attachment_holder.background.applyColorFilter(primaryColor.darkenColor())
|
|
|
|
if (attachment) {
|
|
remove_attachment_button.apply {
|
|
beVisible()
|
|
background.applyColorFilter(primaryColor)
|
|
if (onRemoveButtonClicked != null) {
|
|
setOnClickListener {
|
|
onRemoveButtonClicked.invoke()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
document_attachment_holder.setOnClickListener {
|
|
onClick?.invoke()
|
|
}
|
|
document_attachment_holder.setOnLongClickListener {
|
|
onLongClick?.invoke()
|
|
true
|
|
}
|
|
}
|