determine the message attachments size at fetching

This commit is contained in:
tibbi 2020-04-12 20:41:31 +02:00
parent 81b12dea70
commit 7c355e9aae
4 changed files with 28 additions and 6 deletions

View File

@ -3,6 +3,7 @@ package com.simplemobiletools.smsmessenger.activities
import android.app.Activity
import android.app.PendingIntent
import android.content.Intent
import android.graphics.BitmapFactory
import android.graphics.drawable.Drawable
import android.net.Uri
import android.os.Bundle
@ -83,8 +84,29 @@ class ThreadActivity : SimpleActivity() {
} else {
messages.first().participants
}
setupAdapter()
messages.filter { it.attachment != null }.forEach {
it.attachment!!.attachments.forEach {
try {
val fileOptions = BitmapFactory.Options()
fileOptions.inJustDecodeBounds = true
BitmapFactory.decodeStream(contentResolver.openInputStream(it.uri), null, fileOptions)
it.width = fileOptions.outWidth
it.height = fileOptions.outHeight
if (it.width == -1) {
it.width = 0
}
if (it.height == -1) {
it.height = 0
}
} catch (ignored: Exception) {
}
}
}
setupAdapter()
runOnUiThread {
supportActionBar?.title = participants.getThreadTitle()
}

View File

@ -227,7 +227,7 @@ fun Context.getMmsAttachment(id: Int): MessageAttachment? {
if (type == "text/plain") {
messageAttachment.text = cursor.getStringValue(Mms.Part.TEXT) ?: ""
} else if (type.startsWith("image/") || type.startsWith("video/")) {
val attachment = Attachment(Uri.withAppendedPath(uri, partId), type)
val attachment = Attachment(Uri.withAppendedPath(uri, partId), type, 0, 0)
messageAttachment.attachments.add(attachment)
}
}

View File

@ -2,4 +2,4 @@ package com.simplemobiletools.smsmessenger.models
import android.net.Uri
data class Attachment(var uri: Uri, var type: String)
data class Attachment(var uri: Uri, var type: String, var width: Int, var height: Int)

View File

@ -36,8 +36,8 @@
android:id="@+id/thread_message_play_outline"
android:layout_width="@dimen/play_outline_size"
android:layout_height="@dimen/play_outline_size"
android:layout_alignEnd="@+id/thread_message_image"
android:layout_alignBottom="@+id/thread_message_image"
android:layout_alignEnd="@+id/thread_mesage_attachments_holder"
android:layout_alignBottom="@+id/thread_mesage_attachments_holder"
android:layout_margin="@dimen/medium_margin"
android:src="@drawable/ic_play_outline"
android:visibility="gone" />
@ -46,7 +46,7 @@
android:id="@+id/thread_message_body"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/thread_message_image"
android:layout_below="@+id/thread_mesage_attachments_holder"
android:layout_toEndOf="@+id/thread_message_photo"
android:background="@drawable/item_received_background"
android:padding="@dimen/normal_margin"