diff --git a/app/build.gradle b/app/build.gradle index c735f75..f3dfcf7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -44,7 +44,7 @@ dependencies { implementation 'androidx.constraintlayout:constraintlayout:2.1.3' implementation 'com.google.android.material:material:1.5.0' - implementation 'org.matrix.android:matrix-android-sdk2:1.4.4' + implementation 'org.matrix.android:matrix-android-sdk2:1.4.11' implementation 'androidx.recyclerview:recyclerview:1.2.1' implementation 'com.squareup.picasso:picasso:2.71828' diff --git a/app/src/main/java/org/matrix/android/sdk/sample/SampleApp.kt b/app/src/main/java/org/matrix/android/sdk/sample/SampleApp.kt index ec83f28..3e70024 100644 --- a/app/src/main/java/org/matrix/android/sdk/sample/SampleApp.kt +++ b/app/src/main/java/org/matrix/android/sdk/sample/SampleApp.kt @@ -17,6 +17,7 @@ package org.matrix.android.sdk.sample import android.app.Application +import android.content.Context import org.matrix.android.sdk.api.Matrix import org.matrix.android.sdk.api.MatrixConfiguration import org.matrix.android.sdk.sample.util.RoomDisplayNameFallbackProviderImpl @@ -24,18 +25,13 @@ import timber.log.Timber class SampleApp : Application() { + private lateinit var matrix: Matrix + override fun onCreate() { super.onCreate() Timber.plant(Timber.DebugTree()) - // You should first init Matrix before using it - Matrix.initialize( - context = this, - matrixConfiguration = MatrixConfiguration( - roomDisplayNameFallbackProvider = RoomDisplayNameFallbackProviderImpl() - ) - ) - // It returns a singleton - val matrix = Matrix.getInstance(this) + // You should first create a Matrix instance before using it + createMatrix() // You can then grab the authentication service and search for a known session val lastSession = matrix.authenticationService().getLastAuthenticatedSession() if (lastSession != null) { @@ -46,4 +42,19 @@ class SampleApp : Application() { lastSession.startSync(true) } } + + private fun createMatrix() { + matrix = Matrix.createInstance( + context = this, + matrixConfiguration = MatrixConfiguration( + roomDisplayNameFallbackProvider = RoomDisplayNameFallbackProviderImpl() + ) + ) + } + + companion object { + fun getMatrix(context: Context): Matrix { + return (context.applicationContext as SampleApp).matrix + } + } } diff --git a/app/src/main/java/org/matrix/android/sdk/sample/ui/MainActivity.kt b/app/src/main/java/org/matrix/android/sdk/sample/ui/MainActivity.kt index 499774b..d5373c2 100644 --- a/app/src/main/java/org/matrix/android/sdk/sample/ui/MainActivity.kt +++ b/app/src/main/java/org/matrix/android/sdk/sample/ui/MainActivity.kt @@ -20,19 +20,15 @@ import android.os.Bundle import android.view.MenuItem import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat -import org.matrix.android.sdk.api.Matrix import org.matrix.android.sdk.sample.R import org.matrix.android.sdk.sample.SessionHolder class MainActivity : AppCompatActivity() { - private lateinit var matrix: Matrix - override fun onCreate(savedInstanceState: Bundle?) { window.statusBarColor = ContextCompat.getColor(this, R.color.divider) super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) - matrix = Matrix.getInstance(this) if (savedInstanceState == null) { if (SessionHolder.currentSession != null) { displayRoomList() diff --git a/app/src/main/java/org/matrix/android/sdk/sample/ui/SimpleLoginFragment.kt b/app/src/main/java/org/matrix/android/sdk/sample/ui/SimpleLoginFragment.kt index 7f56534..ea54956 100644 --- a/app/src/main/java/org/matrix/android/sdk/sample/ui/SimpleLoginFragment.kt +++ b/app/src/main/java/org/matrix/android/sdk/sample/ui/SimpleLoginFragment.kt @@ -25,9 +25,9 @@ import android.widget.Toast import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import kotlinx.coroutines.launch -import org.matrix.android.sdk.api.Matrix import org.matrix.android.sdk.api.auth.data.HomeServerConnectionConfig import org.matrix.android.sdk.sample.R +import org.matrix.android.sdk.sample.SampleApp import org.matrix.android.sdk.sample.SessionHolder import org.matrix.android.sdk.sample.databinding.FragmentLoginBinding @@ -77,7 +77,7 @@ class SimpleLoginFragment : Fragment() { // viewLifecycleOwner.lifecycleScope.launch { try { - Matrix.getInstance(requireContext()).authenticationService().directAuthentication( + SampleApp.getMatrix(requireContext()).authenticationService().directAuthentication( homeServerConnectionConfig, username, password, diff --git a/app/src/main/java/org/matrix/android/sdk/sample/utils/AvatarRenderer.kt b/app/src/main/java/org/matrix/android/sdk/sample/utils/AvatarRenderer.kt index 8b655be..f83a70f 100644 --- a/app/src/main/java/org/matrix/android/sdk/sample/utils/AvatarRenderer.kt +++ b/app/src/main/java/org/matrix/android/sdk/sample/utils/AvatarRenderer.kt @@ -49,7 +49,7 @@ class AvatarRenderer(private val matrixItemColorProvider: MatrixItemColorProvide .into(imageView) } - fun getPlaceholderDrawable(matrixItem: MatrixItem): Drawable { + private fun getPlaceholderDrawable(matrixItem: MatrixItem): Drawable { val avatarColor = matrixItemColorProvider.getColor(matrixItem) return TextDrawable.builder() .beginConfig() diff --git a/app/src/main/java/org/matrix/android/sdk/sample/utils/TimelineDisplayableEvents.kt b/app/src/main/java/org/matrix/android/sdk/sample/utils/TimelineDisplayableEvents.kt deleted file mode 100644 index 573a97c..0000000 --- a/app/src/main/java/org/matrix/android/sdk/sample/utils/TimelineDisplayableEvents.kt +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright (c) 2020 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.matrix.android.sdk.sample.utils - -import org.matrix.android.sdk.api.session.events.model.EventType - -object TimelineDisplayableEvents { - - val DISPLAYABLE_TYPES = listOf( - EventType.MESSAGE, - EventType.STATE_ROOM_WIDGET_LEGACY, - EventType.STATE_ROOM_WIDGET, - EventType.STATE_ROOM_NAME, - EventType.STATE_ROOM_TOPIC, - EventType.STATE_ROOM_AVATAR, - EventType.STATE_ROOM_MEMBER, - EventType.STATE_ROOM_ALIASES, - EventType.STATE_ROOM_CANONICAL_ALIAS, - EventType.STATE_ROOM_HISTORY_VISIBILITY, - EventType.STATE_ROOM_POWER_LEVELS, - EventType.CALL_INVITE, - EventType.CALL_HANGUP, - EventType.CALL_ANSWER, - EventType.ENCRYPTED, - EventType.STATE_ROOM_ENCRYPTION, - EventType.STATE_ROOM_GUEST_ACCESS, - EventType.STATE_ROOM_THIRD_PARTY_INVITE, - EventType.STICKER, - EventType.STATE_ROOM_CREATE, - EventType.STATE_ROOM_TOMBSTONE, - EventType.STATE_ROOM_JOIN_RULES, - EventType.KEY_VERIFICATION_DONE, - EventType.KEY_VERIFICATION_CANCEL - ) -} diff --git a/build.gradle b/build.gradle index c9d4021..b459741 100644 --- a/build.gradle +++ b/build.gradle @@ -20,6 +20,11 @@ allprojects { jcenter() maven { url 'https://jitpack.io' } } + + tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all { + // Stop ignoring warnings to force stopping usage of deprecated API from the SDK + kotlinOptions.allWarningsAsErrors = true + } } task clean(type: Delete) { diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 4863a13..48e9989 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionSha256Sum=cd5c2958a107ee7f0722004a12d0f8559b4564c34daad7df06cffd4d12a426d0 -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip +distributionSha256Sum=e6d864e3b5bc05cc62041842b306383fc1fefcec359e70cebb1d470a6094ca82 +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists \ No newline at end of file