From 1a6ec44828f4fc99979ff2d8936723db881c6528 Mon Sep 17 00:00:00 2001 From: Thomas More Date: Fri, 20 Sep 2024 17:11:48 -0400 Subject: [PATCH] Default to not include MMS address sub_ids in import Some MMS address metadata apparently contain a sub_id field (despite the absence of any mention of this in the API documentation at https://developer.android.com/reference/android/provider/Telephony.Mms.Addr), and attempting to import these sub_ids can cause address import failure. This is probably related to https://github.com/tmo1/sms-ie/issues/128. In any event, this commit fixes the problem by extending the solution to that issue (c56fa0e7d65cf44b69e3698bd3fe9e38a81850a9) to MMS address metadata sub_ids. This commit also corrects a coding error that caused MMS addresses to be inserted multiple times. Closes: #213 Related: #128, #142 --- .../com/github/tmo1/sms_ie/ImportExportMessages.kt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/github/tmo1/sms_ie/ImportExportMessages.kt b/app/src/main/java/com/github/tmo1/sms_ie/ImportExportMessages.kt index 021e462..905016f 100644 --- a/app/src/main/java/com/github/tmo1/sms_ie/ImportExportMessages.kt +++ b/app/src/main/java/com/github/tmo1/sms_ie/ImportExportMessages.kt @@ -522,8 +522,8 @@ suspend fun importMessages( ) ) } - addresses.add(address) } + addresses.add(address) } }/* If we don't yet have a thread_id (i.e., the message has a new thread_id that we haven't yet encountered and so isn't yet in @@ -568,9 +568,18 @@ suspend fun importMessages( val messageId = insertUri.lastPathSegment val addressUri = Uri.parse("content://mms/$messageId/addr") addresses.forEach { address -> + // Some MMS address metadata contain sub_ids, and attempting to import them can cause the address import to fail: + // See: https://github.com/tmo1/sms-ie/issues/213 + if (!prefs.getBoolean( + "import_sub_ids", false + ) && address.containsKey("sub_id") + ) { + address.put("sub_id", "-1") + } address.put( Telephony.Mms.Addr.MSG_ID, messageId - )/*Log.v( + ) + /*Log.v( LOG_TAG, "Trying to insert MMS address - metadata:" + address.toString() )*/