From 058f1704fa17f3a7b85061a327579e289f741b7f Mon Sep 17 00:00:00 2001 From: ganfra Date: Mon, 8 Oct 2018 17:52:45 +0200 Subject: [PATCH] Make sync request works as initial sync --- .idea/caches/build_file_checksums.ser | Bin 651 -> 651 bytes .idea/dictionaries/ganfra.xml | 1 + .../features/home/HomeActivity.kt | 31 ++++++++ .../features/login/LoginActivity.kt | 13 ++-- app/src/main/res/layout/activity_home.xml | 20 +++++- matrix-sdk-android/build.gradle | 6 +- .../objectbox-models/default.json | 41 +++++++---- .../objectbox-models/default.json.bak | 66 ++++++++++++++++++ .../im/vector/matrix/android/api/Matrix.kt | 33 +++++++-- .../matrix/android/api/MatrixOptions.kt | 8 --- .../im/vector/matrix/android/api/Session.kt | 11 --- .../matrix/android/api/auth/Authenticator.kt | 5 +- .../android/api/auth/CredentialsStore.kt | 2 +- .../android/api/auth/data/Credentials.kt | 15 ---- .../vector/matrix/android/api/events/Event.kt | 30 +++----- .../matrix/android/api/events/EventContent.kt | 3 + .../matrix/android/api/events/EventType.kt | 1 - .../matrix/android/api/events/UnsignedData.kt | 2 + .../matrix/android/api/session/Session.kt | 11 +++ .../matrix/android/internal/DefaultSession.kt | 37 ---------- .../internal/auth/{LoginApi.kt => AuthAPI.kt} | 4 +- .../android/internal/auth/AuthModule.kt | 39 +++++++++++ .../internal/auth/DefaultAuthenticator.kt | 25 +++++-- .../android/internal/auth/LoginModule.kt | 33 --------- .../android/internal/auth/data/Credentials.kt | 17 +++++ .../auth/db/InMemoryCredentialsStore.kt | 18 ----- .../auth/db/ObjectBoxCredentialsStore.kt | 4 +- .../android/internal/di/MatrixModule.kt | 20 ------ .../android/internal/di/NetworkModule.kt | 21 +++++- .../android/internal/di/SessionModule.kt | 20 ++++++ .../android/internal/events/sync/SyncAPI.kt | 4 +- .../internal/events/sync/SyncModule.kt | 23 ++++++ .../internal/events/sync/Synchronizer.kt | 29 ++++++-- .../internal/events/sync/data/SyncResponse.kt | 15 ++-- .../internal/session/DefaultSession.kt | 38 ++++++++++ 35 files changed, 422 insertions(+), 224 deletions(-) create mode 100644 matrix-sdk-android/objectbox-models/default.json.bak delete mode 100644 matrix-sdk-android/src/main/java/im/vector/matrix/android/api/MatrixOptions.kt delete mode 100644 matrix-sdk-android/src/main/java/im/vector/matrix/android/api/Session.kt delete mode 100644 matrix-sdk-android/src/main/java/im/vector/matrix/android/api/auth/data/Credentials.kt create mode 100644 matrix-sdk-android/src/main/java/im/vector/matrix/android/api/events/EventContent.kt create mode 100644 matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/Session.kt delete mode 100644 matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/DefaultSession.kt rename matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/{LoginApi.kt => AuthAPI.kt} (88%) create mode 100644 matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/AuthModule.kt delete mode 100644 matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/LoginModule.kt create mode 100644 matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/data/Credentials.kt delete mode 100644 matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/auth/db/InMemoryCredentialsStore.kt create mode 100644 matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/di/SessionModule.kt create mode 100644 matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/events/sync/SyncModule.kt create mode 100644 matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/DefaultSession.kt diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index b6dd91a10df141e3d3f1a91a3b4f7c9a0e6a4f97..11f62eee628b448186dd46b55ea979c4562da5e0 100644 GIT binary patch delta 36 ucmV+<0NekI1&alcm;_WQ@@ui2EddZ7oR*79PU~&9;cP~(D4$%D*#WW(=?}I5 delta 36 ucmV+<0NekI1&alcm;^+87ALWsEddbq{r?NBt~_9K=@quw6+*6)*#WW(bPwwQ diff --git a/.idea/dictionaries/ganfra.xml b/.idea/dictionaries/ganfra.xml index 2c6e3c0cba..a9343c033e 100644 --- a/.idea/dictionaries/ganfra.xml +++ b/.idea/dictionaries/ganfra.xml @@ -3,6 +3,7 @@ coroutine moshi + synchronizer \ No newline at end of file diff --git a/app/src/main/java/im/vector/riotredesign/features/home/HomeActivity.kt b/app/src/main/java/im/vector/riotredesign/features/home/HomeActivity.kt index 93953b7fd7..4955741e63 100644 --- a/app/src/main/java/im/vector/riotredesign/features/home/HomeActivity.kt +++ b/app/src/main/java/im/vector/riotredesign/features/home/HomeActivity.kt @@ -3,14 +3,45 @@ package im.vector.riotredesign.features.home import android.content.Context import android.content.Intent import android.os.Bundle +import android.view.View +import android.widget.Toast +import im.vector.matrix.android.api.Matrix +import im.vector.matrix.android.api.MatrixCallback +import im.vector.matrix.android.api.failure.Failure +import im.vector.matrix.android.internal.events.sync.data.SyncResponse import im.vector.riotredesign.R import im.vector.riotredesign.core.platform.RiotActivity +import kotlinx.android.synthetic.main.activity_home.* +import org.koin.android.ext.android.inject class HomeActivity : RiotActivity() { + private val matrix by inject() + private val synchronizer = matrix.currentSession?.synchronizer() + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_home) + synchronizeButton.setOnClickListener { synchronize() } + } + + private fun synchronize() { + synchronizeButton.visibility = View.GONE + loadingView.visibility = View.VISIBLE + synchronizer?.synchronize(object : MatrixCallback { + override fun onSuccess(data: SyncResponse?) { + synchronizeButton.visibility = View.VISIBLE + loadingView.visibility = View.GONE + Toast.makeText(this@HomeActivity, "Success", Toast.LENGTH_LONG).show() + + } + + override fun onFailure(failure: Failure) { + synchronizeButton.visibility = View.VISIBLE + loadingView.visibility = View.GONE + Toast.makeText(this@HomeActivity, failure.toString(), Toast.LENGTH_LONG).show() + } + }) } diff --git a/app/src/main/java/im/vector/riotredesign/features/login/LoginActivity.kt b/app/src/main/java/im/vector/riotredesign/features/login/LoginActivity.kt index 70078f580f..31d8b37b3c 100644 --- a/app/src/main/java/im/vector/riotredesign/features/login/LoginActivity.kt +++ b/app/src/main/java/im/vector/riotredesign/features/login/LoginActivity.kt @@ -5,9 +5,9 @@ import android.view.View import android.widget.Toast import im.vector.matrix.android.api.Matrix import im.vector.matrix.android.api.MatrixCallback -import im.vector.matrix.android.api.failure.Failure -import im.vector.matrix.android.api.auth.data.Credentials +import im.vector.matrix.android.api.session.Session import im.vector.matrix.android.api.auth.data.HomeServerConnectionConfig +import im.vector.matrix.android.api.failure.Failure import im.vector.riotredesign.R import im.vector.riotredesign.core.platform.RiotActivity import im.vector.riotredesign.features.home.HomeActivity @@ -17,10 +17,8 @@ import org.koin.android.ext.android.inject class LoginActivity : RiotActivity() { private val matrix by inject() - private val homeServerConnectionConfig = HomeServerConnectionConfig("https://matrix.org/") - private val session = matrix.createSession(homeServerConnectionConfig) - private val authenticator = session.authenticator() + private val authenticator = matrix.authenticator() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -32,8 +30,9 @@ class LoginActivity : RiotActivity() { val login = loginField.text.trim().toString() val password = passwordField.text.trim().toString() progressBar.visibility = View.VISIBLE - authenticator.authenticate(login, password, object : MatrixCallback { - override fun onSuccess(data: Credentials?) { + authenticator.authenticate(homeServerConnectionConfig, login, password, object : MatrixCallback { + override fun onSuccess(data: Session?) { + matrix.currentSession = data goToHomeScreen() } diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml index 84615cdd2f..3078248ee8 100644 --- a/app/src/main/res/layout/activity_home.xml +++ b/app/src/main/res/layout/activity_home.xml @@ -7,20 +7,34 @@ android:orientation="vertical" tools:context=".features.login.LoginActivity"> - - +