From df315ecea692e5cbb85bffbc017f4d60072e0a79 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 11 Oct 2022 12:21:46 +0200 Subject: [PATCH] Add a module for the Matrix SDK with the aar of the Rust SDK --- .gitignore | 1 - libraries/sdk/matrix/build.gradle | 33 +++++++++++++++ .../sdk/matrix/src/main/AndroidManifest.xml | 2 + .../io/element/android/x/sdk/matrix/Matrix.kt | 40 +++++++++++++++++++ settings.gradle | 4 ++ 5 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 libraries/sdk/matrix/build.gradle create mode 100644 libraries/sdk/matrix/src/main/AndroidManifest.xml create mode 100644 libraries/sdk/matrix/src/main/java/io/element/android/x/sdk/matrix/Matrix.kt diff --git a/.gitignore b/.gitignore index 56cc6425e0..cf226dd935 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ # Built application files *.apk -*.aar *.ap_ *.aab diff --git a/libraries/sdk/matrix/build.gradle b/libraries/sdk/matrix/build.gradle new file mode 100644 index 0000000000..1cfff841a8 --- /dev/null +++ b/libraries/sdk/matrix/build.gradle @@ -0,0 +1,33 @@ +plugins { + id 'com.android.library' + id 'org.jetbrains.kotlin.android' +} + +android { + namespace 'io.element.android.x.sdk.matrix' + compileSdk 33 + + defaultConfig { + minSdk 29 + targetSdk 33 + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = '1.8' + } +} + +dependencies { + implementation(name: 'sdk-android-release', ext: 'aar') + implementation "net.java.dev.jna:jna:5.10.0@aar" +} \ No newline at end of file diff --git a/libraries/sdk/matrix/src/main/AndroidManifest.xml b/libraries/sdk/matrix/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..8072ee00db --- /dev/null +++ b/libraries/sdk/matrix/src/main/AndroidManifest.xml @@ -0,0 +1,2 @@ + + diff --git a/libraries/sdk/matrix/src/main/java/io/element/android/x/sdk/matrix/Matrix.kt b/libraries/sdk/matrix/src/main/java/io/element/android/x/sdk/matrix/Matrix.kt new file mode 100644 index 0000000000..76c488f714 --- /dev/null +++ b/libraries/sdk/matrix/src/main/java/io/element/android/x/sdk/matrix/Matrix.kt @@ -0,0 +1,40 @@ +package io.element.android.x.sdk.matrix + +import android.content.Context +import android.util.Log +import java.io.File + +private const val LOG_TAG = "Matrix" + +class Matrix( + private val context: Context, +) { + fun login(username: String, password: String) { + val authFolder = File(context.filesDir, "auth") + val authService = AuthenticationService(authFolder.absolutePath) + authService.configureHomeserver("matrix.org") + val client = authService.login(username, password, "MatrixRustSDKSample", null) + val clientDelegate = object : ClientDelegate { + override fun didReceiveAuthError(isSoftLogout: Boolean) { + Log.v(LOG_TAG, "didReceiveAuthError()") + } + + override fun didReceiveSyncUpdate() { + Log.v(LOG_TAG, "didReceiveSyncUpdate()") + } + + override fun didUpdateRestoreToken() { + Log.v(LOG_TAG, "didUpdateRestoreToken()") + } + } + + client.setDelegate(clientDelegate) + Log.v(LOG_TAG, "DisplayName = ${client.displayName()}") + try { + client.fullSlidingSync() + } catch (failure: Throwable) { + Log.e(LOG_TAG, "fullSlidingSync() fail", failure) + } + client.logout() + } +} \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 763f4cc500..89568ceeb8 100644 --- a/settings.gradle +++ b/settings.gradle @@ -10,9 +10,13 @@ dependencyResolutionManagement { repositories { google() mavenCentral() + flatDir { + dirs 'libs' + } } } rootProject.name = "ElementX" include ':app' include ':libraries:ui:theme' include ':libraries:ui:screens:login' +include ':libraries:sdk:matrix'