Trying to build/install this application in a new installation of Android Studio yielded:
> Unable to determine application id: com.android.tools.idea.run.ApkProvisionException: Error loading build artifacts from:<snip>\sms-matrix\app\build\outputs\apk\debug\output-metadata.json
This updates the versions of applications central to building the Android project to make it compatible. This does not (intentionally, at least) have any functional impact on the application at all.
I opted not to jump to Gradle 7.0 as it has just recently been released and increasing 1 major version is change enough for one PR.
There's a bunch of changes, required, to move to the latest SDK:
1. Update AAR's. The matrix-sdk.aar in this commit was built from the
v0.9.14 tag of the matrix-android-sdk git repository. olm-sdk.jar is
pulled from the same place.
2. Updates to the build scripts. matrix-android-sdk added kotlin as a
dependency, moved to okhttp3, added io.realm, and so on.
3. Code modifications to support new SDK itself. The changes, here, are
a grab bag, and you're best off just reading the commit.
Of particular note, here, is that LoginRestClient.loginWithUser takes a
device name *and* a device ID, now (the previous API only took a device
name). As a wicked had, right now, I'm just using the name as the ID,
but I have no doubt that's wrong and this should be cleaned up to
include a randomly generated, persisted device ID, as I believe this is
used by Synapse to track login sessions.
Implemented support for MMS messages, including a variety of formats
of image and video. Works by observing changes to content://mms-sms,
parsing out the new MMS contents, uploading them as assets to
the Matrix server, and posting a new image or video message to the room.