Skip to content

[SMS Plugin] Change android-smsmms to in-house build until upstream supports SDK31

Summary

Android apps which target SDK 31+ require specifying the mutability of any PENDING_INTENT. This is not supported in the upstream android-smsmms library: https://github.com/klinker41/android-smsmms/pull/193

Until the above PR is merged, we need a solution. I have pulled the code into https://invent.kde.org/sredman/android-smsmms and published the package in the Maven repository in gitlab.

BUG: 464392

Test Plan

Before:

Attempting to send an SMS or MMS message using kdeconnect-sms results in no message being sent, and an error being logged:

V/Sending message: Sending new SMS E/Sending message: Exception java.lang.IllegalArgumentException: org.kde.kdeconnect_tp: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent. Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles. at android.app.PendingIntent.checkFlags(PendingIntent.java:382) at android.app.PendingIntent.getBroadcastAsUser(PendingIntent.java:673) at android.app.PendingIntent.getBroadcast(PendingIntent.java:660) at com.klinker.android.send_message.Transaction.sendSmsMessage(Transaction.java:267) at com.klinker.android.send_message.Transaction.sendNewMessage(Transaction.java:158) at com.klinker.android.send_message.Transaction.sendNewMessage(Transaction.java:172) at org.kde.kdeconnect.Plugins.SMSPlugin.SmsMmsUtils.sendMessage(SmsMmsUtils.java:188) at org.kde.kdeconnect.Plugins.SMSPlugin.SMSPlugin.onPacketReceived(SMSPlugin.java:414) at org.kde.kdeconnect.Device.onPacketReceived(Device.java:570)

After:

SMS and MMS sends normally.

Merge request reports