forked from GitHub-Mirror/riotX-android
Start to insert room summaries and listen for changes
This commit is contained in:
@ -28,6 +28,8 @@ dependencies {
|
||||
implementation 'com.android.support:appcompat-v7:28.0.0'
|
||||
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
|
||||
|
||||
implementation 'com.jakewharton.timber:timber:4.7.1'
|
||||
|
||||
implementation "org.koin:koin-android:$koin_version"
|
||||
implementation "org.koin:koin-android-scope:$koin_version"
|
||||
implementation "org.koin:koin-android-viewmodel:$koin_version"
|
||||
|
@ -1,13 +1,18 @@
|
||||
package im.vector.riotredesign
|
||||
|
||||
import android.app.Application
|
||||
import im.vector.matrix.android.BuildConfig
|
||||
import im.vector.riotredesign.core.di.AppModule
|
||||
import org.koin.standalone.StandAloneContext.startKoin
|
||||
import timber.log.Timber
|
||||
|
||||
class Riot : Application() {
|
||||
|
||||
override fun onCreate() {
|
||||
super.onCreate()
|
||||
if (BuildConfig.DEBUG) {
|
||||
Timber.plant(Timber.DebugTree())
|
||||
}
|
||||
startKoin(listOf(AppModule(this)))
|
||||
}
|
||||
|
||||
|
@ -4,24 +4,22 @@ 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.database.model.EventEntity
|
||||
import im.vector.matrix.android.internal.database.model.RoomSummaryEntity
|
||||
import im.vector.matrix.android.internal.events.sync.data.SyncResponse
|
||||
import im.vector.riotredesign.R
|
||||
import im.vector.riotredesign.core.platform.RiotActivity
|
||||
import io.realm.RealmChangeListener
|
||||
import io.realm.RealmResults
|
||||
import kotlinx.android.synthetic.main.activity_home.*
|
||||
import org.koin.android.ext.android.inject
|
||||
import timber.log.Timber
|
||||
|
||||
class HomeActivity : RiotActivity() {
|
||||
|
||||
private val matrix by inject<Matrix>()
|
||||
private val synchronizer = matrix.currentSession?.synchronizer()
|
||||
private val realmHolder = matrix.currentSession?.realmInstanceHolder()
|
||||
private val realmHolder = matrix.currentSession?.realmHolder()
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
@ -33,25 +31,25 @@ class HomeActivity : RiotActivity() {
|
||||
synchronizeButton.visibility = View.GONE
|
||||
loadingView.visibility = View.VISIBLE
|
||||
synchronizer?.synchronize(object : MatrixCallback<SyncResponse> {
|
||||
override fun onSuccess(data: SyncResponse?) {
|
||||
override fun onSuccess(data: SyncResponse) {
|
||||
synchronizeButton.visibility = View.VISIBLE
|
||||
loadingView.visibility = View.GONE
|
||||
Timber.v("Sync successful")
|
||||
}
|
||||
|
||||
override fun onFailure(failure: Failure) {
|
||||
synchronizeButton.visibility = View.VISIBLE
|
||||
loadingView.visibility = View.GONE
|
||||
Toast.makeText(this@HomeActivity, failure.toString(), Toast.LENGTH_LONG).show()
|
||||
Timber.e("Sync has failed : %s", failure.toString())
|
||||
}
|
||||
})
|
||||
if (realmHolder != null) {
|
||||
val results = realmHolder.realm.where(EventEntity::class.java).equalTo("chunk.room.roomId", "!UlckfcnwgLKswCmUbe:matrix.org").findAll()
|
||||
results.addChangeListener(RealmChangeListener<RealmResults<EventEntity>> {
|
||||
Toast.makeText(this@HomeActivity, "Room events data changed", Toast.LENGTH_LONG).show()
|
||||
})
|
||||
val results = realmHolder.instance.where(RoomSummaryEntity::class.java).findAll()
|
||||
results.addChangeListener { summaries ->
|
||||
Timber.v("Summaries updated")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
@ -22,8 +22,8 @@ class LoginActivity : RiotActivity() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_login)
|
||||
authenticateButton.setOnClickListener { authenticate() }
|
||||
checkActiveSessions()
|
||||
authenticateButton.setOnClickListener { authenticate() }
|
||||
}
|
||||
|
||||
private fun authenticate() {
|
||||
@ -37,9 +37,8 @@ class LoginActivity : RiotActivity() {
|
||||
.build()
|
||||
|
||||
authenticator.authenticate(homeServerConnectionConfig, login, password, object : MatrixCallback<Session> {
|
||||
override fun onSuccess(data: Session?) {
|
||||
matrix.currentSession = data
|
||||
goToHomeScreen()
|
||||
override fun onSuccess(data: Session) {
|
||||
openSessionAndGoToHome(data)
|
||||
}
|
||||
|
||||
override fun onFailure(failure: Failure) {
|
||||
@ -51,12 +50,16 @@ class LoginActivity : RiotActivity() {
|
||||
|
||||
private fun checkActiveSessions() {
|
||||
if (authenticator.hasActiveSessions()) {
|
||||
matrix.currentSession = authenticator.getLastActiveSession()
|
||||
goToHomeScreen()
|
||||
val session = authenticator.getLastActiveSession()
|
||||
session?.let {
|
||||
openSessionAndGoToHome(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun goToHomeScreen() {
|
||||
private fun openSessionAndGoToHome(session: Session) {
|
||||
matrix.currentSession = session
|
||||
session.open()
|
||||
val intent = HomeActivity.newIntent(this)
|
||||
startActivity(intent)
|
||||
finish()
|
||||
|
Reference in New Issue
Block a user