diff --git a/app/src/main/java/chat/rocket/android/chatroom/adapter/AttachmentViewHolder.kt b/app/src/main/java/chat/rocket/android/chatroom/adapter/AttachmentViewHolder.kt
index 2c5ed9fdb8..fa653ad4d2 100644
--- a/app/src/main/java/chat/rocket/android/chatroom/adapter/AttachmentViewHolder.kt
+++ b/app/src/main/java/chat/rocket/android/chatroom/adapter/AttachmentViewHolder.kt
@@ -65,6 +65,14 @@ class AttachmentViewHolder(
data.hasFile -> bindFile(data)
}
+ file_info.isVisible = data.hasAudioOrVideo || data.hasImage
+
+ when {
+ data.hasVideo -> file_info.text = data.rawData.videoSize?.toDataSize()
+ data.hasAudio -> file_info.text = data.rawData.audioSize?.toDataSize()
+ data.hasImage -> file_info.text = data.rawData.imageSize?.toDataSize()
+ }
+
// File description - self describing
file_description.isVisible = data.hasDescription
file_description.text = data.description
@@ -130,9 +138,9 @@ class AttachmentViewHolder(
image_attachment.controller = controller
image_attachment.setOnClickListener {
ImageHelper.openImage(
- context,
- data.imageUrl!!,
- data.title?.toString()
+ context,
+ data.imageUrl!!,
+ data.title?.toString()
)
}
@@ -283,10 +291,10 @@ class AttachmentViewHolder(
attachment_text.isVisible = data.hasText
attachment_text.text = data.text
actions_list.layoutManager = LinearLayoutManager(itemView.context,
- when (alignment) {
- "horizontal" -> LinearLayoutManager.HORIZONTAL
- else -> LinearLayoutManager.VERTICAL //Default
- }, false)
+ when (alignment) {
+ "horizontal" -> LinearLayoutManager.HORIZONTAL
+ else -> LinearLayoutManager.VERTICAL //Default
+ }, false)
actions_list.adapter = ActionsListAdapter(actions, actionAttachmentOnClickListener)
}
}
@@ -299,6 +307,25 @@ class AttachmentViewHolder(
}
}
+object DataMeasure {
+ const val BYTE = 1
+ const val KILOBYTE = 1024
+ const val MEGABYTE = KILOBYTE * 1024
+ const val GIGABYTE = MEGABYTE * 1024
+}
+
+private fun Long.toDataSize(): String {
+ val size = this.toFloat()
+
+ return when {
+ size > DataMeasure.GIGABYTE -> String.format("%.2f Gb", size / DataMeasure.GIGABYTE)
+ size > DataMeasure.MEGABYTE -> String.format("%.2f Mb", size / DataMeasure.MEGABYTE)
+ size > DataMeasure.KILOBYTE -> String.format("%.2f Kb", size / DataMeasure.KILOBYTE)
+ else -> "$this b"
+ }
+
+}
+
interface ActionAttachmentOnClickListener {
fun onActionClicked(view: View, action: Action)
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_message_attachment.xml b/app/src/main/res/layout/item_message_attachment.xml
index 0ffb5ca0d4..48eabe82f3 100644
--- a/app/src/main/res/layout/item_message_attachment.xml
+++ b/app/src/main/res/layout/item_message_attachment.xml
@@ -43,6 +43,17 @@
tools:text="Some description"
tools:visibility="visible" />
+
+