mirror of
https://github.com/KDE/kdeconnect-android
synced 2025-08-22 18:07:55 +00:00
[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) > <snipped for brevity> ### After: SMS and MMS sends normally.
This commit is contained in:
parent
9db4c885a5
commit
bcf080f6eb
10
build.gradle
10
build.gradle
@ -22,7 +22,7 @@ apply plugin: 'kotlin-android'
|
|||||||
android {
|
android {
|
||||||
compileSdkVersion 33
|
compileSdkVersion 33
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
minSdkVersion 14
|
minSdkVersion 21
|
||||||
targetSdkVersion 31
|
targetSdkVersion 31
|
||||||
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
|
||||||
|
|
||||||
@ -166,7 +166,13 @@ dependencies {
|
|||||||
implementation 'org.atteo.classindex:classindex:3.6'
|
implementation 'org.atteo.classindex:classindex:3.6'
|
||||||
annotationProcessor 'org.atteo.classindex:classindex:3.6'
|
annotationProcessor 'org.atteo.classindex:classindex:3.6'
|
||||||
|
|
||||||
implementation 'com.klinkerapps:android-smsmms:5.2.6' //For SMS and MMS purposes
|
// The android-smsmms library is the only way I know to handle MMS in Android
|
||||||
|
// (Shouldn't a phone OS make phone things easy?)
|
||||||
|
// This library was originally authored as com.klinkerapps at https://github.com/klinker41/android-smsmms.
|
||||||
|
// However, that version is under-loved. I have therefore made "some fixes" and published it.
|
||||||
|
// Please see https://invent.kde.org/sredman/android-smsmms/-/tree/master
|
||||||
|
implementation 'org.kde:android-smsmms:5.2.7'
|
||||||
|
implementation 'com.klinkerapps:logger:1.0.3'
|
||||||
|
|
||||||
implementation 'commons-io:commons-io:2.8.0' // newer versions don't work on Android 7: https://stackoverflow.com/questions/73604534/no-static-method-threadlocal-withinitial-commons-io-dependency
|
implementation 'commons-io:commons-io:2.8.0' // newer versions don't work on Android 7: https://stackoverflow.com/questions/73604534/no-static-method-threadlocal-withinitial-commons-io-dependency
|
||||||
implementation 'org.apache.commons:commons-collections4:4.4'
|
implementation 'org.apache.commons:commons-collections4:4.4'
|
||||||
|
@ -15,6 +15,12 @@ dependencyResolutionManagement {
|
|||||||
repositories {
|
repositories {
|
||||||
google()
|
google()
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
|
maven {
|
||||||
|
name = "KDE Invent Maven"
|
||||||
|
// This project_id corresponds to kdeconnect-android project
|
||||||
|
// Depending on how long we need this custom package, we may decide to move it to a more-official repo
|
||||||
|
url = "https://invent.kde.org/api/v4/projects/72/packages/maven"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rootProject.name = "kdeconnect-android"
|
rootProject.name = "kdeconnect-android"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user