From 8ba008ef48d014dca43f3fb38791307c04e7fc68 Mon Sep 17 00:00:00 2001 From: Moez Bhatti Date: Sat, 8 Sep 2018 02:19:16 -0400 Subject: [PATCH] #1297 - Respect subject charset when decoding subject --- .../java/com/moez/QKSMS/mapper/CursorToMessageImpl.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/data/src/main/java/com/moez/QKSMS/mapper/CursorToMessageImpl.kt b/data/src/main/java/com/moez/QKSMS/mapper/CursorToMessageImpl.kt index 46979389..f55bdad7 100644 --- a/data/src/main/java/com/moez/QKSMS/mapper/CursorToMessageImpl.kt +++ b/data/src/main/java/com/moez/QKSMS/mapper/CursorToMessageImpl.kt @@ -22,7 +22,9 @@ import android.content.Context import android.database.Cursor import android.net.Uri import android.provider.Telephony.* +import com.google.android.mms.pdu_alt.EncodedStringValue import com.google.android.mms.pdu_alt.PduHeaders +import com.google.android.mms.pdu_alt.PduPersister import com.moez.QKSMS.extensions.map import com.moez.QKSMS.manager.KeyManager import com.moez.QKSMS.manager.PermissionManager @@ -114,7 +116,11 @@ class CursorToMessageImpl @Inject constructor( readReportString = cursor.getString(columnsMap.mmsReadReport) ?: "" messageType = cursor.getInt(columnsMap.mmsMessageType) mmsStatus = cursor.getInt(columnsMap.mmsStatus) - subject = cursor.getString(columnsMap.mmsSubject) ?: "" + val subjectCharset = cursor.getInt(columnsMap.mmsSubjectCharset) + subject = cursor.getString(columnsMap.mmsSubject) + ?.takeIf { it.isNotBlank() } + ?.let(PduPersister::getBytes) + ?.let { EncodedStringValue(subjectCharset, it).string } ?: "" textContentType = "" attachmentType = Message.AttachmentType.NOT_LOADED