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" /> + +