diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/AttachmentsAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/AttachmentsAdapter.kt index c8ffce4c..c96fccdd 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/AttachmentsAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/AttachmentsAdapter.kt @@ -90,6 +90,7 @@ class AttachmentsAdapter( view.setupDocumentPreview( uri = attachment.uri, title = attachment.filename, + mimeType = attachment.mimetype, attachment = true, onClick = { activity.launchViewIntent(attachment.uri, attachment.mimetype, attachment.filename) }, onRemoveButtonClicked = { removeAttachment(attachment) } diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt index bb6abdf5..f56fa634 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/adapters/ThreadAdapter.kt @@ -427,6 +427,7 @@ class ThreadAdapter( setupDocumentPreview( uri = uri, title = attachment.filename, + mimeType = attachment.mimetype, onClick = { if (actModeCallback.isSelectable) { holder.viewClicked(message) diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/String.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/String.kt index ac2b8948..8ba65db8 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/String.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/String.kt @@ -23,3 +23,19 @@ fun String.isVCardMimeType(): Boolean { val lowercase = lowercase() return lowercase.endsWith("x-vcard") || lowercase.endsWith("vcard") } + +fun String.isAudioMimeType(): Boolean { + return lowercase().startsWith("audio") +} + +fun String.isCalendarMimeType(): Boolean { + return lowercase().endsWith("calendar") +} + +fun String.isPdfMimeType(): Boolean { + return lowercase().endsWith("pdf") +} + +fun String.isZipMimeType(): Boolean { + return lowercase().endsWith("zip") +} diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/AttachmentPreviews.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/AttachmentPreviews.kt index 222ad3cf..82d7eeb8 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/AttachmentPreviews.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/helpers/AttachmentPreviews.kt @@ -6,7 +6,7 @@ import android.view.View import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.helpers.SimpleContactsHelper import com.simplemobiletools.smsmessenger.R -import com.simplemobiletools.smsmessenger.extensions.getFileSizeFromUri +import com.simplemobiletools.smsmessenger.extensions.* import kotlinx.android.synthetic.main.item_attachment_document.view.* import kotlinx.android.synthetic.main.item_attachment_vcard.view.* import kotlinx.android.synthetic.main.item_attachment_vcard_preview.view.* @@ -15,6 +15,7 @@ import kotlinx.android.synthetic.main.item_remove_attachment_button.view.* fun View.setupDocumentPreview( uri: Uri, title: String, + mimeType: String, attachment: Boolean = false, onClick: (() -> Unit)? = null, onLongClick: (() -> Unit)? = null, @@ -38,7 +39,8 @@ fun View.setupDocumentPreview( document_attachment_holder.background.applyColorFilter(textColor) filename.setTextColor(textColor) file_size.setTextColor(textColor) - // todo: set icon drawable based on mime type + + icon.setImageResource(getIconResourceForMimeType(mimeType)) icon.background.setTint(primaryColor) document_attachment_holder.background.applyColorFilter(primaryColor.darkenColor()) @@ -140,3 +142,11 @@ fun View.setupVCardPreview( } } } + +private fun getIconResourceForMimeType(mimeType: String) = when { + mimeType.isAudioMimeType() -> R.drawable.ic_vector_audio_file + mimeType.isCalendarMimeType() -> R.drawable.ic_calendar_month_vector + mimeType.isPdfMimeType() -> R.drawable.ic_vector_pdf + mimeType.isZipMimeType() -> R.drawable.ic_vector_folder_zip + else -> R.drawable.ic_document_vector +} diff --git a/app/src/main/res/drawable/ic_vector_audio_file.xml b/app/src/main/res/drawable/ic_vector_audio_file.xml new file mode 100644 index 00000000..ef4035d4 --- /dev/null +++ b/app/src/main/res/drawable/ic_vector_audio_file.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_vector_folder_zip.xml b/app/src/main/res/drawable/ic_vector_folder_zip.xml new file mode 100644 index 00000000..6e94c4b9 --- /dev/null +++ b/app/src/main/res/drawable/ic_vector_folder_zip.xml @@ -0,0 +1,5 @@ + + + diff --git a/app/src/main/res/drawable/ic_vector_pdf.xml b/app/src/main/res/drawable/ic_vector_pdf.xml new file mode 100644 index 00000000..84899cf5 --- /dev/null +++ b/app/src/main/res/drawable/ic_vector_pdf.xml @@ -0,0 +1,9 @@ + + +