mirror of
https://github.com/element-hq/element-android
synced 2024-11-27 20:06:51 +03:00
Merge branch 'develop' into feature/ons/fix_show_sending_image
This commit is contained in:
commit
992edb2ee2
126 changed files with 646 additions and 489 deletions
|
@ -5,15 +5,18 @@ Features ✨:
|
||||||
- Enable url previews for notices (#2562)
|
- Enable url previews for notices (#2562)
|
||||||
|
|
||||||
Improvements 🙌:
|
Improvements 🙌:
|
||||||
- Add System theme option and set as default (#904) (#2387)
|
- Add System theme option and set as default (#904, #2387)
|
||||||
|
- Warn user when he is leaving a not public room (#1460)
|
||||||
|
|
||||||
Bugfix 🐛:
|
Bugfix 🐛:
|
||||||
- Unspecced msgType field in m.sticker (#2580)
|
- Unspecced msgType field in m.sticker (#2580)
|
||||||
- Wait for all room members to be known before sending a message to a e2e room (#2518)
|
- Wait for all room members to be known before sending a message to a e2e room (#2518)
|
||||||
- Url previews sometimes attached to wrong message (#2561)
|
- Url previews sometimes attached to wrong message (#2561)
|
||||||
|
- Room Topic not displayed correctly after visiting a link (#2551)
|
||||||
- Hiding membership events works the exact opposite (#2603)
|
- Hiding membership events works the exact opposite (#2603)
|
||||||
- Tapping drawer having more than 1 room in notifications gives "malformed link" error (#2605)
|
- Tapping drawer having more than 1 room in notifications gives "malformed link" error (#2605)
|
||||||
- Sent image not displayed when opened immediately after sending (#409)
|
- Sent image not displayed when opened immediately after sending (#409)
|
||||||
|
- Initial sync is not retried correctly when there is some network error. (#2632)
|
||||||
|
|
||||||
Translations 🗣:
|
Translations 🗣:
|
||||||
-
|
-
|
||||||
|
@ -22,7 +25,7 @@ SDK API changes ⚠️:
|
||||||
-
|
-
|
||||||
|
|
||||||
Build 🧱:
|
Build 🧱:
|
||||||
-
|
- Remove dependency to org.greenrobot.eventbus library
|
||||||
|
|
||||||
Test:
|
Test:
|
||||||
-
|
-
|
||||||
|
|
|
@ -167,9 +167,6 @@ dependencies {
|
||||||
implementation 'com.jakewharton.timber:timber:4.7.1'
|
implementation 'com.jakewharton.timber:timber:4.7.1'
|
||||||
implementation 'com.facebook.stetho:stetho-okhttp3:1.5.1'
|
implementation 'com.facebook.stetho:stetho-okhttp3:1.5.1'
|
||||||
|
|
||||||
// Bus
|
|
||||||
implementation 'org.greenrobot:eventbus:3.1.1'
|
|
||||||
|
|
||||||
// Phone number https://github.com/google/libphonenumber
|
// Phone number https://github.com/google/libphonenumber
|
||||||
implementation 'com.googlecode.libphonenumber:libphonenumber:8.10.23'
|
implementation 'com.googlecode.libphonenumber:libphonenumber:8.10.23'
|
||||||
|
|
||||||
|
|
8
matrix-sdk-android/proguard-rules.pro
vendored
8
matrix-sdk-android/proguard-rules.pro
vendored
|
@ -20,14 +20,8 @@
|
||||||
# hide the original source file name.
|
# hide the original source file name.
|
||||||
#-renamesourcefileattribute SourceFile
|
#-renamesourcefileattribute SourceFile
|
||||||
|
|
||||||
|
# BMA: Not sure I can delete this one without side effect
|
||||||
### EVENT BUS ###
|
|
||||||
|
|
||||||
-keepattributes *Annotation*
|
-keepattributes *Annotation*
|
||||||
-keepclassmembers class * {
|
|
||||||
@org.greenrobot.eventbus.Subscribe <methods>;
|
|
||||||
}
|
|
||||||
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
|
|
||||||
|
|
||||||
### MOSHI ###
|
### MOSHI ###
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2020 The Matrix.org Foundation C.I.C.
|
||||||
|
*
|
||||||
|
* 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.api.session.room.state
|
||||||
|
|
||||||
|
import org.matrix.android.sdk.api.query.QueryStringValue
|
||||||
|
import org.matrix.android.sdk.api.session.events.model.EventType
|
||||||
|
import org.matrix.android.sdk.api.session.events.model.toModel
|
||||||
|
import org.matrix.android.sdk.api.session.room.model.RoomJoinRules
|
||||||
|
import org.matrix.android.sdk.api.session.room.model.RoomJoinRulesContent
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return true if a room can be joined by anyone (RoomJoinRules.PUBLIC)
|
||||||
|
*/
|
||||||
|
fun StateService.isPublic(): Boolean {
|
||||||
|
return getStateEvent(EventType.STATE_ROOM_JOIN_RULES, QueryStringValue.NoCondition)
|
||||||
|
?.content
|
||||||
|
?.toModel<RoomJoinRulesContent>()
|
||||||
|
?.joinRules == RoomJoinRules.PUBLIC
|
||||||
|
}
|
|
@ -19,7 +19,6 @@ package org.matrix.android.sdk.internal.crypto
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import androidx.work.WorkerParameters
|
import androidx.work.WorkerParameters
|
||||||
import com.squareup.moshi.JsonClass
|
import com.squareup.moshi.JsonClass
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.auth.data.Credentials
|
import org.matrix.android.sdk.api.auth.data.Credentials
|
||||||
import org.matrix.android.sdk.api.failure.shouldBeRetried
|
import org.matrix.android.sdk.api.failure.shouldBeRetried
|
||||||
import org.matrix.android.sdk.api.session.events.model.Event
|
import org.matrix.android.sdk.api.session.events.model.Event
|
||||||
|
@ -60,7 +59,6 @@ internal class CancelGossipRequestWorker(context: Context,
|
||||||
|
|
||||||
@Inject lateinit var sendToDeviceTask: SendToDeviceTask
|
@Inject lateinit var sendToDeviceTask: SendToDeviceTask
|
||||||
@Inject lateinit var cryptoStore: IMXCryptoStore
|
@Inject lateinit var cryptoStore: IMXCryptoStore
|
||||||
@Inject lateinit var eventBus: EventBus
|
|
||||||
@Inject lateinit var credentials: Credentials
|
@Inject lateinit var credentials: Credentials
|
||||||
|
|
||||||
override fun injectWith(injector: SessionComponent) {
|
override fun injectWith(injector: SessionComponent) {
|
||||||
|
|
|
@ -19,7 +19,6 @@ package org.matrix.android.sdk.internal.crypto
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import androidx.work.WorkerParameters
|
import androidx.work.WorkerParameters
|
||||||
import com.squareup.moshi.JsonClass
|
import com.squareup.moshi.JsonClass
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.auth.data.Credentials
|
import org.matrix.android.sdk.api.auth.data.Credentials
|
||||||
import org.matrix.android.sdk.api.failure.shouldBeRetried
|
import org.matrix.android.sdk.api.failure.shouldBeRetried
|
||||||
import org.matrix.android.sdk.api.session.events.model.Event
|
import org.matrix.android.sdk.api.session.events.model.Event
|
||||||
|
@ -52,7 +51,6 @@ internal class SendGossipRequestWorker(context: Context,
|
||||||
|
|
||||||
@Inject lateinit var sendToDeviceTask: SendToDeviceTask
|
@Inject lateinit var sendToDeviceTask: SendToDeviceTask
|
||||||
@Inject lateinit var cryptoStore: IMXCryptoStore
|
@Inject lateinit var cryptoStore: IMXCryptoStore
|
||||||
@Inject lateinit var eventBus: EventBus
|
|
||||||
@Inject lateinit var credentials: Credentials
|
@Inject lateinit var credentials: Credentials
|
||||||
|
|
||||||
override fun injectWith(injector: SessionComponent) {
|
override fun injectWith(injector: SessionComponent) {
|
||||||
|
|
|
@ -19,7 +19,6 @@ package org.matrix.android.sdk.internal.crypto
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import androidx.work.WorkerParameters
|
import androidx.work.WorkerParameters
|
||||||
import com.squareup.moshi.JsonClass
|
import com.squareup.moshi.JsonClass
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.auth.data.Credentials
|
import org.matrix.android.sdk.api.auth.data.Credentials
|
||||||
import org.matrix.android.sdk.api.failure.shouldBeRetried
|
import org.matrix.android.sdk.api.failure.shouldBeRetried
|
||||||
import org.matrix.android.sdk.api.session.events.model.Event
|
import org.matrix.android.sdk.api.session.events.model.Event
|
||||||
|
@ -54,7 +53,6 @@ internal class SendGossipWorker(context: Context,
|
||||||
|
|
||||||
@Inject lateinit var sendToDeviceTask: SendToDeviceTask
|
@Inject lateinit var sendToDeviceTask: SendToDeviceTask
|
||||||
@Inject lateinit var cryptoStore: IMXCryptoStore
|
@Inject lateinit var cryptoStore: IMXCryptoStore
|
||||||
@Inject lateinit var eventBus: EventBus
|
|
||||||
@Inject lateinit var credentials: Credentials
|
@Inject lateinit var credentials: Credentials
|
||||||
@Inject lateinit var messageEncrypter: MessageEncrypter
|
@Inject lateinit var messageEncrypter: MessageEncrypter
|
||||||
@Inject lateinit var ensureOlmSessionsForDevicesAction: EnsureOlmSessionsForDevicesAction
|
@Inject lateinit var ensureOlmSessionsForDevicesAction: EnsureOlmSessionsForDevicesAction
|
||||||
|
|
|
@ -19,20 +19,20 @@ package org.matrix.android.sdk.internal.crypto.keysbackup.tasks
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.CreateKeysBackupVersionBody
|
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.CreateKeysBackupVersionBody
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.KeysVersion
|
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.KeysVersion
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface CreateKeysBackupVersionTask : Task<CreateKeysBackupVersionBody, KeysVersion>
|
internal interface CreateKeysBackupVersionTask : Task<CreateKeysBackupVersionBody, KeysVersion>
|
||||||
|
|
||||||
internal class DefaultCreateKeysBackupVersionTask @Inject constructor(
|
internal class DefaultCreateKeysBackupVersionTask @Inject constructor(
|
||||||
private val roomKeysApi: RoomKeysApi,
|
private val roomKeysApi: RoomKeysApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : CreateKeysBackupVersionTask {
|
) : CreateKeysBackupVersionTask {
|
||||||
|
|
||||||
override suspend fun execute(params: CreateKeysBackupVersionBody): KeysVersion {
|
override suspend fun execute(params: CreateKeysBackupVersionBody): KeysVersion {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = roomKeysApi.createKeysBackupVersion(params)
|
apiCall = roomKeysApi.createKeysBackupVersion(params)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,9 +17,9 @@
|
||||||
package org.matrix.android.sdk.internal.crypto.keysbackup.tasks
|
package org.matrix.android.sdk.internal.crypto.keysbackup.tasks
|
||||||
|
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface DeleteBackupTask : Task<DeleteBackupTask.Params, Unit> {
|
internal interface DeleteBackupTask : Task<DeleteBackupTask.Params, Unit> {
|
||||||
|
@ -30,11 +30,11 @@ internal interface DeleteBackupTask : Task<DeleteBackupTask.Params, Unit> {
|
||||||
|
|
||||||
internal class DefaultDeleteBackupTask @Inject constructor(
|
internal class DefaultDeleteBackupTask @Inject constructor(
|
||||||
private val roomKeysApi: RoomKeysApi,
|
private val roomKeysApi: RoomKeysApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : DeleteBackupTask {
|
) : DeleteBackupTask {
|
||||||
|
|
||||||
override suspend fun execute(params: DeleteBackupTask.Params) {
|
override suspend fun execute(params: DeleteBackupTask.Params) {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = roomKeysApi.deleteBackup(params.version)
|
apiCall = roomKeysApi.deleteBackup(params.version)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,9 +17,9 @@
|
||||||
package org.matrix.android.sdk.internal.crypto.keysbackup.tasks
|
package org.matrix.android.sdk.internal.crypto.keysbackup.tasks
|
||||||
|
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface DeleteRoomSessionDataTask : Task<DeleteRoomSessionDataTask.Params, Unit> {
|
internal interface DeleteRoomSessionDataTask : Task<DeleteRoomSessionDataTask.Params, Unit> {
|
||||||
|
@ -32,11 +32,11 @@ internal interface DeleteRoomSessionDataTask : Task<DeleteRoomSessionDataTask.Pa
|
||||||
|
|
||||||
internal class DefaultDeleteRoomSessionDataTask @Inject constructor(
|
internal class DefaultDeleteRoomSessionDataTask @Inject constructor(
|
||||||
private val roomKeysApi: RoomKeysApi,
|
private val roomKeysApi: RoomKeysApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : DeleteRoomSessionDataTask {
|
) : DeleteRoomSessionDataTask {
|
||||||
|
|
||||||
override suspend fun execute(params: DeleteRoomSessionDataTask.Params) {
|
override suspend fun execute(params: DeleteRoomSessionDataTask.Params) {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = roomKeysApi.deleteRoomSessionData(
|
apiCall = roomKeysApi.deleteRoomSessionData(
|
||||||
params.roomId,
|
params.roomId,
|
||||||
params.sessionId,
|
params.sessionId,
|
||||||
|
|
|
@ -17,9 +17,9 @@
|
||||||
package org.matrix.android.sdk.internal.crypto.keysbackup.tasks
|
package org.matrix.android.sdk.internal.crypto.keysbackup.tasks
|
||||||
|
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface DeleteRoomSessionsDataTask : Task<DeleteRoomSessionsDataTask.Params, Unit> {
|
internal interface DeleteRoomSessionsDataTask : Task<DeleteRoomSessionsDataTask.Params, Unit> {
|
||||||
|
@ -31,11 +31,11 @@ internal interface DeleteRoomSessionsDataTask : Task<DeleteRoomSessionsDataTask.
|
||||||
|
|
||||||
internal class DefaultDeleteRoomSessionsDataTask @Inject constructor(
|
internal class DefaultDeleteRoomSessionsDataTask @Inject constructor(
|
||||||
private val roomKeysApi: RoomKeysApi,
|
private val roomKeysApi: RoomKeysApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : DeleteRoomSessionsDataTask {
|
) : DeleteRoomSessionsDataTask {
|
||||||
|
|
||||||
override suspend fun execute(params: DeleteRoomSessionsDataTask.Params) {
|
override suspend fun execute(params: DeleteRoomSessionsDataTask.Params) {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = roomKeysApi.deleteRoomSessionsData(
|
apiCall = roomKeysApi.deleteRoomSessionsData(
|
||||||
params.roomId,
|
params.roomId,
|
||||||
params.version)
|
params.version)
|
||||||
|
|
|
@ -17,9 +17,9 @@
|
||||||
package org.matrix.android.sdk.internal.crypto.keysbackup.tasks
|
package org.matrix.android.sdk.internal.crypto.keysbackup.tasks
|
||||||
|
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface DeleteSessionsDataTask : Task<DeleteSessionsDataTask.Params, Unit> {
|
internal interface DeleteSessionsDataTask : Task<DeleteSessionsDataTask.Params, Unit> {
|
||||||
|
@ -30,11 +30,11 @@ internal interface DeleteSessionsDataTask : Task<DeleteSessionsDataTask.Params,
|
||||||
|
|
||||||
internal class DefaultDeleteSessionsDataTask @Inject constructor(
|
internal class DefaultDeleteSessionsDataTask @Inject constructor(
|
||||||
private val roomKeysApi: RoomKeysApi,
|
private val roomKeysApi: RoomKeysApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : DeleteSessionsDataTask {
|
) : DeleteSessionsDataTask {
|
||||||
|
|
||||||
override suspend fun execute(params: DeleteSessionsDataTask.Params) {
|
override suspend fun execute(params: DeleteSessionsDataTask.Params) {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = roomKeysApi.deleteSessionsData(params.version)
|
apiCall = roomKeysApi.deleteSessionsData(params.version)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,20 +18,20 @@ package org.matrix.android.sdk.internal.crypto.keysbackup.tasks
|
||||||
|
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.KeysVersionResult
|
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.KeysVersionResult
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface GetKeysBackupLastVersionTask : Task<Unit, KeysVersionResult>
|
internal interface GetKeysBackupLastVersionTask : Task<Unit, KeysVersionResult>
|
||||||
|
|
||||||
internal class DefaultGetKeysBackupLastVersionTask @Inject constructor(
|
internal class DefaultGetKeysBackupLastVersionTask @Inject constructor(
|
||||||
private val roomKeysApi: RoomKeysApi,
|
private val roomKeysApi: RoomKeysApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : GetKeysBackupLastVersionTask {
|
) : GetKeysBackupLastVersionTask {
|
||||||
|
|
||||||
override suspend fun execute(params: Unit): KeysVersionResult {
|
override suspend fun execute(params: Unit): KeysVersionResult {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = roomKeysApi.getKeysBackupLastVersion()
|
apiCall = roomKeysApi.getKeysBackupLastVersion()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,20 +18,20 @@ package org.matrix.android.sdk.internal.crypto.keysbackup.tasks
|
||||||
|
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.KeysVersionResult
|
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.KeysVersionResult
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface GetKeysBackupVersionTask : Task<String, KeysVersionResult>
|
internal interface GetKeysBackupVersionTask : Task<String, KeysVersionResult>
|
||||||
|
|
||||||
internal class DefaultGetKeysBackupVersionTask @Inject constructor(
|
internal class DefaultGetKeysBackupVersionTask @Inject constructor(
|
||||||
private val roomKeysApi: RoomKeysApi,
|
private val roomKeysApi: RoomKeysApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : GetKeysBackupVersionTask {
|
) : GetKeysBackupVersionTask {
|
||||||
|
|
||||||
override suspend fun execute(params: String): KeysVersionResult {
|
override suspend fun execute(params: String): KeysVersionResult {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = roomKeysApi.getKeysBackupVersion(params)
|
apiCall = roomKeysApi.getKeysBackupVersion(params)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,9 +18,9 @@ package org.matrix.android.sdk.internal.crypto.keysbackup.tasks
|
||||||
|
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.KeyBackupData
|
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.KeyBackupData
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface GetRoomSessionDataTask : Task<GetRoomSessionDataTask.Params, KeyBackupData> {
|
internal interface GetRoomSessionDataTask : Task<GetRoomSessionDataTask.Params, KeyBackupData> {
|
||||||
|
@ -33,11 +33,11 @@ internal interface GetRoomSessionDataTask : Task<GetRoomSessionDataTask.Params,
|
||||||
|
|
||||||
internal class DefaultGetRoomSessionDataTask @Inject constructor(
|
internal class DefaultGetRoomSessionDataTask @Inject constructor(
|
||||||
private val roomKeysApi: RoomKeysApi,
|
private val roomKeysApi: RoomKeysApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : GetRoomSessionDataTask {
|
) : GetRoomSessionDataTask {
|
||||||
|
|
||||||
override suspend fun execute(params: GetRoomSessionDataTask.Params): KeyBackupData {
|
override suspend fun execute(params: GetRoomSessionDataTask.Params): KeyBackupData {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = roomKeysApi.getRoomSessionData(
|
apiCall = roomKeysApi.getRoomSessionData(
|
||||||
params.roomId,
|
params.roomId,
|
||||||
params.sessionId,
|
params.sessionId,
|
||||||
|
|
|
@ -18,9 +18,9 @@ package org.matrix.android.sdk.internal.crypto.keysbackup.tasks
|
||||||
|
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.RoomKeysBackupData
|
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.RoomKeysBackupData
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface GetRoomSessionsDataTask : Task<GetRoomSessionsDataTask.Params, RoomKeysBackupData> {
|
internal interface GetRoomSessionsDataTask : Task<GetRoomSessionsDataTask.Params, RoomKeysBackupData> {
|
||||||
|
@ -32,11 +32,11 @@ internal interface GetRoomSessionsDataTask : Task<GetRoomSessionsDataTask.Params
|
||||||
|
|
||||||
internal class DefaultGetRoomSessionsDataTask @Inject constructor(
|
internal class DefaultGetRoomSessionsDataTask @Inject constructor(
|
||||||
private val roomKeysApi: RoomKeysApi,
|
private val roomKeysApi: RoomKeysApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : GetRoomSessionsDataTask {
|
) : GetRoomSessionsDataTask {
|
||||||
|
|
||||||
override suspend fun execute(params: GetRoomSessionsDataTask.Params): RoomKeysBackupData {
|
override suspend fun execute(params: GetRoomSessionsDataTask.Params): RoomKeysBackupData {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = roomKeysApi.getRoomSessionsData(
|
apiCall = roomKeysApi.getRoomSessionsData(
|
||||||
params.roomId,
|
params.roomId,
|
||||||
params.version)
|
params.version)
|
||||||
|
|
|
@ -18,9 +18,9 @@ package org.matrix.android.sdk.internal.crypto.keysbackup.tasks
|
||||||
|
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.KeysBackupData
|
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.KeysBackupData
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface GetSessionsDataTask : Task<GetSessionsDataTask.Params, KeysBackupData> {
|
internal interface GetSessionsDataTask : Task<GetSessionsDataTask.Params, KeysBackupData> {
|
||||||
|
@ -31,11 +31,11 @@ internal interface GetSessionsDataTask : Task<GetSessionsDataTask.Params, KeysBa
|
||||||
|
|
||||||
internal class DefaultGetSessionsDataTask @Inject constructor(
|
internal class DefaultGetSessionsDataTask @Inject constructor(
|
||||||
private val roomKeysApi: RoomKeysApi,
|
private val roomKeysApi: RoomKeysApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : GetSessionsDataTask {
|
) : GetSessionsDataTask {
|
||||||
|
|
||||||
override suspend fun execute(params: GetSessionsDataTask.Params): KeysBackupData {
|
override suspend fun execute(params: GetSessionsDataTask.Params): KeysBackupData {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = roomKeysApi.getSessionsData(params.version)
|
apiCall = roomKeysApi.getSessionsData(params.version)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,9 +19,9 @@ package org.matrix.android.sdk.internal.crypto.keysbackup.tasks
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.BackupKeysResult
|
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.BackupKeysResult
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.KeyBackupData
|
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.KeyBackupData
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface StoreRoomSessionDataTask : Task<StoreRoomSessionDataTask.Params, BackupKeysResult> {
|
internal interface StoreRoomSessionDataTask : Task<StoreRoomSessionDataTask.Params, BackupKeysResult> {
|
||||||
|
@ -35,11 +35,11 @@ internal interface StoreRoomSessionDataTask : Task<StoreRoomSessionDataTask.Para
|
||||||
|
|
||||||
internal class DefaultStoreRoomSessionDataTask @Inject constructor(
|
internal class DefaultStoreRoomSessionDataTask @Inject constructor(
|
||||||
private val roomKeysApi: RoomKeysApi,
|
private val roomKeysApi: RoomKeysApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : StoreRoomSessionDataTask {
|
) : StoreRoomSessionDataTask {
|
||||||
|
|
||||||
override suspend fun execute(params: StoreRoomSessionDataTask.Params): BackupKeysResult {
|
override suspend fun execute(params: StoreRoomSessionDataTask.Params): BackupKeysResult {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = roomKeysApi.storeRoomSessionData(
|
apiCall = roomKeysApi.storeRoomSessionData(
|
||||||
params.roomId,
|
params.roomId,
|
||||||
params.sessionId,
|
params.sessionId,
|
||||||
|
|
|
@ -19,9 +19,9 @@ package org.matrix.android.sdk.internal.crypto.keysbackup.tasks
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.BackupKeysResult
|
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.BackupKeysResult
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.RoomKeysBackupData
|
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.RoomKeysBackupData
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface StoreRoomSessionsDataTask : Task<StoreRoomSessionsDataTask.Params, BackupKeysResult> {
|
internal interface StoreRoomSessionsDataTask : Task<StoreRoomSessionsDataTask.Params, BackupKeysResult> {
|
||||||
|
@ -34,11 +34,11 @@ internal interface StoreRoomSessionsDataTask : Task<StoreRoomSessionsDataTask.Pa
|
||||||
|
|
||||||
internal class DefaultStoreRoomSessionsDataTask @Inject constructor(
|
internal class DefaultStoreRoomSessionsDataTask @Inject constructor(
|
||||||
private val roomKeysApi: RoomKeysApi,
|
private val roomKeysApi: RoomKeysApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : StoreRoomSessionsDataTask {
|
) : StoreRoomSessionsDataTask {
|
||||||
|
|
||||||
override suspend fun execute(params: StoreRoomSessionsDataTask.Params): BackupKeysResult {
|
override suspend fun execute(params: StoreRoomSessionsDataTask.Params): BackupKeysResult {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = roomKeysApi.storeRoomSessionsData(
|
apiCall = roomKeysApi.storeRoomSessionsData(
|
||||||
params.roomId,
|
params.roomId,
|
||||||
params.version,
|
params.version,
|
||||||
|
|
|
@ -19,9 +19,9 @@ package org.matrix.android.sdk.internal.crypto.keysbackup.tasks
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.BackupKeysResult
|
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.BackupKeysResult
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.KeysBackupData
|
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.KeysBackupData
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface StoreSessionsDataTask : Task<StoreSessionsDataTask.Params, BackupKeysResult> {
|
internal interface StoreSessionsDataTask : Task<StoreSessionsDataTask.Params, BackupKeysResult> {
|
||||||
|
@ -33,11 +33,11 @@ internal interface StoreSessionsDataTask : Task<StoreSessionsDataTask.Params, Ba
|
||||||
|
|
||||||
internal class DefaultStoreSessionsDataTask @Inject constructor(
|
internal class DefaultStoreSessionsDataTask @Inject constructor(
|
||||||
private val roomKeysApi: RoomKeysApi,
|
private val roomKeysApi: RoomKeysApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : StoreSessionsDataTask {
|
) : StoreSessionsDataTask {
|
||||||
|
|
||||||
override suspend fun execute(params: StoreSessionsDataTask.Params): BackupKeysResult {
|
override suspend fun execute(params: StoreSessionsDataTask.Params): BackupKeysResult {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = roomKeysApi.storeSessionsData(
|
apiCall = roomKeysApi.storeSessionsData(
|
||||||
params.version,
|
params.version,
|
||||||
params.keysBackupData)
|
params.keysBackupData)
|
||||||
|
|
|
@ -18,9 +18,9 @@ package org.matrix.android.sdk.internal.crypto.keysbackup.tasks
|
||||||
|
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
import org.matrix.android.sdk.internal.crypto.keysbackup.api.RoomKeysApi
|
||||||
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.UpdateKeysBackupVersionBody
|
import org.matrix.android.sdk.internal.crypto.keysbackup.model.rest.UpdateKeysBackupVersionBody
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface UpdateKeysBackupVersionTask : Task<UpdateKeysBackupVersionTask.Params, Unit> {
|
internal interface UpdateKeysBackupVersionTask : Task<UpdateKeysBackupVersionTask.Params, Unit> {
|
||||||
|
@ -32,11 +32,11 @@ internal interface UpdateKeysBackupVersionTask : Task<UpdateKeysBackupVersionTas
|
||||||
|
|
||||||
internal class DefaultUpdateKeysBackupVersionTask @Inject constructor(
|
internal class DefaultUpdateKeysBackupVersionTask @Inject constructor(
|
||||||
private val roomKeysApi: RoomKeysApi,
|
private val roomKeysApi: RoomKeysApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : UpdateKeysBackupVersionTask {
|
) : UpdateKeysBackupVersionTask {
|
||||||
|
|
||||||
override suspend fun execute(params: UpdateKeysBackupVersionTask.Params) {
|
override suspend fun execute(params: UpdateKeysBackupVersionTask.Params) {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = roomKeysApi.updateKeysBackupVersion(params.version, params.keysBackupVersionBody)
|
apiCall = roomKeysApi.updateKeysBackupVersion(params.version, params.keysBackupVersionBody)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,9 +21,9 @@ import org.matrix.android.sdk.internal.crypto.model.MXKey
|
||||||
import org.matrix.android.sdk.internal.crypto.model.MXUsersDevicesMap
|
import org.matrix.android.sdk.internal.crypto.model.MXUsersDevicesMap
|
||||||
import org.matrix.android.sdk.internal.crypto.model.rest.KeysClaimBody
|
import org.matrix.android.sdk.internal.crypto.model.rest.KeysClaimBody
|
||||||
import org.matrix.android.sdk.internal.crypto.model.rest.KeysClaimResponse
|
import org.matrix.android.sdk.internal.crypto.model.rest.KeysClaimResponse
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@ -36,13 +36,13 @@ internal interface ClaimOneTimeKeysForUsersDeviceTask : Task<ClaimOneTimeKeysFor
|
||||||
|
|
||||||
internal class DefaultClaimOneTimeKeysForUsersDevice @Inject constructor(
|
internal class DefaultClaimOneTimeKeysForUsersDevice @Inject constructor(
|
||||||
private val cryptoApi: CryptoApi,
|
private val cryptoApi: CryptoApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : ClaimOneTimeKeysForUsersDeviceTask {
|
) : ClaimOneTimeKeysForUsersDeviceTask {
|
||||||
|
|
||||||
override suspend fun execute(params: ClaimOneTimeKeysForUsersDeviceTask.Params): MXUsersDevicesMap<MXKey> {
|
override suspend fun execute(params: ClaimOneTimeKeysForUsersDeviceTask.Params): MXUsersDevicesMap<MXKey> {
|
||||||
val body = KeysClaimBody(oneTimeKeys = params.usersDevicesKeyTypesMap.map)
|
val body = KeysClaimBody(oneTimeKeys = params.usersDevicesKeyTypesMap.map)
|
||||||
|
|
||||||
val keysClaimResponse = executeRequest<KeysClaimResponse>(eventBus) {
|
val keysClaimResponse = executeRequest<KeysClaimResponse>(globalErrorReceiver) {
|
||||||
apiCall = cryptoApi.claimOneTimeKeysForUsersDevices(body)
|
apiCall = cryptoApi.claimOneTimeKeysForUsersDevices(body)
|
||||||
}
|
}
|
||||||
val map = MXUsersDevicesMap<MXKey>()
|
val map = MXUsersDevicesMap<MXKey>()
|
||||||
|
|
|
@ -20,9 +20,9 @@ import org.matrix.android.sdk.api.failure.Failure
|
||||||
import org.matrix.android.sdk.api.failure.toRegistrationFlowResponse
|
import org.matrix.android.sdk.api.failure.toRegistrationFlowResponse
|
||||||
import org.matrix.android.sdk.internal.crypto.api.CryptoApi
|
import org.matrix.android.sdk.internal.crypto.api.CryptoApi
|
||||||
import org.matrix.android.sdk.internal.crypto.model.rest.DeleteDeviceParams
|
import org.matrix.android.sdk.internal.crypto.model.rest.DeleteDeviceParams
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface DeleteDeviceTask : Task<DeleteDeviceTask.Params, Unit> {
|
internal interface DeleteDeviceTask : Task<DeleteDeviceTask.Params, Unit> {
|
||||||
|
@ -33,12 +33,12 @@ internal interface DeleteDeviceTask : Task<DeleteDeviceTask.Params, Unit> {
|
||||||
|
|
||||||
internal class DefaultDeleteDeviceTask @Inject constructor(
|
internal class DefaultDeleteDeviceTask @Inject constructor(
|
||||||
private val cryptoApi: CryptoApi,
|
private val cryptoApi: CryptoApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : DeleteDeviceTask {
|
) : DeleteDeviceTask {
|
||||||
|
|
||||||
override suspend fun execute(params: DeleteDeviceTask.Params) {
|
override suspend fun execute(params: DeleteDeviceTask.Params) {
|
||||||
try {
|
try {
|
||||||
executeRequest<Unit>(eventBus) {
|
executeRequest<Unit>(globalErrorReceiver) {
|
||||||
apiCall = cryptoApi.deleteDevice(params.deviceId, DeleteDeviceParams())
|
apiCall = cryptoApi.deleteDevice(params.deviceId, DeleteDeviceParams())
|
||||||
}
|
}
|
||||||
} catch (throwable: Throwable) {
|
} catch (throwable: Throwable) {
|
||||||
|
|
|
@ -21,9 +21,9 @@ import org.matrix.android.sdk.internal.crypto.api.CryptoApi
|
||||||
import org.matrix.android.sdk.internal.crypto.model.rest.DeleteDeviceParams
|
import org.matrix.android.sdk.internal.crypto.model.rest.DeleteDeviceParams
|
||||||
import org.matrix.android.sdk.internal.crypto.model.rest.UserPasswordAuth
|
import org.matrix.android.sdk.internal.crypto.model.rest.UserPasswordAuth
|
||||||
import org.matrix.android.sdk.internal.di.UserId
|
import org.matrix.android.sdk.internal.di.UserId
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface DeleteDeviceWithUserPasswordTask : Task<DeleteDeviceWithUserPasswordTask.Params, Unit> {
|
internal interface DeleteDeviceWithUserPasswordTask : Task<DeleteDeviceWithUserPasswordTask.Params, Unit> {
|
||||||
|
@ -37,11 +37,11 @@ internal interface DeleteDeviceWithUserPasswordTask : Task<DeleteDeviceWithUserP
|
||||||
internal class DefaultDeleteDeviceWithUserPasswordTask @Inject constructor(
|
internal class DefaultDeleteDeviceWithUserPasswordTask @Inject constructor(
|
||||||
private val cryptoApi: CryptoApi,
|
private val cryptoApi: CryptoApi,
|
||||||
@UserId private val userId: String,
|
@UserId private val userId: String,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : DeleteDeviceWithUserPasswordTask {
|
) : DeleteDeviceWithUserPasswordTask {
|
||||||
|
|
||||||
override suspend fun execute(params: DeleteDeviceWithUserPasswordTask.Params) {
|
override suspend fun execute(params: DeleteDeviceWithUserPasswordTask.Params) {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = cryptoApi.deleteDevice(params.deviceId,
|
apiCall = cryptoApi.deleteDevice(params.deviceId,
|
||||||
DeleteDeviceParams(
|
DeleteDeviceParams(
|
||||||
userPasswordAuth = UserPasswordAuth(
|
userPasswordAuth = UserPasswordAuth(
|
||||||
|
|
|
@ -19,9 +19,9 @@ package org.matrix.android.sdk.internal.crypto.tasks
|
||||||
import org.matrix.android.sdk.internal.crypto.api.CryptoApi
|
import org.matrix.android.sdk.internal.crypto.api.CryptoApi
|
||||||
import org.matrix.android.sdk.internal.crypto.model.rest.KeysQueryBody
|
import org.matrix.android.sdk.internal.crypto.model.rest.KeysQueryBody
|
||||||
import org.matrix.android.sdk.internal.crypto.model.rest.KeysQueryResponse
|
import org.matrix.android.sdk.internal.crypto.model.rest.KeysQueryResponse
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface DownloadKeysForUsersTask : Task<DownloadKeysForUsersTask.Params, KeysQueryResponse> {
|
internal interface DownloadKeysForUsersTask : Task<DownloadKeysForUsersTask.Params, KeysQueryResponse> {
|
||||||
|
@ -35,7 +35,7 @@ internal interface DownloadKeysForUsersTask : Task<DownloadKeysForUsersTask.Para
|
||||||
|
|
||||||
internal class DefaultDownloadKeysForUsers @Inject constructor(
|
internal class DefaultDownloadKeysForUsers @Inject constructor(
|
||||||
private val cryptoApi: CryptoApi,
|
private val cryptoApi: CryptoApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : DownloadKeysForUsersTask {
|
) : DownloadKeysForUsersTask {
|
||||||
|
|
||||||
override suspend fun execute(params: DownloadKeysForUsersTask.Params): KeysQueryResponse {
|
override suspend fun execute(params: DownloadKeysForUsersTask.Params): KeysQueryResponse {
|
||||||
|
@ -46,7 +46,7 @@ internal class DefaultDownloadKeysForUsers @Inject constructor(
|
||||||
token = params.token?.takeIf { it.isNotEmpty() }
|
token = params.token?.takeIf { it.isNotEmpty() }
|
||||||
)
|
)
|
||||||
|
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = cryptoApi.downloadKeysForUsers(body)
|
apiCall = cryptoApi.downloadKeysForUsers(body)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,9 +18,9 @@ package org.matrix.android.sdk.internal.crypto.tasks
|
||||||
|
|
||||||
import org.matrix.android.sdk.internal.crypto.api.CryptoApi
|
import org.matrix.android.sdk.internal.crypto.api.CryptoApi
|
||||||
import org.matrix.android.sdk.internal.crypto.model.rest.DeviceInfo
|
import org.matrix.android.sdk.internal.crypto.model.rest.DeviceInfo
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface GetDeviceInfoTask : Task<GetDeviceInfoTask.Params, DeviceInfo> {
|
internal interface GetDeviceInfoTask : Task<GetDeviceInfoTask.Params, DeviceInfo> {
|
||||||
|
@ -29,11 +29,11 @@ internal interface GetDeviceInfoTask : Task<GetDeviceInfoTask.Params, DeviceInfo
|
||||||
|
|
||||||
internal class DefaultGetDeviceInfoTask @Inject constructor(
|
internal class DefaultGetDeviceInfoTask @Inject constructor(
|
||||||
private val cryptoApi: CryptoApi,
|
private val cryptoApi: CryptoApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : GetDeviceInfoTask {
|
) : GetDeviceInfoTask {
|
||||||
|
|
||||||
override suspend fun execute(params: GetDeviceInfoTask.Params): DeviceInfo {
|
override suspend fun execute(params: GetDeviceInfoTask.Params): DeviceInfo {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = cryptoApi.getDeviceInfo(params.deviceId)
|
apiCall = cryptoApi.getDeviceInfo(params.deviceId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,20 +18,20 @@ package org.matrix.android.sdk.internal.crypto.tasks
|
||||||
|
|
||||||
import org.matrix.android.sdk.internal.crypto.api.CryptoApi
|
import org.matrix.android.sdk.internal.crypto.api.CryptoApi
|
||||||
import org.matrix.android.sdk.internal.crypto.model.rest.DevicesListResponse
|
import org.matrix.android.sdk.internal.crypto.model.rest.DevicesListResponse
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface GetDevicesTask : Task<Unit, DevicesListResponse>
|
internal interface GetDevicesTask : Task<Unit, DevicesListResponse>
|
||||||
|
|
||||||
internal class DefaultGetDevicesTask @Inject constructor(
|
internal class DefaultGetDevicesTask @Inject constructor(
|
||||||
private val cryptoApi: CryptoApi,
|
private val cryptoApi: CryptoApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : GetDevicesTask {
|
) : GetDevicesTask {
|
||||||
|
|
||||||
override suspend fun execute(params: Unit): DevicesListResponse {
|
override suspend fun execute(params: Unit): DevicesListResponse {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = cryptoApi.getDevices()
|
apiCall = cryptoApi.getDevices()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,9 +18,9 @@ package org.matrix.android.sdk.internal.crypto.tasks
|
||||||
|
|
||||||
import org.matrix.android.sdk.internal.crypto.api.CryptoApi
|
import org.matrix.android.sdk.internal.crypto.api.CryptoApi
|
||||||
import org.matrix.android.sdk.internal.crypto.model.rest.KeyChangesResponse
|
import org.matrix.android.sdk.internal.crypto.model.rest.KeyChangesResponse
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface GetKeyChangesTask : Task<GetKeyChangesTask.Params, KeyChangesResponse> {
|
internal interface GetKeyChangesTask : Task<GetKeyChangesTask.Params, KeyChangesResponse> {
|
||||||
|
@ -34,11 +34,11 @@ internal interface GetKeyChangesTask : Task<GetKeyChangesTask.Params, KeyChanges
|
||||||
|
|
||||||
internal class DefaultGetKeyChangesTask @Inject constructor(
|
internal class DefaultGetKeyChangesTask @Inject constructor(
|
||||||
private val cryptoApi: CryptoApi,
|
private val cryptoApi: CryptoApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : GetKeyChangesTask {
|
) : GetKeyChangesTask {
|
||||||
|
|
||||||
override suspend fun execute(params: GetKeyChangesTask.Params): KeyChangesResponse {
|
override suspend fun execute(params: GetKeyChangesTask.Params): KeyChangesResponse {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = cryptoApi.getKeyChanges(params.from, params.to)
|
apiCall = cryptoApi.getKeyChanges(params.from, params.to)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
*/
|
*/
|
||||||
package org.matrix.android.sdk.internal.crypto.tasks
|
package org.matrix.android.sdk.internal.crypto.tasks
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
||||||
import org.matrix.android.sdk.internal.session.room.send.SendResponse
|
import org.matrix.android.sdk.internal.session.room.send.SendResponse
|
||||||
|
@ -33,10 +33,10 @@ internal interface RedactEventTask : Task<RedactEventTask.Params, String> {
|
||||||
|
|
||||||
internal class DefaultRedactEventTask @Inject constructor(
|
internal class DefaultRedactEventTask @Inject constructor(
|
||||||
private val roomAPI: RoomAPI,
|
private val roomAPI: RoomAPI,
|
||||||
private val eventBus: EventBus) : RedactEventTask {
|
private val globalErrorReceiver: GlobalErrorReceiver) : RedactEventTask {
|
||||||
|
|
||||||
override suspend fun execute(params: RedactEventTask.Params): String {
|
override suspend fun execute(params: RedactEventTask.Params): String {
|
||||||
val executeRequest = executeRequest<SendResponse>(eventBus) {
|
val executeRequest = executeRequest<SendResponse>(globalErrorReceiver) {
|
||||||
apiCall = roomAPI.redactEvent(
|
apiCall = roomAPI.redactEvent(
|
||||||
txId = params.txID,
|
txId = params.txID,
|
||||||
roomId = params.roomId,
|
roomId = params.roomId,
|
||||||
|
|
|
@ -15,9 +15,9 @@
|
||||||
*/
|
*/
|
||||||
package org.matrix.android.sdk.internal.crypto.tasks
|
package org.matrix.android.sdk.internal.crypto.tasks
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.session.events.model.Event
|
import org.matrix.android.sdk.api.session.events.model.Event
|
||||||
import org.matrix.android.sdk.api.session.room.send.SendState
|
import org.matrix.android.sdk.api.session.room.send.SendState
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
||||||
import org.matrix.android.sdk.internal.session.room.membership.LoadRoomMembersTask
|
import org.matrix.android.sdk.internal.session.room.membership.LoadRoomMembersTask
|
||||||
|
@ -38,7 +38,7 @@ internal class DefaultSendEventTask @Inject constructor(
|
||||||
private val encryptEventTask: DefaultEncryptEventTask,
|
private val encryptEventTask: DefaultEncryptEventTask,
|
||||||
private val loadRoomMembersTask: LoadRoomMembersTask,
|
private val loadRoomMembersTask: LoadRoomMembersTask,
|
||||||
private val roomAPI: RoomAPI,
|
private val roomAPI: RoomAPI,
|
||||||
private val eventBus: EventBus) : SendEventTask {
|
private val globalErrorReceiver: GlobalErrorReceiver) : SendEventTask {
|
||||||
|
|
||||||
override suspend fun execute(params: SendEventTask.Params): String {
|
override suspend fun execute(params: SendEventTask.Params): String {
|
||||||
try {
|
try {
|
||||||
|
@ -53,7 +53,7 @@ internal class DefaultSendEventTask @Inject constructor(
|
||||||
val localId = event.eventId!!
|
val localId = event.eventId!!
|
||||||
|
|
||||||
localEchoRepository.updateSendState(localId, params.event.roomId, SendState.SENDING)
|
localEchoRepository.updateSendState(localId, params.event.roomId, SendState.SENDING)
|
||||||
val executeRequest = executeRequest<SendResponse>(eventBus) {
|
val executeRequest = executeRequest<SendResponse>(globalErrorReceiver) {
|
||||||
apiCall = roomAPI.send(
|
apiCall = roomAPI.send(
|
||||||
localId,
|
localId,
|
||||||
roomId = event.roomId ?: "",
|
roomId = event.roomId ?: "",
|
||||||
|
|
|
@ -19,9 +19,9 @@ package org.matrix.android.sdk.internal.crypto.tasks
|
||||||
import org.matrix.android.sdk.internal.crypto.api.CryptoApi
|
import org.matrix.android.sdk.internal.crypto.api.CryptoApi
|
||||||
import org.matrix.android.sdk.internal.crypto.model.MXUsersDevicesMap
|
import org.matrix.android.sdk.internal.crypto.model.MXUsersDevicesMap
|
||||||
import org.matrix.android.sdk.internal.crypto.model.rest.SendToDeviceBody
|
import org.matrix.android.sdk.internal.crypto.model.rest.SendToDeviceBody
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import kotlin.random.Random
|
import kotlin.random.Random
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ internal interface SendToDeviceTask : Task<SendToDeviceTask.Params, Unit> {
|
||||||
|
|
||||||
internal class DefaultSendToDeviceTask @Inject constructor(
|
internal class DefaultSendToDeviceTask @Inject constructor(
|
||||||
private val cryptoApi: CryptoApi,
|
private val cryptoApi: CryptoApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : SendToDeviceTask {
|
) : SendToDeviceTask {
|
||||||
|
|
||||||
override suspend fun execute(params: SendToDeviceTask.Params) {
|
override suspend fun execute(params: SendToDeviceTask.Params) {
|
||||||
|
@ -46,7 +46,7 @@ internal class DefaultSendToDeviceTask @Inject constructor(
|
||||||
messages = params.contentMap.map
|
messages = params.contentMap.map
|
||||||
)
|
)
|
||||||
|
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = cryptoApi.sendToDevice(
|
apiCall = cryptoApi.sendToDevice(
|
||||||
params.eventType,
|
params.eventType,
|
||||||
params.transactionId ?: Random.nextInt(Integer.MAX_VALUE).toString(),
|
params.transactionId ?: Random.nextInt(Integer.MAX_VALUE).toString(),
|
||||||
|
|
|
@ -15,10 +15,10 @@
|
||||||
*/
|
*/
|
||||||
package org.matrix.android.sdk.internal.crypto.tasks
|
package org.matrix.android.sdk.internal.crypto.tasks
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.session.events.model.Event
|
import org.matrix.android.sdk.api.session.events.model.Event
|
||||||
import org.matrix.android.sdk.api.session.room.send.SendState
|
import org.matrix.android.sdk.api.session.room.send.SendState
|
||||||
import org.matrix.android.sdk.internal.crypto.CryptoSessionInfoProvider
|
import org.matrix.android.sdk.internal.crypto.CryptoSessionInfoProvider
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
||||||
import org.matrix.android.sdk.internal.session.room.send.LocalEchoRepository
|
import org.matrix.android.sdk.internal.session.room.send.LocalEchoRepository
|
||||||
|
@ -37,7 +37,7 @@ internal class DefaultSendVerificationMessageTask @Inject constructor(
|
||||||
private val encryptEventTask: DefaultEncryptEventTask,
|
private val encryptEventTask: DefaultEncryptEventTask,
|
||||||
private val roomAPI: RoomAPI,
|
private val roomAPI: RoomAPI,
|
||||||
private val cryptoSessionInfoProvider: CryptoSessionInfoProvider,
|
private val cryptoSessionInfoProvider: CryptoSessionInfoProvider,
|
||||||
private val eventBus: EventBus) : SendVerificationMessageTask {
|
private val globalErrorReceiver: GlobalErrorReceiver) : SendVerificationMessageTask {
|
||||||
|
|
||||||
override suspend fun execute(params: SendVerificationMessageTask.Params): String {
|
override suspend fun execute(params: SendVerificationMessageTask.Params): String {
|
||||||
val event = handleEncryption(params)
|
val event = handleEncryption(params)
|
||||||
|
@ -45,7 +45,7 @@ internal class DefaultSendVerificationMessageTask @Inject constructor(
|
||||||
|
|
||||||
try {
|
try {
|
||||||
localEchoRepository.updateSendState(localId, event.roomId, SendState.SENDING)
|
localEchoRepository.updateSendState(localId, event.roomId, SendState.SENDING)
|
||||||
val executeRequest = executeRequest<SendResponse>(eventBus) {
|
val executeRequest = executeRequest<SendResponse>(globalErrorReceiver) {
|
||||||
apiCall = roomAPI.send(
|
apiCall = roomAPI.send(
|
||||||
localId,
|
localId,
|
||||||
roomId = event.roomId ?: "",
|
roomId = event.roomId ?: "",
|
||||||
|
|
|
@ -18,9 +18,9 @@ package org.matrix.android.sdk.internal.crypto.tasks
|
||||||
|
|
||||||
import org.matrix.android.sdk.internal.crypto.api.CryptoApi
|
import org.matrix.android.sdk.internal.crypto.api.CryptoApi
|
||||||
import org.matrix.android.sdk.internal.crypto.model.rest.UpdateDeviceInfoBody
|
import org.matrix.android.sdk.internal.crypto.model.rest.UpdateDeviceInfoBody
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface SetDeviceNameTask : Task<SetDeviceNameTask.Params, Unit> {
|
internal interface SetDeviceNameTask : Task<SetDeviceNameTask.Params, Unit> {
|
||||||
|
@ -34,14 +34,14 @@ internal interface SetDeviceNameTask : Task<SetDeviceNameTask.Params, Unit> {
|
||||||
|
|
||||||
internal class DefaultSetDeviceNameTask @Inject constructor(
|
internal class DefaultSetDeviceNameTask @Inject constructor(
|
||||||
private val cryptoApi: CryptoApi,
|
private val cryptoApi: CryptoApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : SetDeviceNameTask {
|
) : SetDeviceNameTask {
|
||||||
|
|
||||||
override suspend fun execute(params: SetDeviceNameTask.Params) {
|
override suspend fun execute(params: SetDeviceNameTask.Params) {
|
||||||
val body = UpdateDeviceInfoBody(
|
val body = UpdateDeviceInfoBody(
|
||||||
displayName = params.deviceName
|
displayName = params.deviceName
|
||||||
)
|
)
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = cryptoApi.updateDeviceInfo(params.deviceId, body)
|
apiCall = cryptoApi.updateDeviceInfo(params.deviceId, body)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,9 +21,9 @@ import org.matrix.android.sdk.internal.crypto.api.CryptoApi
|
||||||
import org.matrix.android.sdk.internal.crypto.model.rest.DeviceKeys
|
import org.matrix.android.sdk.internal.crypto.model.rest.DeviceKeys
|
||||||
import org.matrix.android.sdk.internal.crypto.model.rest.KeysUploadBody
|
import org.matrix.android.sdk.internal.crypto.model.rest.KeysUploadBody
|
||||||
import org.matrix.android.sdk.internal.crypto.model.rest.KeysUploadResponse
|
import org.matrix.android.sdk.internal.crypto.model.rest.KeysUploadResponse
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ internal interface UploadKeysTask : Task<UploadKeysTask.Params, KeysUploadRespon
|
||||||
|
|
||||||
internal class DefaultUploadKeysTask @Inject constructor(
|
internal class DefaultUploadKeysTask @Inject constructor(
|
||||||
private val cryptoApi: CryptoApi,
|
private val cryptoApi: CryptoApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : UploadKeysTask {
|
) : UploadKeysTask {
|
||||||
|
|
||||||
override suspend fun execute(params: UploadKeysTask.Params): KeysUploadResponse {
|
override suspend fun execute(params: UploadKeysTask.Params): KeysUploadResponse {
|
||||||
|
@ -49,7 +49,7 @@ internal class DefaultUploadKeysTask @Inject constructor(
|
||||||
|
|
||||||
Timber.i("## Uploading device keys -> $body")
|
Timber.i("## Uploading device keys -> $body")
|
||||||
|
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = cryptoApi.uploadKeys(body)
|
apiCall = cryptoApi.uploadKeys(body)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,9 +18,9 @@ package org.matrix.android.sdk.internal.crypto.tasks
|
||||||
import org.matrix.android.sdk.api.failure.Failure
|
import org.matrix.android.sdk.api.failure.Failure
|
||||||
import org.matrix.android.sdk.internal.crypto.api.CryptoApi
|
import org.matrix.android.sdk.internal.crypto.api.CryptoApi
|
||||||
import org.matrix.android.sdk.internal.crypto.model.rest.SignatureUploadResponse
|
import org.matrix.android.sdk.internal.crypto.model.rest.SignatureUploadResponse
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface UploadSignaturesTask : Task<UploadSignaturesTask.Params, Unit> {
|
internal interface UploadSignaturesTask : Task<UploadSignaturesTask.Params, Unit> {
|
||||||
|
@ -31,12 +31,12 @@ internal interface UploadSignaturesTask : Task<UploadSignaturesTask.Params, Unit
|
||||||
|
|
||||||
internal class DefaultUploadSignaturesTask @Inject constructor(
|
internal class DefaultUploadSignaturesTask @Inject constructor(
|
||||||
private val cryptoApi: CryptoApi,
|
private val cryptoApi: CryptoApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : UploadSignaturesTask {
|
) : UploadSignaturesTask {
|
||||||
|
|
||||||
override suspend fun execute(params: UploadSignaturesTask.Params) {
|
override suspend fun execute(params: UploadSignaturesTask.Params) {
|
||||||
try {
|
try {
|
||||||
val response = executeRequest<SignatureUploadResponse>(eventBus) {
|
val response = executeRequest<SignatureUploadResponse>(globalErrorReceiver) {
|
||||||
this.isRetryable = true
|
this.isRetryable = true
|
||||||
this.maxRetryCount = 10
|
this.maxRetryCount = 10
|
||||||
this.apiCall = cryptoApi.uploadSignatures(params.signatures)
|
this.apiCall = cryptoApi.uploadSignatures(params.signatures)
|
||||||
|
|
|
@ -25,9 +25,9 @@ import org.matrix.android.sdk.internal.crypto.model.rest.KeysQueryResponse
|
||||||
import org.matrix.android.sdk.internal.crypto.model.rest.UploadSigningKeysBody
|
import org.matrix.android.sdk.internal.crypto.model.rest.UploadSigningKeysBody
|
||||||
import org.matrix.android.sdk.internal.crypto.model.rest.UserPasswordAuth
|
import org.matrix.android.sdk.internal.crypto.model.rest.UserPasswordAuth
|
||||||
import org.matrix.android.sdk.internal.crypto.model.toRest
|
import org.matrix.android.sdk.internal.crypto.model.toRest
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface UploadSigningKeysTask : Task<UploadSigningKeysTask.Params, Unit> {
|
internal interface UploadSigningKeysTask : Task<UploadSigningKeysTask.Params, Unit> {
|
||||||
|
@ -55,7 +55,7 @@ data class UploadSigningKeys(val failures: Map<String, Any>?) : Failure.FeatureF
|
||||||
|
|
||||||
internal class DefaultUploadSigningKeysTask @Inject constructor(
|
internal class DefaultUploadSigningKeysTask @Inject constructor(
|
||||||
private val cryptoApi: CryptoApi,
|
private val cryptoApi: CryptoApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : UploadSigningKeysTask {
|
) : UploadSigningKeysTask {
|
||||||
|
|
||||||
override suspend fun execute(params: UploadSigningKeysTask.Params) {
|
override suspend fun execute(params: UploadSigningKeysTask.Params) {
|
||||||
|
@ -87,7 +87,7 @@ internal class DefaultUploadSigningKeysTask @Inject constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun doRequest(uploadQuery: UploadSigningKeysBody) {
|
private suspend fun doRequest(uploadQuery: UploadSigningKeysBody) {
|
||||||
val keysQueryResponse = executeRequest<KeysQueryResponse>(eventBus) {
|
val keysQueryResponse = executeRequest<KeysQueryResponse>(globalErrorReceiver) {
|
||||||
apiCall = cryptoApi.uploadSigningKeys(uploadQuery)
|
apiCall = cryptoApi.uploadSigningKeys(uploadQuery)
|
||||||
}
|
}
|
||||||
if (keysQueryResponse.failures?.isNotEmpty() == true) {
|
if (keysQueryResponse.failures?.isNotEmpty() == true) {
|
||||||
|
|
|
@ -0,0 +1,54 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2021 The Matrix.org Foundation C.I.C.
|
||||||
|
*
|
||||||
|
* 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.internal.network
|
||||||
|
|
||||||
|
import org.matrix.android.sdk.api.failure.GlobalError
|
||||||
|
import org.matrix.android.sdk.internal.auth.SessionParamsStore
|
||||||
|
import org.matrix.android.sdk.internal.di.SessionId
|
||||||
|
import org.matrix.android.sdk.internal.session.SessionScope
|
||||||
|
import org.matrix.android.sdk.internal.task.TaskExecutor
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
|
import timber.log.Timber
|
||||||
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@SessionScope
|
||||||
|
internal class GlobalErrorHandler @Inject constructor(
|
||||||
|
private val taskExecutor: TaskExecutor,
|
||||||
|
private val sessionParamsStore: SessionParamsStore,
|
||||||
|
@SessionId private val sessionId: String
|
||||||
|
) : GlobalErrorReceiver {
|
||||||
|
|
||||||
|
var listener: Listener? = null
|
||||||
|
|
||||||
|
override fun handleGlobalError(globalError: GlobalError) {
|
||||||
|
Timber.e("Global error received: $globalError")
|
||||||
|
|
||||||
|
if (globalError is GlobalError.InvalidToken && globalError.softLogout) {
|
||||||
|
// Mark the token has invalid
|
||||||
|
taskExecutor.executorScope.launch(Dispatchers.IO) {
|
||||||
|
sessionParamsStore.setTokenInvalid(sessionId)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
listener?.onGlobalError(globalError)
|
||||||
|
}
|
||||||
|
|
||||||
|
internal interface Listener {
|
||||||
|
fun onGlobalError(globalError: GlobalError)
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2020 The Matrix.org Foundation C.I.C.
|
* Copyright 2021 The Matrix.org Foundation C.I.C.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -14,18 +14,10 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package org.matrix.android.sdk.internal.eventbus
|
package org.matrix.android.sdk.internal.network
|
||||||
|
|
||||||
import org.greenrobot.eventbus.Logger
|
import org.matrix.android.sdk.api.failure.GlobalError
|
||||||
import timber.log.Timber
|
|
||||||
import java.util.logging.Level
|
|
||||||
|
|
||||||
class EventBusTimberLogger : Logger {
|
internal interface GlobalErrorReceiver {
|
||||||
override fun log(level: Level, msg: String) {
|
fun handleGlobalError(globalError: GlobalError)
|
||||||
Timber.d(msg)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun log(level: Level, msg: String, th: Throwable) {
|
|
||||||
Timber.e(th, msg)
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -18,7 +18,6 @@ package org.matrix.android.sdk.internal.network
|
||||||
|
|
||||||
import kotlinx.coroutines.CancellationException
|
import kotlinx.coroutines.CancellationException
|
||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.failure.Failure
|
import org.matrix.android.sdk.api.failure.Failure
|
||||||
import org.matrix.android.sdk.api.failure.shouldBeRetried
|
import org.matrix.android.sdk.api.failure.shouldBeRetried
|
||||||
import org.matrix.android.sdk.internal.network.ssl.CertUtil
|
import org.matrix.android.sdk.internal.network.ssl.CertUtil
|
||||||
|
@ -27,10 +26,10 @@ import retrofit2.awaitResponse
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
|
|
||||||
internal suspend inline fun <DATA : Any> executeRequest(eventBus: EventBus?,
|
internal suspend inline fun <DATA : Any> executeRequest(globalErrorReceiver: GlobalErrorReceiver?,
|
||||||
block: Request<DATA>.() -> Unit) = Request<DATA>(eventBus).apply(block).execute()
|
block: Request<DATA>.() -> Unit) = Request<DATA>(globalErrorReceiver).apply(block).execute()
|
||||||
|
|
||||||
internal class Request<DATA : Any>(private val eventBus: EventBus?) {
|
internal class Request<DATA : Any>(private val globalErrorReceiver: GlobalErrorReceiver?) {
|
||||||
|
|
||||||
var isRetryable = false
|
var isRetryable = false
|
||||||
var initialDelay: Long = 100L
|
var initialDelay: Long = 100L
|
||||||
|
@ -47,7 +46,7 @@ internal class Request<DATA : Any>(private val eventBus: EventBus?) {
|
||||||
response.body()
|
response.body()
|
||||||
?: throw IllegalStateException("The request returned a null body")
|
?: throw IllegalStateException("The request returned a null body")
|
||||||
} else {
|
} else {
|
||||||
throw response.toFailure(eventBus)
|
throw response.toFailure(globalErrorReceiver)
|
||||||
}
|
}
|
||||||
} catch (exception: Throwable) {
|
} catch (exception: Throwable) {
|
||||||
// Log some details about the request which has failed
|
// Log some details about the request which has failed
|
||||||
|
|
|
@ -25,7 +25,6 @@ import org.matrix.android.sdk.api.failure.MatrixError
|
||||||
import org.matrix.android.sdk.internal.di.MoshiProvider
|
import org.matrix.android.sdk.internal.di.MoshiProvider
|
||||||
import kotlinx.coroutines.suspendCancellableCoroutine
|
import kotlinx.coroutines.suspendCancellableCoroutine
|
||||||
import okhttp3.ResponseBody
|
import okhttp3.ResponseBody
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import retrofit2.Response
|
import retrofit2.Response
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
|
@ -54,18 +53,18 @@ internal suspend fun okhttp3.Call.awaitResponse(): okhttp3.Response {
|
||||||
/**
|
/**
|
||||||
* Convert a retrofit Response to a Failure, and eventually parse errorBody to convert it to a MatrixError
|
* Convert a retrofit Response to a Failure, and eventually parse errorBody to convert it to a MatrixError
|
||||||
*/
|
*/
|
||||||
internal fun <T> Response<T>.toFailure(eventBus: EventBus?): Failure {
|
internal fun <T> Response<T>.toFailure(globalErrorReceiver: GlobalErrorReceiver?): Failure {
|
||||||
return toFailure(errorBody(), code(), eventBus)
|
return toFailure(errorBody(), code(), globalErrorReceiver)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Convert a okhttp3 Response to a Failure, and eventually parse errorBody to convert it to a MatrixError
|
* Convert a okhttp3 Response to a Failure, and eventually parse errorBody to convert it to a MatrixError
|
||||||
*/
|
*/
|
||||||
internal fun okhttp3.Response.toFailure(eventBus: EventBus?): Failure {
|
internal fun okhttp3.Response.toFailure(globalErrorReceiver: GlobalErrorReceiver?): Failure {
|
||||||
return toFailure(body, code, eventBus)
|
return toFailure(body, code, globalErrorReceiver)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun toFailure(errorBody: ResponseBody?, httpCode: Int, eventBus: EventBus?): Failure {
|
private fun toFailure(errorBody: ResponseBody?, httpCode: Int, globalErrorReceiver: GlobalErrorReceiver?): Failure {
|
||||||
if (errorBody == null) {
|
if (errorBody == null) {
|
||||||
return Failure.Unknown(RuntimeException("errorBody should not be null"))
|
return Failure.Unknown(RuntimeException("errorBody should not be null"))
|
||||||
}
|
}
|
||||||
|
@ -79,12 +78,12 @@ private fun toFailure(errorBody: ResponseBody?, httpCode: Int, eventBus: EventBu
|
||||||
|
|
||||||
if (matrixError != null) {
|
if (matrixError != null) {
|
||||||
if (matrixError.code == MatrixError.M_CONSENT_NOT_GIVEN && !matrixError.consentUri.isNullOrBlank()) {
|
if (matrixError.code == MatrixError.M_CONSENT_NOT_GIVEN && !matrixError.consentUri.isNullOrBlank()) {
|
||||||
// Also send this error to the bus, for a global management
|
// Also send this error to the globalErrorReceiver, for a global management
|
||||||
eventBus?.post(GlobalError.ConsentNotGivenError(matrixError.consentUri))
|
globalErrorReceiver?.handleGlobalError(GlobalError.ConsentNotGivenError(matrixError.consentUri))
|
||||||
} else if (httpCode == HttpURLConnection.HTTP_UNAUTHORIZED /* 401 */
|
} else if (httpCode == HttpURLConnection.HTTP_UNAUTHORIZED /* 401 */
|
||||||
&& matrixError.code == MatrixError.M_UNKNOWN_TOKEN) {
|
&& matrixError.code == MatrixError.M_UNKNOWN_TOKEN) {
|
||||||
// Also send this error to the bus, for a global management
|
// Also send this error to the globalErrorReceiver, for a global management
|
||||||
eventBus?.post(GlobalError.InvalidToken(matrixError.isSoftLogout))
|
globalErrorReceiver?.handleGlobalError(GlobalError.InvalidToken(matrixError.isSoftLogout))
|
||||||
}
|
}
|
||||||
|
|
||||||
return Failure.ServerError(matrixError, httpCode)
|
return Failure.ServerError(matrixError, httpCode)
|
||||||
|
|
|
@ -19,12 +19,7 @@ package org.matrix.android.sdk.internal.session
|
||||||
import androidx.annotation.MainThread
|
import androidx.annotation.MainThread
|
||||||
import dagger.Lazy
|
import dagger.Lazy
|
||||||
import io.realm.RealmConfiguration
|
import io.realm.RealmConfiguration
|
||||||
import kotlinx.coroutines.Dispatchers
|
|
||||||
import kotlinx.coroutines.launch
|
|
||||||
import okhttp3.OkHttpClient
|
import okhttp3.OkHttpClient
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.greenrobot.eventbus.Subscribe
|
|
||||||
import org.greenrobot.eventbus.ThreadMode
|
|
||||||
import org.matrix.android.sdk.api.MatrixCallback
|
import org.matrix.android.sdk.api.MatrixCallback
|
||||||
import org.matrix.android.sdk.api.auth.data.SessionParams
|
import org.matrix.android.sdk.api.auth.data.SessionParams
|
||||||
import org.matrix.android.sdk.api.failure.GlobalError
|
import org.matrix.android.sdk.api.failure.GlobalError
|
||||||
|
@ -65,13 +60,12 @@ import org.matrix.android.sdk.internal.di.SessionDatabase
|
||||||
import org.matrix.android.sdk.internal.di.SessionId
|
import org.matrix.android.sdk.internal.di.SessionId
|
||||||
import org.matrix.android.sdk.internal.di.UnauthenticatedWithCertificate
|
import org.matrix.android.sdk.internal.di.UnauthenticatedWithCertificate
|
||||||
import org.matrix.android.sdk.internal.di.WorkManagerProvider
|
import org.matrix.android.sdk.internal.di.WorkManagerProvider
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorHandler
|
||||||
import org.matrix.android.sdk.internal.session.identity.DefaultIdentityService
|
import org.matrix.android.sdk.internal.session.identity.DefaultIdentityService
|
||||||
import org.matrix.android.sdk.internal.session.room.send.queue.EventSenderProcessor
|
import org.matrix.android.sdk.internal.session.room.send.queue.EventSenderProcessor
|
||||||
import org.matrix.android.sdk.internal.session.sync.SyncTokenStore
|
import org.matrix.android.sdk.internal.session.sync.SyncTokenStore
|
||||||
import org.matrix.android.sdk.internal.session.sync.job.SyncThread
|
import org.matrix.android.sdk.internal.session.sync.job.SyncThread
|
||||||
import org.matrix.android.sdk.internal.session.sync.job.SyncWorker
|
import org.matrix.android.sdk.internal.session.sync.job.SyncWorker
|
||||||
import org.matrix.android.sdk.internal.task.TaskExecutor
|
|
||||||
import org.matrix.android.sdk.internal.util.MatrixCoroutineDispatchers
|
|
||||||
import org.matrix.android.sdk.internal.util.createUIHandler
|
import org.matrix.android.sdk.internal.util.createUIHandler
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
@ -81,7 +75,7 @@ import javax.inject.Provider
|
||||||
internal class DefaultSession @Inject constructor(
|
internal class DefaultSession @Inject constructor(
|
||||||
override val sessionParams: SessionParams,
|
override val sessionParams: SessionParams,
|
||||||
private val workManagerProvider: WorkManagerProvider,
|
private val workManagerProvider: WorkManagerProvider,
|
||||||
private val eventBus: EventBus,
|
private val globalErrorHandler: GlobalErrorHandler,
|
||||||
@SessionId
|
@SessionId
|
||||||
override val sessionId: String,
|
override val sessionId: String,
|
||||||
@SessionDatabase private val realmConfiguration: RealmConfiguration,
|
@SessionDatabase private val realmConfiguration: RealmConfiguration,
|
||||||
|
@ -117,10 +111,8 @@ internal class DefaultSession @Inject constructor(
|
||||||
private val accountDataService: Lazy<AccountDataService>,
|
private val accountDataService: Lazy<AccountDataService>,
|
||||||
private val _sharedSecretStorageService: Lazy<SharedSecretStorageService>,
|
private val _sharedSecretStorageService: Lazy<SharedSecretStorageService>,
|
||||||
private val accountService: Lazy<AccountService>,
|
private val accountService: Lazy<AccountService>,
|
||||||
private val coroutineDispatchers: MatrixCoroutineDispatchers,
|
|
||||||
private val defaultIdentityService: DefaultIdentityService,
|
private val defaultIdentityService: DefaultIdentityService,
|
||||||
private val integrationManagerService: IntegrationManagerService,
|
private val integrationManagerService: IntegrationManagerService,
|
||||||
private val taskExecutor: TaskExecutor,
|
|
||||||
private val callSignalingService: Lazy<CallSignalingService>,
|
private val callSignalingService: Lazy<CallSignalingService>,
|
||||||
@UnauthenticatedWithCertificate
|
@UnauthenticatedWithCertificate
|
||||||
private val unauthenticatedWithCertificateOkHttpClient: Lazy<OkHttpClient>,
|
private val unauthenticatedWithCertificateOkHttpClient: Lazy<OkHttpClient>,
|
||||||
|
@ -140,7 +132,8 @@ internal class DefaultSession @Inject constructor(
|
||||||
HomeServerCapabilitiesService by homeServerCapabilitiesService.get(),
|
HomeServerCapabilitiesService by homeServerCapabilitiesService.get(),
|
||||||
ProfileService by profileService.get(),
|
ProfileService by profileService.get(),
|
||||||
AccountDataService by accountDataService.get(),
|
AccountDataService by accountDataService.get(),
|
||||||
AccountService by accountService.get() {
|
AccountService by accountService.get(),
|
||||||
|
GlobalErrorHandler.Listener {
|
||||||
|
|
||||||
override val sharedSecretStorageService: SharedSecretStorageService
|
override val sharedSecretStorageService: SharedSecretStorageService
|
||||||
get() = _sharedSecretStorageService.get()
|
get() = _sharedSecretStorageService.get()
|
||||||
|
@ -162,7 +155,7 @@ internal class DefaultSession @Inject constructor(
|
||||||
uiHandler.post {
|
uiHandler.post {
|
||||||
lifecycleObservers.forEach { it.onStart() }
|
lifecycleObservers.forEach { it.onStart() }
|
||||||
}
|
}
|
||||||
eventBus.register(this)
|
globalErrorHandler.listener = this
|
||||||
eventSenderProcessor.start()
|
eventSenderProcessor.start()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -206,7 +199,7 @@ internal class DefaultSession @Inject constructor(
|
||||||
}
|
}
|
||||||
cryptoService.get().close()
|
cryptoService.get().close()
|
||||||
isOpen = false
|
isOpen = false
|
||||||
eventBus.unregister(this)
|
globalErrorHandler.listener = null
|
||||||
eventSenderProcessor.interrupt()
|
eventSenderProcessor.interrupt()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -234,16 +227,7 @@ internal class DefaultSession @Inject constructor(
|
||||||
workManagerProvider.cancelAllWorks()
|
workManagerProvider.cancelAllWorks()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
override fun onGlobalError(globalError: GlobalError) {
|
||||||
fun onGlobalError(globalError: GlobalError) {
|
|
||||||
if (globalError is GlobalError.InvalidToken
|
|
||||||
&& globalError.softLogout) {
|
|
||||||
// Mark the token has invalid
|
|
||||||
taskExecutor.executorScope.launch(Dispatchers.IO) {
|
|
||||||
sessionParamsStore.setTokenInvalid(sessionId)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
sessionListeners.dispatchGlobalError(globalError)
|
sessionListeners.dispatchGlobalError(globalError)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,6 @@ import dagger.Provides
|
||||||
import dagger.multibindings.IntoSet
|
import dagger.multibindings.IntoSet
|
||||||
import io.realm.RealmConfiguration
|
import io.realm.RealmConfiguration
|
||||||
import okhttp3.OkHttpClient
|
import okhttp3.OkHttpClient
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.MatrixConfiguration
|
import org.matrix.android.sdk.api.MatrixConfiguration
|
||||||
import org.matrix.android.sdk.api.auth.data.Credentials
|
import org.matrix.android.sdk.api.auth.data.Credentials
|
||||||
import org.matrix.android.sdk.api.auth.data.HomeServerConnectionConfig
|
import org.matrix.android.sdk.api.auth.data.HomeServerConnectionConfig
|
||||||
|
@ -61,9 +60,10 @@ import org.matrix.android.sdk.internal.di.UnauthenticatedWithCertificate
|
||||||
import org.matrix.android.sdk.internal.di.UnauthenticatedWithCertificateWithProgress
|
import org.matrix.android.sdk.internal.di.UnauthenticatedWithCertificateWithProgress
|
||||||
import org.matrix.android.sdk.internal.di.UserId
|
import org.matrix.android.sdk.internal.di.UserId
|
||||||
import org.matrix.android.sdk.internal.di.UserMd5
|
import org.matrix.android.sdk.internal.di.UserMd5
|
||||||
import org.matrix.android.sdk.internal.eventbus.EventBusTimberLogger
|
|
||||||
import org.matrix.android.sdk.internal.network.DefaultNetworkConnectivityChecker
|
import org.matrix.android.sdk.internal.network.DefaultNetworkConnectivityChecker
|
||||||
import org.matrix.android.sdk.internal.network.FallbackNetworkCallbackStrategy
|
import org.matrix.android.sdk.internal.network.FallbackNetworkCallbackStrategy
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorHandler
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.NetworkCallbackStrategy
|
import org.matrix.android.sdk.internal.network.NetworkCallbackStrategy
|
||||||
import org.matrix.android.sdk.internal.network.NetworkConnectivityChecker
|
import org.matrix.android.sdk.internal.network.NetworkConnectivityChecker
|
||||||
import org.matrix.android.sdk.internal.network.PreferredNetworkCallbackStrategy
|
import org.matrix.android.sdk.internal.network.PreferredNetworkCallbackStrategy
|
||||||
|
@ -256,16 +256,6 @@ internal abstract class SessionModule {
|
||||||
.create(okHttpClient, sessionParams.homeServerConnectionConfig.homeServerUri.toString())
|
.create(okHttpClient, sessionParams.homeServerConnectionConfig.homeServerUri.toString())
|
||||||
}
|
}
|
||||||
|
|
||||||
@JvmStatic
|
|
||||||
@Provides
|
|
||||||
@SessionScope
|
|
||||||
fun providesEventBus(): EventBus {
|
|
||||||
return EventBus
|
|
||||||
.builder()
|
|
||||||
.logger(EventBusTimberLogger())
|
|
||||||
.build()
|
|
||||||
}
|
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
@Provides
|
@Provides
|
||||||
@SessionScope
|
@SessionScope
|
||||||
|
@ -294,6 +284,9 @@ internal abstract class SessionModule {
|
||||||
@Binds
|
@Binds
|
||||||
abstract fun bindSession(session: DefaultSession): Session
|
abstract fun bindSession(session: DefaultSession): Session
|
||||||
|
|
||||||
|
@Binds
|
||||||
|
abstract fun bindGlobalErrorReceiver(handler: GlobalErrorHandler): GlobalErrorReceiver
|
||||||
|
|
||||||
@Binds
|
@Binds
|
||||||
abstract fun bindNetworkConnectivityChecker(checker: DefaultNetworkConnectivityChecker): NetworkConnectivityChecker
|
abstract fun bindNetworkConnectivityChecker(checker: DefaultNetworkConnectivityChecker): NetworkConnectivityChecker
|
||||||
|
|
||||||
|
|
|
@ -18,9 +18,9 @@ package org.matrix.android.sdk.internal.session.account
|
||||||
|
|
||||||
import org.matrix.android.sdk.api.failure.toRegistrationFlowResponse
|
import org.matrix.android.sdk.api.failure.toRegistrationFlowResponse
|
||||||
import org.matrix.android.sdk.internal.di.UserId
|
import org.matrix.android.sdk.internal.di.UserId
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface ChangePasswordTask : Task<ChangePasswordTask.Params, Unit> {
|
internal interface ChangePasswordTask : Task<ChangePasswordTask.Params, Unit> {
|
||||||
|
@ -32,14 +32,14 @@ internal interface ChangePasswordTask : Task<ChangePasswordTask.Params, Unit> {
|
||||||
|
|
||||||
internal class DefaultChangePasswordTask @Inject constructor(
|
internal class DefaultChangePasswordTask @Inject constructor(
|
||||||
private val accountAPI: AccountAPI,
|
private val accountAPI: AccountAPI,
|
||||||
private val eventBus: EventBus,
|
private val globalErrorReceiver: GlobalErrorReceiver,
|
||||||
@UserId private val userId: String
|
@UserId private val userId: String
|
||||||
) : ChangePasswordTask {
|
) : ChangePasswordTask {
|
||||||
|
|
||||||
override suspend fun execute(params: ChangePasswordTask.Params) {
|
override suspend fun execute(params: ChangePasswordTask.Params) {
|
||||||
val changePasswordParams = ChangePasswordParams.create(userId, params.password, params.newPassword)
|
val changePasswordParams = ChangePasswordParams.create(userId, params.password, params.newPassword)
|
||||||
try {
|
try {
|
||||||
executeRequest<Unit>(eventBus) {
|
executeRequest<Unit>(globalErrorReceiver) {
|
||||||
apiCall = accountAPI.changePassword(changePasswordParams)
|
apiCall = accountAPI.changePassword(changePasswordParams)
|
||||||
}
|
}
|
||||||
} catch (throwable: Throwable) {
|
} catch (throwable: Throwable) {
|
||||||
|
@ -49,7 +49,7 @@ internal class DefaultChangePasswordTask @Inject constructor(
|
||||||
/* Avoid infinite loop */
|
/* Avoid infinite loop */
|
||||||
&& changePasswordParams.auth?.session == null) {
|
&& changePasswordParams.auth?.session == null) {
|
||||||
// Retry with authentication
|
// Retry with authentication
|
||||||
executeRequest<Unit>(eventBus) {
|
executeRequest<Unit>(globalErrorReceiver) {
|
||||||
apiCall = accountAPI.changePassword(
|
apiCall = accountAPI.changePassword(
|
||||||
changePasswordParams.copy(auth = changePasswordParams.auth?.copy(session = registrationFlowResponse.session))
|
changePasswordParams.copy(auth = changePasswordParams.auth?.copy(session = registrationFlowResponse.session))
|
||||||
)
|
)
|
||||||
|
|
|
@ -17,11 +17,11 @@
|
||||||
package org.matrix.android.sdk.internal.session.account
|
package org.matrix.android.sdk.internal.session.account
|
||||||
|
|
||||||
import org.matrix.android.sdk.internal.di.UserId
|
import org.matrix.android.sdk.internal.di.UserId
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.cleanup.CleanupSession
|
import org.matrix.android.sdk.internal.session.cleanup.CleanupSession
|
||||||
import org.matrix.android.sdk.internal.session.identity.IdentityDisconnectTask
|
import org.matrix.android.sdk.internal.session.identity.IdentityDisconnectTask
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ internal interface DeactivateAccountTask : Task<DeactivateAccountTask.Params, Un
|
||||||
|
|
||||||
internal class DefaultDeactivateAccountTask @Inject constructor(
|
internal class DefaultDeactivateAccountTask @Inject constructor(
|
||||||
private val accountAPI: AccountAPI,
|
private val accountAPI: AccountAPI,
|
||||||
private val eventBus: EventBus,
|
private val globalErrorReceiver: GlobalErrorReceiver,
|
||||||
@UserId private val userId: String,
|
@UserId private val userId: String,
|
||||||
private val identityDisconnectTask: IdentityDisconnectTask,
|
private val identityDisconnectTask: IdentityDisconnectTask,
|
||||||
private val cleanupSession: CleanupSession
|
private val cleanupSession: CleanupSession
|
||||||
|
@ -43,7 +43,7 @@ internal class DefaultDeactivateAccountTask @Inject constructor(
|
||||||
override suspend fun execute(params: DeactivateAccountTask.Params) {
|
override suspend fun execute(params: DeactivateAccountTask.Params) {
|
||||||
val deactivateAccountParams = DeactivateAccountParams.create(userId, params.password, params.eraseAllData)
|
val deactivateAccountParams = DeactivateAccountParams.create(userId, params.password, params.eraseAllData)
|
||||||
|
|
||||||
executeRequest<Unit>(eventBus) {
|
executeRequest<Unit>(globalErrorReceiver) {
|
||||||
apiCall = accountAPI.deactivate(deactivateAccountParams)
|
apiCall = accountAPI.deactivate(deactivateAccountParams)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -17,9 +17,9 @@
|
||||||
package org.matrix.android.sdk.internal.session.call
|
package org.matrix.android.sdk.internal.session.call
|
||||||
|
|
||||||
import org.matrix.android.sdk.api.session.call.TurnServerResponse
|
import org.matrix.android.sdk.api.session.call.TurnServerResponse
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal abstract class GetTurnServerTask : Task<GetTurnServerTask.Params, TurnServerResponse> {
|
internal abstract class GetTurnServerTask : Task<GetTurnServerTask.Params, TurnServerResponse> {
|
||||||
|
@ -27,10 +27,10 @@ internal abstract class GetTurnServerTask : Task<GetTurnServerTask.Params, TurnS
|
||||||
}
|
}
|
||||||
|
|
||||||
internal class DefaultGetTurnServerTask @Inject constructor(private val voipAPI: VoipApi,
|
internal class DefaultGetTurnServerTask @Inject constructor(private val voipAPI: VoipApi,
|
||||||
private val eventBus: EventBus) : GetTurnServerTask() {
|
private val globalErrorReceiver: GlobalErrorReceiver) : GetTurnServerTask() {
|
||||||
|
|
||||||
override suspend fun execute(params: Params): TurnServerResponse {
|
override suspend fun execute(params: Params): TurnServerResponse {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = voipAPI.getTurnServer()
|
apiCall = voipAPI.getTurnServer()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,10 +30,10 @@ import okhttp3.RequestBody
|
||||||
import okhttp3.RequestBody.Companion.toRequestBody
|
import okhttp3.RequestBody.Companion.toRequestBody
|
||||||
import okio.BufferedSink
|
import okio.BufferedSink
|
||||||
import okio.source
|
import okio.source
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.extensions.tryOrNull
|
import org.matrix.android.sdk.api.extensions.tryOrNull
|
||||||
import org.matrix.android.sdk.api.session.content.ContentUrlResolver
|
import org.matrix.android.sdk.api.session.content.ContentUrlResolver
|
||||||
import org.matrix.android.sdk.internal.di.Authenticated
|
import org.matrix.android.sdk.internal.di.Authenticated
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.ProgressRequestBody
|
import org.matrix.android.sdk.internal.network.ProgressRequestBody
|
||||||
import org.matrix.android.sdk.internal.network.awaitResponse
|
import org.matrix.android.sdk.internal.network.awaitResponse
|
||||||
import org.matrix.android.sdk.internal.network.toFailure
|
import org.matrix.android.sdk.internal.network.toFailure
|
||||||
|
@ -45,7 +45,7 @@ import javax.inject.Inject
|
||||||
|
|
||||||
internal class FileUploader @Inject constructor(@Authenticated
|
internal class FileUploader @Inject constructor(@Authenticated
|
||||||
private val okHttpClient: OkHttpClient,
|
private val okHttpClient: OkHttpClient,
|
||||||
private val eventBus: EventBus,
|
private val globalErrorReceiver: GlobalErrorReceiver,
|
||||||
private val context: Context,
|
private val context: Context,
|
||||||
contentUrlResolver: ContentUrlResolver,
|
contentUrlResolver: ContentUrlResolver,
|
||||||
moshi: Moshi) {
|
moshi: Moshi) {
|
||||||
|
@ -115,7 +115,7 @@ internal class FileUploader @Inject constructor(@Authenticated
|
||||||
|
|
||||||
return okHttpClient.newCall(request).awaitResponse().use { response ->
|
return okHttpClient.newCall(request).awaitResponse().use { response ->
|
||||||
if (!response.isSuccessful) {
|
if (!response.isSuccessful) {
|
||||||
throw response.toFailure(eventBus)
|
throw response.toFailure(globalErrorReceiver)
|
||||||
} else {
|
} else {
|
||||||
response.body?.source()?.let {
|
response.body?.source()?.let {
|
||||||
responseAdapter.fromJson(it)
|
responseAdapter.fromJson(it)
|
||||||
|
|
|
@ -18,9 +18,9 @@ package org.matrix.android.sdk.internal.session.filter
|
||||||
|
|
||||||
import org.matrix.android.sdk.api.session.sync.FilterService
|
import org.matrix.android.sdk.api.session.sync.FilterService
|
||||||
import org.matrix.android.sdk.internal.di.UserId
|
import org.matrix.android.sdk.internal.di.UserId
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -37,7 +37,7 @@ internal class DefaultSaveFilterTask @Inject constructor(
|
||||||
@UserId private val userId: String,
|
@UserId private val userId: String,
|
||||||
private val filterAPI: FilterApi,
|
private val filterAPI: FilterApi,
|
||||||
private val filterRepository: FilterRepository,
|
private val filterRepository: FilterRepository,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : SaveFilterTask {
|
) : SaveFilterTask {
|
||||||
|
|
||||||
override suspend fun execute(params: SaveFilterTask.Params) {
|
override suspend fun execute(params: SaveFilterTask.Params) {
|
||||||
|
@ -59,7 +59,7 @@ internal class DefaultSaveFilterTask @Inject constructor(
|
||||||
}
|
}
|
||||||
val updated = filterRepository.storeFilter(filterBody, roomFilter)
|
val updated = filterRepository.storeFilter(filterBody, roomFilter)
|
||||||
if (updated) {
|
if (updated) {
|
||||||
val filterResponse = executeRequest<FilterResponse>(eventBus) {
|
val filterResponse = executeRequest<FilterResponse>(globalErrorReceiver) {
|
||||||
// TODO auto retry
|
// TODO auto retry
|
||||||
apiCall = filterAPI.uploadFilter(userId, filterBody)
|
apiCall = filterAPI.uploadFilter(userId, filterBody)
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,13 +23,13 @@ import org.matrix.android.sdk.internal.database.model.GroupSummaryEntity
|
||||||
import org.matrix.android.sdk.internal.database.query.getOrCreate
|
import org.matrix.android.sdk.internal.database.query.getOrCreate
|
||||||
import org.matrix.android.sdk.internal.database.query.where
|
import org.matrix.android.sdk.internal.database.query.where
|
||||||
import org.matrix.android.sdk.internal.di.SessionDatabase
|
import org.matrix.android.sdk.internal.di.SessionDatabase
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.group.model.GroupRooms
|
import org.matrix.android.sdk.internal.session.group.model.GroupRooms
|
||||||
import org.matrix.android.sdk.internal.session.group.model.GroupSummaryResponse
|
import org.matrix.android.sdk.internal.session.group.model.GroupSummaryResponse
|
||||||
import org.matrix.android.sdk.internal.session.group.model.GroupUsers
|
import org.matrix.android.sdk.internal.session.group.model.GroupUsers
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.matrix.android.sdk.internal.util.awaitTransaction
|
import org.matrix.android.sdk.internal.util.awaitTransaction
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ internal interface GetGroupDataTask : Task<GetGroupDataTask.Params, Unit> {
|
||||||
internal class DefaultGetGroupDataTask @Inject constructor(
|
internal class DefaultGetGroupDataTask @Inject constructor(
|
||||||
private val groupAPI: GroupAPI,
|
private val groupAPI: GroupAPI,
|
||||||
@SessionDatabase private val monarchy: Monarchy,
|
@SessionDatabase private val monarchy: Monarchy,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : GetGroupDataTask {
|
) : GetGroupDataTask {
|
||||||
|
|
||||||
private data class GroupData(
|
private data class GroupData(
|
||||||
|
@ -64,13 +64,13 @@ internal class DefaultGetGroupDataTask @Inject constructor(
|
||||||
}
|
}
|
||||||
Timber.v("Fetch data for group with ids: ${groupIds.joinToString(";")}")
|
Timber.v("Fetch data for group with ids: ${groupIds.joinToString(";")}")
|
||||||
val data = groupIds.map { groupId ->
|
val data = groupIds.map { groupId ->
|
||||||
val groupSummary = executeRequest<GroupSummaryResponse>(eventBus) {
|
val groupSummary = executeRequest<GroupSummaryResponse>(globalErrorReceiver) {
|
||||||
apiCall = groupAPI.getSummary(groupId)
|
apiCall = groupAPI.getSummary(groupId)
|
||||||
}
|
}
|
||||||
val groupRooms = executeRequest<GroupRooms>(eventBus) {
|
val groupRooms = executeRequest<GroupRooms>(globalErrorReceiver) {
|
||||||
apiCall = groupAPI.getRooms(groupId)
|
apiCall = groupAPI.getRooms(groupId)
|
||||||
}
|
}
|
||||||
val groupUsers = executeRequest<GroupUsers>(eventBus) {
|
val groupUsers = executeRequest<GroupUsers>(globalErrorReceiver) {
|
||||||
apiCall = groupAPI.getUsers(groupId)
|
apiCall = groupAPI.getUsers(groupId)
|
||||||
}
|
}
|
||||||
GroupData(groupId, groupSummary, groupRooms, groupUsers)
|
GroupData(groupId, groupSummary, groupRooms, groupUsers)
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
package org.matrix.android.sdk.internal.session.homeserver
|
package org.matrix.android.sdk.internal.session.homeserver
|
||||||
|
|
||||||
import com.zhuinden.monarchy.Monarchy
|
import com.zhuinden.monarchy.Monarchy
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.auth.data.HomeServerConnectionConfig
|
import org.matrix.android.sdk.api.auth.data.HomeServerConnectionConfig
|
||||||
import org.matrix.android.sdk.api.auth.wellknown.WellknownResult
|
import org.matrix.android.sdk.api.auth.wellknown.WellknownResult
|
||||||
import org.matrix.android.sdk.api.session.homeserver.HomeServerCapabilities
|
import org.matrix.android.sdk.api.session.homeserver.HomeServerCapabilities
|
||||||
|
@ -27,6 +26,7 @@ import org.matrix.android.sdk.internal.database.model.HomeServerCapabilitiesEnti
|
||||||
import org.matrix.android.sdk.internal.database.query.getOrCreate
|
import org.matrix.android.sdk.internal.database.query.getOrCreate
|
||||||
import org.matrix.android.sdk.internal.di.SessionDatabase
|
import org.matrix.android.sdk.internal.di.SessionDatabase
|
||||||
import org.matrix.android.sdk.internal.di.UserId
|
import org.matrix.android.sdk.internal.di.UserId
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.integrationmanager.IntegrationManagerConfigExtractor
|
import org.matrix.android.sdk.internal.session.integrationmanager.IntegrationManagerConfigExtractor
|
||||||
import org.matrix.android.sdk.internal.session.media.GetMediaConfigResult
|
import org.matrix.android.sdk.internal.session.media.GetMediaConfigResult
|
||||||
|
@ -44,7 +44,7 @@ internal class DefaultGetHomeServerCapabilitiesTask @Inject constructor(
|
||||||
private val capabilitiesAPI: CapabilitiesAPI,
|
private val capabilitiesAPI: CapabilitiesAPI,
|
||||||
private val mediaAPI: MediaAPI,
|
private val mediaAPI: MediaAPI,
|
||||||
@SessionDatabase private val monarchy: Monarchy,
|
@SessionDatabase private val monarchy: Monarchy,
|
||||||
private val eventBus: EventBus,
|
private val globalErrorReceiver: GlobalErrorReceiver,
|
||||||
private val getWellknownTask: GetWellknownTask,
|
private val getWellknownTask: GetWellknownTask,
|
||||||
private val configExtractor: IntegrationManagerConfigExtractor,
|
private val configExtractor: IntegrationManagerConfigExtractor,
|
||||||
private val homeServerConnectionConfig: HomeServerConnectionConfig,
|
private val homeServerConnectionConfig: HomeServerConnectionConfig,
|
||||||
|
@ -65,13 +65,13 @@ internal class DefaultGetHomeServerCapabilitiesTask @Inject constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
val capabilities = runCatching {
|
val capabilities = runCatching {
|
||||||
executeRequest<GetCapabilitiesResult>(eventBus) {
|
executeRequest<GetCapabilitiesResult>(globalErrorReceiver) {
|
||||||
apiCall = capabilitiesAPI.getCapabilities()
|
apiCall = capabilitiesAPI.getCapabilities()
|
||||||
}
|
}
|
||||||
}.getOrNull()
|
}.getOrNull()
|
||||||
|
|
||||||
val mediaConfig = runCatching {
|
val mediaConfig = runCatching {
|
||||||
executeRequest<GetMediaConfigResult>(eventBus) {
|
executeRequest<GetMediaConfigResult>(globalErrorReceiver) {
|
||||||
apiCall = mediaAPI.getMediaConfig()
|
apiCall = mediaAPI.getMediaConfig()
|
||||||
}
|
}
|
||||||
}.getOrNull()
|
}.getOrNull()
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
package org.matrix.android.sdk.internal.session.media
|
package org.matrix.android.sdk.internal.session.media
|
||||||
|
|
||||||
import com.zhuinden.monarchy.Monarchy
|
import com.zhuinden.monarchy.Monarchy
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.cache.CacheStrategy
|
import org.matrix.android.sdk.api.cache.CacheStrategy
|
||||||
import org.matrix.android.sdk.api.session.media.PreviewUrlData
|
import org.matrix.android.sdk.api.session.media.PreviewUrlData
|
||||||
import org.matrix.android.sdk.api.util.JsonDict
|
import org.matrix.android.sdk.api.util.JsonDict
|
||||||
|
@ -25,6 +24,7 @@ import org.matrix.android.sdk.internal.database.model.PreviewUrlCacheEntity
|
||||||
import org.matrix.android.sdk.internal.database.query.get
|
import org.matrix.android.sdk.internal.database.query.get
|
||||||
import org.matrix.android.sdk.internal.database.query.getOrCreate
|
import org.matrix.android.sdk.internal.database.query.getOrCreate
|
||||||
import org.matrix.android.sdk.internal.di.SessionDatabase
|
import org.matrix.android.sdk.internal.di.SessionDatabase
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.matrix.android.sdk.internal.util.awaitTransaction
|
import org.matrix.android.sdk.internal.util.awaitTransaction
|
||||||
|
@ -41,7 +41,7 @@ internal interface GetPreviewUrlTask : Task<GetPreviewUrlTask.Params, PreviewUrl
|
||||||
|
|
||||||
internal class DefaultGetPreviewUrlTask @Inject constructor(
|
internal class DefaultGetPreviewUrlTask @Inject constructor(
|
||||||
private val mediaAPI: MediaAPI,
|
private val mediaAPI: MediaAPI,
|
||||||
private val eventBus: EventBus,
|
private val globalErrorReceiver: GlobalErrorReceiver,
|
||||||
@SessionDatabase private val monarchy: Monarchy
|
@SessionDatabase private val monarchy: Monarchy
|
||||||
) : GetPreviewUrlTask {
|
) : GetPreviewUrlTask {
|
||||||
|
|
||||||
|
@ -64,7 +64,7 @@ internal class DefaultGetPreviewUrlTask @Inject constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun doRequest(url: String, timestamp: Long?): PreviewUrlData {
|
private suspend fun doRequest(url: String, timestamp: Long?): PreviewUrlData {
|
||||||
return executeRequest<JsonDict>(eventBus) {
|
return executeRequest<JsonDict>(globalErrorReceiver) {
|
||||||
apiCall = mediaAPI.getPreviewUrlData(url, timestamp)
|
apiCall = mediaAPI.getPreviewUrlData(url, timestamp)
|
||||||
}
|
}
|
||||||
.toPreviewUrlData(url)
|
.toPreviewUrlData(url)
|
||||||
|
|
|
@ -16,8 +16,8 @@
|
||||||
|
|
||||||
package org.matrix.android.sdk.internal.session.media
|
package org.matrix.android.sdk.internal.session.media
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.util.JsonDict
|
import org.matrix.android.sdk.api.util.JsonDict
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
@ -31,11 +31,11 @@ internal interface GetRawPreviewUrlTask : Task<GetRawPreviewUrlTask.Params, Json
|
||||||
|
|
||||||
internal class DefaultGetRawPreviewUrlTask @Inject constructor(
|
internal class DefaultGetRawPreviewUrlTask @Inject constructor(
|
||||||
private val mediaAPI: MediaAPI,
|
private val mediaAPI: MediaAPI,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : GetRawPreviewUrlTask {
|
) : GetRawPreviewUrlTask {
|
||||||
|
|
||||||
override suspend fun execute(params: GetRawPreviewUrlTask.Params): JsonDict {
|
override suspend fun execute(params: GetRawPreviewUrlTask.Params): JsonDict {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = mediaAPI.getPreviewUrlData(params.url, params.timestamp)
|
apiCall = mediaAPI.getPreviewUrlData(params.url, params.timestamp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,9 +17,9 @@
|
||||||
package org.matrix.android.sdk.internal.session.openid
|
package org.matrix.android.sdk.internal.session.openid
|
||||||
|
|
||||||
import org.matrix.android.sdk.internal.di.UserId
|
import org.matrix.android.sdk.internal.di.UserId
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface GetOpenIdTokenTask : Task<Unit, RequestOpenIdTokenResponse>
|
internal interface GetOpenIdTokenTask : Task<Unit, RequestOpenIdTokenResponse>
|
||||||
|
@ -27,10 +27,10 @@ internal interface GetOpenIdTokenTask : Task<Unit, RequestOpenIdTokenResponse>
|
||||||
internal class DefaultGetOpenIdTokenTask @Inject constructor(
|
internal class DefaultGetOpenIdTokenTask @Inject constructor(
|
||||||
@UserId private val userId: String,
|
@UserId private val userId: String,
|
||||||
private val openIdAPI: OpenIdAPI,
|
private val openIdAPI: OpenIdAPI,
|
||||||
private val eventBus: EventBus) : GetOpenIdTokenTask {
|
private val globalErrorReceiver: GlobalErrorReceiver) : GetOpenIdTokenTask {
|
||||||
|
|
||||||
override suspend fun execute(params: Unit): RequestOpenIdTokenResponse {
|
override suspend fun execute(params: Unit): RequestOpenIdTokenResponse {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = openIdAPI.openIdToken(userId)
|
apiCall = openIdAPI.openIdToken(userId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,9 +18,9 @@ package org.matrix.android.sdk.internal.session.profile
|
||||||
|
|
||||||
import com.google.i18n.phonenumbers.PhoneNumberUtil
|
import com.google.i18n.phonenumbers.PhoneNumberUtil
|
||||||
import com.zhuinden.monarchy.Monarchy
|
import com.zhuinden.monarchy.Monarchy
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.session.identity.ThreePid
|
import org.matrix.android.sdk.api.session.identity.ThreePid
|
||||||
import org.matrix.android.sdk.internal.di.SessionDatabase
|
import org.matrix.android.sdk.internal.di.SessionDatabase
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.matrix.android.sdk.internal.util.awaitTransaction
|
import org.matrix.android.sdk.internal.util.awaitTransaction
|
||||||
|
@ -37,7 +37,7 @@ internal class DefaultAddThreePidTask @Inject constructor(
|
||||||
private val profileAPI: ProfileAPI,
|
private val profileAPI: ProfileAPI,
|
||||||
@SessionDatabase private val monarchy: Monarchy,
|
@SessionDatabase private val monarchy: Monarchy,
|
||||||
private val pendingThreePidMapper: PendingThreePidMapper,
|
private val pendingThreePidMapper: PendingThreePidMapper,
|
||||||
private val eventBus: EventBus) : AddThreePidTask() {
|
private val globalErrorReceiver: GlobalErrorReceiver) : AddThreePidTask() {
|
||||||
|
|
||||||
override suspend fun execute(params: Params) {
|
override suspend fun execute(params: Params) {
|
||||||
when (params.threePid) {
|
when (params.threePid) {
|
||||||
|
@ -50,7 +50,7 @@ internal class DefaultAddThreePidTask @Inject constructor(
|
||||||
val clientSecret = UUID.randomUUID().toString()
|
val clientSecret = UUID.randomUUID().toString()
|
||||||
val sendAttempt = 1
|
val sendAttempt = 1
|
||||||
|
|
||||||
val result = executeRequest<AddEmailResponse>(eventBus) {
|
val result = executeRequest<AddEmailResponse>(globalErrorReceiver) {
|
||||||
val body = AddEmailBody(
|
val body = AddEmailBody(
|
||||||
clientSecret = clientSecret,
|
clientSecret = clientSecret,
|
||||||
email = threePid.email,
|
email = threePid.email,
|
||||||
|
@ -84,7 +84,7 @@ internal class DefaultAddThreePidTask @Inject constructor(
|
||||||
val countryCode = parsedNumber.countryCode
|
val countryCode = parsedNumber.countryCode
|
||||||
val country = phoneNumberUtil.getRegionCodeForCountryCode(countryCode)
|
val country = phoneNumberUtil.getRegionCodeForCountryCode(countryCode)
|
||||||
|
|
||||||
val result = executeRequest<AddMsisdnResponse>(eventBus) {
|
val result = executeRequest<AddMsisdnResponse>(globalErrorReceiver) {
|
||||||
val body = AddMsisdnBody(
|
val body = AddMsisdnBody(
|
||||||
clientSecret = clientSecret,
|
clientSecret = clientSecret,
|
||||||
country = country,
|
country = country,
|
||||||
|
|
|
@ -19,12 +19,12 @@ package org.matrix.android.sdk.internal.session.profile
|
||||||
import org.matrix.android.sdk.api.session.identity.IdentityServiceError
|
import org.matrix.android.sdk.api.session.identity.IdentityServiceError
|
||||||
import org.matrix.android.sdk.api.session.identity.ThreePid
|
import org.matrix.android.sdk.api.session.identity.ThreePid
|
||||||
import org.matrix.android.sdk.internal.di.AuthenticatedIdentity
|
import org.matrix.android.sdk.internal.di.AuthenticatedIdentity
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.network.token.AccessTokenProvider
|
import org.matrix.android.sdk.internal.network.token.AccessTokenProvider
|
||||||
import org.matrix.android.sdk.internal.session.identity.data.IdentityStore
|
import org.matrix.android.sdk.internal.session.identity.data.IdentityStore
|
||||||
import org.matrix.android.sdk.internal.session.identity.data.getIdentityServerUrlWithoutProtocol
|
import org.matrix.android.sdk.internal.session.identity.data.getIdentityServerUrlWithoutProtocol
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal abstract class BindThreePidsTask : Task<BindThreePidsTask.Params, Unit> {
|
internal abstract class BindThreePidsTask : Task<BindThreePidsTask.Params, Unit> {
|
||||||
|
@ -37,13 +37,13 @@ internal class DefaultBindThreePidsTask @Inject constructor(private val profileA
|
||||||
private val identityStore: IdentityStore,
|
private val identityStore: IdentityStore,
|
||||||
@AuthenticatedIdentity
|
@AuthenticatedIdentity
|
||||||
private val accessTokenProvider: AccessTokenProvider,
|
private val accessTokenProvider: AccessTokenProvider,
|
||||||
private val eventBus: EventBus) : BindThreePidsTask() {
|
private val globalErrorReceiver: GlobalErrorReceiver) : BindThreePidsTask() {
|
||||||
override suspend fun execute(params: Params) {
|
override suspend fun execute(params: Params) {
|
||||||
val identityServerUrlWithoutProtocol = identityStore.getIdentityServerUrlWithoutProtocol() ?: throw IdentityServiceError.NoIdentityServerConfigured
|
val identityServerUrlWithoutProtocol = identityStore.getIdentityServerUrlWithoutProtocol() ?: throw IdentityServiceError.NoIdentityServerConfigured
|
||||||
val identityServerAccessToken = accessTokenProvider.getToken() ?: throw IdentityServiceError.NoIdentityServerConfigured
|
val identityServerAccessToken = accessTokenProvider.getToken() ?: throw IdentityServiceError.NoIdentityServerConfigured
|
||||||
val identityPendingBinding = identityStore.getPendingBinding(params.threePid) ?: throw IdentityServiceError.NoCurrentBindingError
|
val identityPendingBinding = identityStore.getPendingBinding(params.threePid) ?: throw IdentityServiceError.NoCurrentBindingError
|
||||||
|
|
||||||
executeRequest<Unit>(eventBus) {
|
executeRequest<Unit>(globalErrorReceiver) {
|
||||||
apiCall = profileAPI.bindThreePid(
|
apiCall = profileAPI.bindThreePid(
|
||||||
BindThreePidBody(
|
BindThreePidBody(
|
||||||
clientSecret = identityPendingBinding.clientSecret,
|
clientSecret = identityPendingBinding.clientSecret,
|
||||||
|
|
|
@ -16,9 +16,9 @@
|
||||||
|
|
||||||
package org.matrix.android.sdk.internal.session.profile
|
package org.matrix.android.sdk.internal.session.profile
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.session.identity.ThreePid
|
import org.matrix.android.sdk.api.session.identity.ThreePid
|
||||||
import org.matrix.android.sdk.api.session.identity.toMedium
|
import org.matrix.android.sdk.api.session.identity.toMedium
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
@ -31,10 +31,10 @@ internal abstract class DeleteThreePidTask : Task<DeleteThreePidTask.Params, Uni
|
||||||
|
|
||||||
internal class DefaultDeleteThreePidTask @Inject constructor(
|
internal class DefaultDeleteThreePidTask @Inject constructor(
|
||||||
private val profileAPI: ProfileAPI,
|
private val profileAPI: ProfileAPI,
|
||||||
private val eventBus: EventBus) : DeleteThreePidTask() {
|
private val globalErrorReceiver: GlobalErrorReceiver) : DeleteThreePidTask() {
|
||||||
|
|
||||||
override suspend fun execute(params: Params) {
|
override suspend fun execute(params: Params) {
|
||||||
executeRequest<DeleteThreePidResponse>(eventBus) {
|
executeRequest<DeleteThreePidResponse>(globalErrorReceiver) {
|
||||||
val body = DeleteThreePidBody(
|
val body = DeleteThreePidBody(
|
||||||
medium = params.threePid.toMedium(),
|
medium = params.threePid.toMedium(),
|
||||||
address = params.threePid.value
|
address = params.threePid.value
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
package org.matrix.android.sdk.internal.session.profile
|
package org.matrix.android.sdk.internal.session.profile
|
||||||
|
|
||||||
import com.zhuinden.monarchy.Monarchy
|
import com.zhuinden.monarchy.Monarchy
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.failure.Failure
|
import org.matrix.android.sdk.api.failure.Failure
|
||||||
import org.matrix.android.sdk.api.failure.toRegistrationFlowResponse
|
import org.matrix.android.sdk.api.failure.toRegistrationFlowResponse
|
||||||
import org.matrix.android.sdk.api.session.identity.ThreePid
|
import org.matrix.android.sdk.api.session.identity.ThreePid
|
||||||
|
@ -26,6 +25,7 @@ import org.matrix.android.sdk.internal.database.model.PendingThreePidEntity
|
||||||
import org.matrix.android.sdk.internal.database.model.PendingThreePidEntityFields
|
import org.matrix.android.sdk.internal.database.model.PendingThreePidEntityFields
|
||||||
import org.matrix.android.sdk.internal.di.SessionDatabase
|
import org.matrix.android.sdk.internal.di.SessionDatabase
|
||||||
import org.matrix.android.sdk.internal.di.UserId
|
import org.matrix.android.sdk.internal.di.UserId
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.matrix.android.sdk.internal.util.awaitTransaction
|
import org.matrix.android.sdk.internal.util.awaitTransaction
|
||||||
|
@ -45,7 +45,7 @@ internal class DefaultFinalizeAddingThreePidTask @Inject constructor(
|
||||||
@SessionDatabase private val monarchy: Monarchy,
|
@SessionDatabase private val monarchy: Monarchy,
|
||||||
private val pendingThreePidMapper: PendingThreePidMapper,
|
private val pendingThreePidMapper: PendingThreePidMapper,
|
||||||
@UserId private val userId: String,
|
@UserId private val userId: String,
|
||||||
private val eventBus: EventBus) : FinalizeAddingThreePidTask() {
|
private val globalErrorReceiver: GlobalErrorReceiver) : FinalizeAddingThreePidTask() {
|
||||||
|
|
||||||
override suspend fun execute(params: Params) {
|
override suspend fun execute(params: Params) {
|
||||||
if (params.userWantsToCancel.not()) {
|
if (params.userWantsToCancel.not()) {
|
||||||
|
@ -58,7 +58,7 @@ internal class DefaultFinalizeAddingThreePidTask @Inject constructor(
|
||||||
?: throw IllegalArgumentException("unknown threepid")
|
?: throw IllegalArgumentException("unknown threepid")
|
||||||
|
|
||||||
try {
|
try {
|
||||||
executeRequest<Unit>(eventBus) {
|
executeRequest<Unit>(globalErrorReceiver) {
|
||||||
val body = FinalizeAddThreePidBody(
|
val body = FinalizeAddThreePidBody(
|
||||||
clientSecret = pendingThreePids.clientSecret,
|
clientSecret = pendingThreePids.clientSecret,
|
||||||
sid = pendingThreePids.sid,
|
sid = pendingThreePids.sid,
|
||||||
|
|
|
@ -18,9 +18,9 @@
|
||||||
package org.matrix.android.sdk.internal.session.profile
|
package org.matrix.android.sdk.internal.session.profile
|
||||||
|
|
||||||
import org.matrix.android.sdk.api.util.JsonDict
|
import org.matrix.android.sdk.api.util.JsonDict
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal abstract class GetProfileInfoTask : Task<GetProfileInfoTask.Params, JsonDict> {
|
internal abstract class GetProfileInfoTask : Task<GetProfileInfoTask.Params, JsonDict> {
|
||||||
|
@ -30,10 +30,10 @@ internal abstract class GetProfileInfoTask : Task<GetProfileInfoTask.Params, Jso
|
||||||
}
|
}
|
||||||
|
|
||||||
internal class DefaultGetProfileInfoTask @Inject constructor(private val profileAPI: ProfileAPI,
|
internal class DefaultGetProfileInfoTask @Inject constructor(private val profileAPI: ProfileAPI,
|
||||||
private val eventBus: EventBus) : GetProfileInfoTask() {
|
private val globalErrorReceiver: GlobalErrorReceiver) : GetProfileInfoTask() {
|
||||||
|
|
||||||
override suspend fun execute(params: Params): JsonDict {
|
override suspend fun execute(params: Params): JsonDict {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = profileAPI.getProfile(params.userId)
|
apiCall = profileAPI.getProfile(params.userId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,9 +19,9 @@ package org.matrix.android.sdk.internal.session.profile
|
||||||
import com.zhuinden.monarchy.Monarchy
|
import com.zhuinden.monarchy.Monarchy
|
||||||
import org.matrix.android.sdk.internal.database.model.UserThreePidEntity
|
import org.matrix.android.sdk.internal.database.model.UserThreePidEntity
|
||||||
import org.matrix.android.sdk.internal.di.SessionDatabase
|
import org.matrix.android.sdk.internal.di.SessionDatabase
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.internal.util.awaitTransaction
|
import org.matrix.android.sdk.internal.util.awaitTransaction
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
@ -30,10 +30,10 @@ internal abstract class RefreshUserThreePidsTask : Task<Unit, Unit>
|
||||||
|
|
||||||
internal class DefaultRefreshUserThreePidsTask @Inject constructor(private val profileAPI: ProfileAPI,
|
internal class DefaultRefreshUserThreePidsTask @Inject constructor(private val profileAPI: ProfileAPI,
|
||||||
@SessionDatabase private val monarchy: Monarchy,
|
@SessionDatabase private val monarchy: Monarchy,
|
||||||
private val eventBus: EventBus) : RefreshUserThreePidsTask() {
|
private val globalErrorReceiver: GlobalErrorReceiver) : RefreshUserThreePidsTask() {
|
||||||
|
|
||||||
override suspend fun execute(params: Unit) {
|
override suspend fun execute(params: Unit) {
|
||||||
val accountThreePidsResponse = executeRequest<AccountThreePidsResponse>(eventBus) {
|
val accountThreePidsResponse = executeRequest<AccountThreePidsResponse>(globalErrorReceiver) {
|
||||||
apiCall = profileAPI.getThreePIDs()
|
apiCall = profileAPI.getThreePIDs()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,9 +16,9 @@
|
||||||
|
|
||||||
package org.matrix.android.sdk.internal.session.profile
|
package org.matrix.android.sdk.internal.session.profile
|
||||||
|
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal abstract class SetAvatarUrlTask : Task<SetAvatarUrlTask.Params, Unit> {
|
internal abstract class SetAvatarUrlTask : Task<SetAvatarUrlTask.Params, Unit> {
|
||||||
|
@ -30,10 +30,10 @@ internal abstract class SetAvatarUrlTask : Task<SetAvatarUrlTask.Params, Unit> {
|
||||||
|
|
||||||
internal class DefaultSetAvatarUrlTask @Inject constructor(
|
internal class DefaultSetAvatarUrlTask @Inject constructor(
|
||||||
private val profileAPI: ProfileAPI,
|
private val profileAPI: ProfileAPI,
|
||||||
private val eventBus: EventBus) : SetAvatarUrlTask() {
|
private val globalErrorReceiver: GlobalErrorReceiver) : SetAvatarUrlTask() {
|
||||||
|
|
||||||
override suspend fun execute(params: Params) {
|
override suspend fun execute(params: Params) {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
val body = SetAvatarUrlBody(
|
val body = SetAvatarUrlBody(
|
||||||
avatarUrl = params.newAvatarUrl
|
avatarUrl = params.newAvatarUrl
|
||||||
)
|
)
|
||||||
|
|
|
@ -16,9 +16,9 @@
|
||||||
|
|
||||||
package org.matrix.android.sdk.internal.session.profile
|
package org.matrix.android.sdk.internal.session.profile
|
||||||
|
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal abstract class SetDisplayNameTask : Task<SetDisplayNameTask.Params, Unit> {
|
internal abstract class SetDisplayNameTask : Task<SetDisplayNameTask.Params, Unit> {
|
||||||
|
@ -30,10 +30,10 @@ internal abstract class SetDisplayNameTask : Task<SetDisplayNameTask.Params, Uni
|
||||||
|
|
||||||
internal class DefaultSetDisplayNameTask @Inject constructor(
|
internal class DefaultSetDisplayNameTask @Inject constructor(
|
||||||
private val profileAPI: ProfileAPI,
|
private val profileAPI: ProfileAPI,
|
||||||
private val eventBus: EventBus) : SetDisplayNameTask() {
|
private val globalErrorReceiver: GlobalErrorReceiver) : SetDisplayNameTask() {
|
||||||
|
|
||||||
override suspend fun execute(params: Params) {
|
override suspend fun execute(params: Params) {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
val body = SetDisplayNameBody(
|
val body = SetDisplayNameBody(
|
||||||
displayName = params.newDisplayName
|
displayName = params.newDisplayName
|
||||||
)
|
)
|
||||||
|
|
|
@ -19,11 +19,11 @@ package org.matrix.android.sdk.internal.session.profile
|
||||||
import org.matrix.android.sdk.api.session.identity.IdentityServiceError
|
import org.matrix.android.sdk.api.session.identity.IdentityServiceError
|
||||||
import org.matrix.android.sdk.api.session.identity.ThreePid
|
import org.matrix.android.sdk.api.session.identity.ThreePid
|
||||||
import org.matrix.android.sdk.api.session.identity.toMedium
|
import org.matrix.android.sdk.api.session.identity.toMedium
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.identity.data.IdentityStore
|
import org.matrix.android.sdk.internal.session.identity.data.IdentityStore
|
||||||
import org.matrix.android.sdk.internal.session.identity.data.getIdentityServerUrlWithoutProtocol
|
import org.matrix.android.sdk.internal.session.identity.data.getIdentityServerUrlWithoutProtocol
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal abstract class UnbindThreePidsTask : Task<UnbindThreePidsTask.Params, Boolean> {
|
internal abstract class UnbindThreePidsTask : Task<UnbindThreePidsTask.Params, Boolean> {
|
||||||
|
@ -34,12 +34,12 @@ internal abstract class UnbindThreePidsTask : Task<UnbindThreePidsTask.Params, B
|
||||||
|
|
||||||
internal class DefaultUnbindThreePidsTask @Inject constructor(private val profileAPI: ProfileAPI,
|
internal class DefaultUnbindThreePidsTask @Inject constructor(private val profileAPI: ProfileAPI,
|
||||||
private val identityStore: IdentityStore,
|
private val identityStore: IdentityStore,
|
||||||
private val eventBus: EventBus) : UnbindThreePidsTask() {
|
private val globalErrorReceiver: GlobalErrorReceiver) : UnbindThreePidsTask() {
|
||||||
override suspend fun execute(params: Params): Boolean {
|
override suspend fun execute(params: Params): Boolean {
|
||||||
val identityServerUrlWithoutProtocol = identityStore.getIdentityServerUrlWithoutProtocol()
|
val identityServerUrlWithoutProtocol = identityStore.getIdentityServerUrlWithoutProtocol()
|
||||||
?: throw IdentityServiceError.NoIdentityServerConfigured
|
?: throw IdentityServiceError.NoIdentityServerConfigured
|
||||||
|
|
||||||
return executeRequest<UnbindThreePidResponse>(eventBus) {
|
return executeRequest<UnbindThreePidResponse>(globalErrorReceiver) {
|
||||||
apiCall = profileAPI.unbindThreePid(
|
apiCall = profileAPI.unbindThreePid(
|
||||||
UnbindThreePidBody(
|
UnbindThreePidBody(
|
||||||
identityServerUrlWithoutProtocol,
|
identityServerUrlWithoutProtocol,
|
||||||
|
|
|
@ -17,13 +17,13 @@
|
||||||
package org.matrix.android.sdk.internal.session.profile
|
package org.matrix.android.sdk.internal.session.profile
|
||||||
|
|
||||||
import com.zhuinden.monarchy.Monarchy
|
import com.zhuinden.monarchy.Monarchy
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.failure.Failure
|
import org.matrix.android.sdk.api.failure.Failure
|
||||||
import org.matrix.android.sdk.api.session.identity.ThreePid
|
import org.matrix.android.sdk.api.session.identity.ThreePid
|
||||||
import org.matrix.android.sdk.internal.auth.registration.SuccessResult
|
import org.matrix.android.sdk.internal.auth.registration.SuccessResult
|
||||||
import org.matrix.android.sdk.internal.auth.registration.ValidationCodeBody
|
import org.matrix.android.sdk.internal.auth.registration.ValidationCodeBody
|
||||||
import org.matrix.android.sdk.internal.database.model.PendingThreePidEntity
|
import org.matrix.android.sdk.internal.database.model.PendingThreePidEntity
|
||||||
import org.matrix.android.sdk.internal.di.SessionDatabase
|
import org.matrix.android.sdk.internal.di.SessionDatabase
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
@ -40,7 +40,7 @@ internal class DefaultValidateSmsCodeTask @Inject constructor(
|
||||||
@SessionDatabase
|
@SessionDatabase
|
||||||
private val monarchy: Monarchy,
|
private val monarchy: Monarchy,
|
||||||
private val pendingThreePidMapper: PendingThreePidMapper,
|
private val pendingThreePidMapper: PendingThreePidMapper,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : ValidateSmsCodeTask {
|
) : ValidateSmsCodeTask {
|
||||||
|
|
||||||
override suspend fun execute(params: ValidateSmsCodeTask.Params) {
|
override suspend fun execute(params: ValidateSmsCodeTask.Params) {
|
||||||
|
@ -58,7 +58,7 @@ internal class DefaultValidateSmsCodeTask @Inject constructor(
|
||||||
sid = pendingThreePids.sid,
|
sid = pendingThreePids.sid,
|
||||||
code = params.code
|
code = params.code
|
||||||
)
|
)
|
||||||
val result = executeRequest<SuccessResult>(eventBus) {
|
val result = executeRequest<SuccessResult>(globalErrorReceiver) {
|
||||||
apiCall = profileAPI.validateMsisdn(url, body)
|
apiCall = profileAPI.validateMsisdn(url, body)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,13 +19,13 @@ import android.content.Context
|
||||||
import androidx.work.WorkerParameters
|
import androidx.work.WorkerParameters
|
||||||
import com.squareup.moshi.JsonClass
|
import com.squareup.moshi.JsonClass
|
||||||
import com.zhuinden.monarchy.Monarchy
|
import com.zhuinden.monarchy.Monarchy
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.failure.Failure
|
import org.matrix.android.sdk.api.failure.Failure
|
||||||
import org.matrix.android.sdk.api.session.pushers.PusherState
|
import org.matrix.android.sdk.api.session.pushers.PusherState
|
||||||
import org.matrix.android.sdk.internal.database.mapper.toEntity
|
import org.matrix.android.sdk.internal.database.mapper.toEntity
|
||||||
import org.matrix.android.sdk.internal.database.model.PusherEntity
|
import org.matrix.android.sdk.internal.database.model.PusherEntity
|
||||||
import org.matrix.android.sdk.internal.database.query.where
|
import org.matrix.android.sdk.internal.database.query.where
|
||||||
import org.matrix.android.sdk.internal.di.SessionDatabase
|
import org.matrix.android.sdk.internal.di.SessionDatabase
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.SessionComponent
|
import org.matrix.android.sdk.internal.session.SessionComponent
|
||||||
import org.matrix.android.sdk.internal.util.awaitTransaction
|
import org.matrix.android.sdk.internal.util.awaitTransaction
|
||||||
|
@ -45,7 +45,7 @@ internal class AddHttpPusherWorker(context: Context, params: WorkerParameters)
|
||||||
|
|
||||||
@Inject lateinit var pushersAPI: PushersAPI
|
@Inject lateinit var pushersAPI: PushersAPI
|
||||||
@Inject @SessionDatabase lateinit var monarchy: Monarchy
|
@Inject @SessionDatabase lateinit var monarchy: Monarchy
|
||||||
@Inject lateinit var eventBus: EventBus
|
@Inject lateinit var globalErrorReceiver: GlobalErrorReceiver
|
||||||
|
|
||||||
override fun injectWith(injector: SessionComponent) {
|
override fun injectWith(injector: SessionComponent) {
|
||||||
injector.inject(this)
|
injector.inject(this)
|
||||||
|
@ -81,7 +81,7 @@ internal class AddHttpPusherWorker(context: Context, params: WorkerParameters)
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun setPusher(pusher: JsonPusher) {
|
private suspend fun setPusher(pusher: JsonPusher) {
|
||||||
executeRequest<Unit>(eventBus) {
|
executeRequest<Unit>(globalErrorReceiver) {
|
||||||
apiCall = pushersAPI.setPusher(pusher)
|
apiCall = pushersAPI.setPusher(pusher)
|
||||||
}
|
}
|
||||||
monarchy.awaitTransaction { realm ->
|
monarchy.awaitTransaction { realm ->
|
||||||
|
|
|
@ -17,9 +17,9 @@ package org.matrix.android.sdk.internal.session.pushers
|
||||||
|
|
||||||
import org.matrix.android.sdk.api.pushrules.RuleKind
|
import org.matrix.android.sdk.api.pushrules.RuleKind
|
||||||
import org.matrix.android.sdk.api.pushrules.rest.PushRule
|
import org.matrix.android.sdk.api.pushrules.rest.PushRule
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface AddPushRuleTask : Task<AddPushRuleTask.Params, Unit> {
|
internal interface AddPushRuleTask : Task<AddPushRuleTask.Params, Unit> {
|
||||||
|
@ -31,11 +31,11 @@ internal interface AddPushRuleTask : Task<AddPushRuleTask.Params, Unit> {
|
||||||
|
|
||||||
internal class DefaultAddPushRuleTask @Inject constructor(
|
internal class DefaultAddPushRuleTask @Inject constructor(
|
||||||
private val pushRulesApi: PushRulesApi,
|
private val pushRulesApi: PushRulesApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : AddPushRuleTask {
|
) : AddPushRuleTask {
|
||||||
|
|
||||||
override suspend fun execute(params: AddPushRuleTask.Params) {
|
override suspend fun execute(params: AddPushRuleTask.Params) {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = pushRulesApi.addRule(params.kind.value, params.pushRule.ruleId, params.pushRule)
|
apiCall = pushRulesApi.addRule(params.kind.value, params.pushRule.ruleId, params.pushRule)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,9 +16,9 @@
|
||||||
package org.matrix.android.sdk.internal.session.pushers
|
package org.matrix.android.sdk.internal.session.pushers
|
||||||
|
|
||||||
import org.matrix.android.sdk.api.pushrules.rest.GetPushRulesResponse
|
import org.matrix.android.sdk.api.pushrules.rest.GetPushRulesResponse
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface GetPushRulesTask : Task<GetPushRulesTask.Params, Unit> {
|
internal interface GetPushRulesTask : Task<GetPushRulesTask.Params, Unit> {
|
||||||
|
@ -31,11 +31,11 @@ internal interface GetPushRulesTask : Task<GetPushRulesTask.Params, Unit> {
|
||||||
internal class DefaultGetPushRulesTask @Inject constructor(
|
internal class DefaultGetPushRulesTask @Inject constructor(
|
||||||
private val pushRulesApi: PushRulesApi,
|
private val pushRulesApi: PushRulesApi,
|
||||||
private val savePushRulesTask: SavePushRulesTask,
|
private val savePushRulesTask: SavePushRulesTask,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : GetPushRulesTask {
|
) : GetPushRulesTask {
|
||||||
|
|
||||||
override suspend fun execute(params: GetPushRulesTask.Params) {
|
override suspend fun execute(params: GetPushRulesTask.Params) {
|
||||||
val response = executeRequest<GetPushRulesResponse>(eventBus) {
|
val response = executeRequest<GetPushRulesResponse>(globalErrorReceiver) {
|
||||||
apiCall = pushRulesApi.getAllRules()
|
apiCall = pushRulesApi.getAllRules()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,10 +20,10 @@ import org.matrix.android.sdk.api.session.pushers.PusherState
|
||||||
import org.matrix.android.sdk.internal.database.mapper.toEntity
|
import org.matrix.android.sdk.internal.database.mapper.toEntity
|
||||||
import org.matrix.android.sdk.internal.database.model.PusherEntity
|
import org.matrix.android.sdk.internal.database.model.PusherEntity
|
||||||
import org.matrix.android.sdk.internal.di.SessionDatabase
|
import org.matrix.android.sdk.internal.di.SessionDatabase
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.matrix.android.sdk.internal.util.awaitTransaction
|
import org.matrix.android.sdk.internal.util.awaitTransaction
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface GetPushersTask : Task<Unit, Unit>
|
internal interface GetPushersTask : Task<Unit, Unit>
|
||||||
|
@ -31,11 +31,11 @@ internal interface GetPushersTask : Task<Unit, Unit>
|
||||||
internal class DefaultGetPushersTask @Inject constructor(
|
internal class DefaultGetPushersTask @Inject constructor(
|
||||||
private val pushersAPI: PushersAPI,
|
private val pushersAPI: PushersAPI,
|
||||||
@SessionDatabase private val monarchy: Monarchy,
|
@SessionDatabase private val monarchy: Monarchy,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : GetPushersTask {
|
) : GetPushersTask {
|
||||||
|
|
||||||
override suspend fun execute(params: Unit) {
|
override suspend fun execute(params: Unit) {
|
||||||
val response = executeRequest<GetPushersResponse>(eventBus) {
|
val response = executeRequest<GetPushersResponse>(globalErrorReceiver) {
|
||||||
apiCall = pushersAPI.getPushers()
|
apiCall = pushersAPI.getPushers()
|
||||||
}
|
}
|
||||||
monarchy.awaitTransaction { realm ->
|
monarchy.awaitTransaction { realm ->
|
||||||
|
|
|
@ -17,9 +17,9 @@ package org.matrix.android.sdk.internal.session.pushers
|
||||||
|
|
||||||
import org.matrix.android.sdk.api.pushrules.RuleKind
|
import org.matrix.android.sdk.api.pushrules.RuleKind
|
||||||
import org.matrix.android.sdk.api.pushrules.rest.PushRule
|
import org.matrix.android.sdk.api.pushrules.rest.PushRule
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface RemovePushRuleTask : Task<RemovePushRuleTask.Params, Unit> {
|
internal interface RemovePushRuleTask : Task<RemovePushRuleTask.Params, Unit> {
|
||||||
|
@ -31,11 +31,11 @@ internal interface RemovePushRuleTask : Task<RemovePushRuleTask.Params, Unit> {
|
||||||
|
|
||||||
internal class DefaultRemovePushRuleTask @Inject constructor(
|
internal class DefaultRemovePushRuleTask @Inject constructor(
|
||||||
private val pushRulesApi: PushRulesApi,
|
private val pushRulesApi: PushRulesApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : RemovePushRuleTask {
|
) : RemovePushRuleTask {
|
||||||
|
|
||||||
override suspend fun execute(params: RemovePushRuleTask.Params) {
|
override suspend fun execute(params: RemovePushRuleTask.Params) {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = pushRulesApi.deleteRule(params.kind.value, params.pushRule.ruleId)
|
apiCall = pushRulesApi.deleteRule(params.kind.value, params.pushRule.ruleId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,7 @@ import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.matrix.android.sdk.internal.util.awaitTransaction
|
import org.matrix.android.sdk.internal.util.awaitTransaction
|
||||||
import io.realm.Realm
|
import io.realm.Realm
|
||||||
import org.greenrobot.eventbus.EventBus
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface RemovePusherTask : Task<RemovePusherTask.Params, Unit> {
|
internal interface RemovePusherTask : Task<RemovePusherTask.Params, Unit> {
|
||||||
|
@ -37,7 +37,7 @@ internal interface RemovePusherTask : Task<RemovePusherTask.Params, Unit> {
|
||||||
internal class DefaultRemovePusherTask @Inject constructor(
|
internal class DefaultRemovePusherTask @Inject constructor(
|
||||||
private val pushersAPI: PushersAPI,
|
private val pushersAPI: PushersAPI,
|
||||||
@SessionDatabase private val monarchy: Monarchy,
|
@SessionDatabase private val monarchy: Monarchy,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : RemovePusherTask {
|
) : RemovePusherTask {
|
||||||
|
|
||||||
override suspend fun execute(params: RemovePusherTask.Params) {
|
override suspend fun execute(params: RemovePusherTask.Params) {
|
||||||
|
@ -62,7 +62,7 @@ internal class DefaultRemovePusherTask @Inject constructor(
|
||||||
data = JsonPusherData(existing.data.url, existing.data.format),
|
data = JsonPusherData(existing.data.url, existing.data.format),
|
||||||
append = false
|
append = false
|
||||||
)
|
)
|
||||||
executeRequest<Unit>(eventBus) {
|
executeRequest<Unit>(globalErrorReceiver) {
|
||||||
apiCall = pushersAPI.setPusher(deleteBody)
|
apiCall = pushersAPI.setPusher(deleteBody)
|
||||||
}
|
}
|
||||||
monarchy.awaitTransaction {
|
monarchy.awaitTransaction {
|
||||||
|
|
|
@ -17,9 +17,9 @@ package org.matrix.android.sdk.internal.session.pushers
|
||||||
|
|
||||||
import org.matrix.android.sdk.api.pushrules.RuleKind
|
import org.matrix.android.sdk.api.pushrules.RuleKind
|
||||||
import org.matrix.android.sdk.api.pushrules.rest.PushRule
|
import org.matrix.android.sdk.api.pushrules.rest.PushRule
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface UpdatePushRuleActionsTask : Task<UpdatePushRuleActionsTask.Params, Unit> {
|
internal interface UpdatePushRuleActionsTask : Task<UpdatePushRuleActionsTask.Params, Unit> {
|
||||||
|
@ -32,13 +32,13 @@ internal interface UpdatePushRuleActionsTask : Task<UpdatePushRuleActionsTask.Pa
|
||||||
|
|
||||||
internal class DefaultUpdatePushRuleActionsTask @Inject constructor(
|
internal class DefaultUpdatePushRuleActionsTask @Inject constructor(
|
||||||
private val pushRulesApi: PushRulesApi,
|
private val pushRulesApi: PushRulesApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : UpdatePushRuleActionsTask {
|
) : UpdatePushRuleActionsTask {
|
||||||
|
|
||||||
override suspend fun execute(params: UpdatePushRuleActionsTask.Params) {
|
override suspend fun execute(params: UpdatePushRuleActionsTask.Params) {
|
||||||
if (params.oldPushRule.enabled != params.newPushRule.enabled) {
|
if (params.oldPushRule.enabled != params.newPushRule.enabled) {
|
||||||
// First change enabled state
|
// First change enabled state
|
||||||
executeRequest<Unit>(eventBus) {
|
executeRequest<Unit>(globalErrorReceiver) {
|
||||||
apiCall = pushRulesApi.updateEnableRuleStatus(params.kind.value, params.newPushRule.ruleId, params.newPushRule.enabled)
|
apiCall = pushRulesApi.updateEnableRuleStatus(params.kind.value, params.newPushRule.ruleId, params.newPushRule.enabled)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ internal class DefaultUpdatePushRuleActionsTask @Inject constructor(
|
||||||
// Also ensure the actions are up to date
|
// Also ensure the actions are up to date
|
||||||
val body = mapOf("actions" to params.newPushRule.actions)
|
val body = mapOf("actions" to params.newPushRule.actions)
|
||||||
|
|
||||||
executeRequest<Unit>(eventBus) {
|
executeRequest<Unit>(globalErrorReceiver) {
|
||||||
apiCall = pushRulesApi.updateRuleActions(params.kind.value, params.newPushRule.ruleId, body)
|
apiCall = pushRulesApi.updateRuleActions(params.kind.value, params.newPushRule.ruleId, body)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,9 +17,9 @@ package org.matrix.android.sdk.internal.session.pushers
|
||||||
|
|
||||||
import org.matrix.android.sdk.api.pushrules.RuleKind
|
import org.matrix.android.sdk.api.pushrules.RuleKind
|
||||||
import org.matrix.android.sdk.api.pushrules.rest.PushRule
|
import org.matrix.android.sdk.api.pushrules.rest.PushRule
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface UpdatePushRuleEnableStatusTask : Task<UpdatePushRuleEnableStatusTask.Params, Unit> {
|
internal interface UpdatePushRuleEnableStatusTask : Task<UpdatePushRuleEnableStatusTask.Params, Unit> {
|
||||||
|
@ -30,11 +30,11 @@ internal interface UpdatePushRuleEnableStatusTask : Task<UpdatePushRuleEnableSta
|
||||||
|
|
||||||
internal class DefaultUpdatePushRuleEnableStatusTask @Inject constructor(
|
internal class DefaultUpdatePushRuleEnableStatusTask @Inject constructor(
|
||||||
private val pushRulesApi: PushRulesApi,
|
private val pushRulesApi: PushRulesApi,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : UpdatePushRuleEnableStatusTask {
|
) : UpdatePushRuleEnableStatusTask {
|
||||||
|
|
||||||
override suspend fun execute(params: UpdatePushRuleEnableStatusTask.Params) {
|
override suspend fun execute(params: UpdatePushRuleEnableStatusTask.Params) {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = pushRulesApi.updateEnableRuleStatus(params.kind.value, params.pushRule.ruleId, params.enabled)
|
apiCall = pushRulesApi.updateEnableRuleStatus(params.kind.value, params.pushRule.ruleId, params.enabled)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,8 +16,8 @@
|
||||||
|
|
||||||
package org.matrix.android.sdk.internal.session.room.alias
|
package org.matrix.android.sdk.internal.session.room.alias
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.internal.di.UserId
|
import org.matrix.android.sdk.internal.di.UserId
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.directory.DirectoryAPI
|
import org.matrix.android.sdk.internal.session.directory.DirectoryAPI
|
||||||
import org.matrix.android.sdk.internal.session.room.alias.RoomAliasAvailabilityChecker.Companion.toFullLocalAlias
|
import org.matrix.android.sdk.internal.session.room.alias.RoomAliasAvailabilityChecker.Companion.toFullLocalAlias
|
||||||
|
@ -39,13 +39,13 @@ internal class DefaultAddRoomAliasTask @Inject constructor(
|
||||||
@UserId private val userId: String,
|
@UserId private val userId: String,
|
||||||
private val directoryAPI: DirectoryAPI,
|
private val directoryAPI: DirectoryAPI,
|
||||||
private val aliasAvailabilityChecker: RoomAliasAvailabilityChecker,
|
private val aliasAvailabilityChecker: RoomAliasAvailabilityChecker,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : AddRoomAliasTask {
|
) : AddRoomAliasTask {
|
||||||
|
|
||||||
override suspend fun execute(params: AddRoomAliasTask.Params) {
|
override suspend fun execute(params: AddRoomAliasTask.Params) {
|
||||||
aliasAvailabilityChecker.check(params.aliasLocalPart)
|
aliasAvailabilityChecker.check(params.aliasLocalPart)
|
||||||
|
|
||||||
executeRequest<Unit>(eventBus) {
|
executeRequest<Unit>(globalErrorReceiver) {
|
||||||
apiCall = directoryAPI.addRoomAlias(
|
apiCall = directoryAPI.addRoomAlias(
|
||||||
roomAlias = params.aliasLocalPart.toFullLocalAlias(userId),
|
roomAlias = params.aliasLocalPart.toFullLocalAlias(userId),
|
||||||
body = AddRoomAliasBody(
|
body = AddRoomAliasBody(
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
package org.matrix.android.sdk.internal.session.room.alias
|
package org.matrix.android.sdk.internal.session.room.alias
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.directory.DirectoryAPI
|
import org.matrix.android.sdk.internal.session.directory.DirectoryAPI
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
|
@ -30,11 +30,11 @@ internal interface DeleteRoomAliasTask : Task<DeleteRoomAliasTask.Params, Unit>
|
||||||
|
|
||||||
internal class DefaultDeleteRoomAliasTask @Inject constructor(
|
internal class DefaultDeleteRoomAliasTask @Inject constructor(
|
||||||
private val directoryAPI: DirectoryAPI,
|
private val directoryAPI: DirectoryAPI,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : DeleteRoomAliasTask {
|
) : DeleteRoomAliasTask {
|
||||||
|
|
||||||
override suspend fun execute(params: DeleteRoomAliasTask.Params) {
|
override suspend fun execute(params: DeleteRoomAliasTask.Params) {
|
||||||
executeRequest<Unit>(eventBus) {
|
executeRequest<Unit>(globalErrorReceiver) {
|
||||||
apiCall = directoryAPI.deleteRoomAlias(
|
apiCall = directoryAPI.deleteRoomAlias(
|
||||||
roomAlias = params.roomAlias
|
roomAlias = params.roomAlias
|
||||||
)
|
)
|
||||||
|
|
|
@ -18,12 +18,12 @@ package org.matrix.android.sdk.internal.session.room.alias
|
||||||
|
|
||||||
import com.zhuinden.monarchy.Monarchy
|
import com.zhuinden.monarchy.Monarchy
|
||||||
import io.realm.Realm
|
import io.realm.Realm
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.extensions.tryOrNull
|
import org.matrix.android.sdk.api.extensions.tryOrNull
|
||||||
import org.matrix.android.sdk.api.util.Optional
|
import org.matrix.android.sdk.api.util.Optional
|
||||||
import org.matrix.android.sdk.internal.database.model.RoomSummaryEntity
|
import org.matrix.android.sdk.internal.database.model.RoomSummaryEntity
|
||||||
import org.matrix.android.sdk.internal.database.query.findByAlias
|
import org.matrix.android.sdk.internal.database.query.findByAlias
|
||||||
import org.matrix.android.sdk.internal.di.SessionDatabase
|
import org.matrix.android.sdk.internal.di.SessionDatabase
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.directory.DirectoryAPI
|
import org.matrix.android.sdk.internal.session.directory.DirectoryAPI
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
|
@ -39,7 +39,7 @@ internal interface GetRoomIdByAliasTask : Task<GetRoomIdByAliasTask.Params, Opti
|
||||||
internal class DefaultGetRoomIdByAliasTask @Inject constructor(
|
internal class DefaultGetRoomIdByAliasTask @Inject constructor(
|
||||||
@SessionDatabase private val monarchy: Monarchy,
|
@SessionDatabase private val monarchy: Monarchy,
|
||||||
private val directoryAPI: DirectoryAPI,
|
private val directoryAPI: DirectoryAPI,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : GetRoomIdByAliasTask {
|
) : GetRoomIdByAliasTask {
|
||||||
|
|
||||||
override suspend fun execute(params: GetRoomIdByAliasTask.Params): Optional<RoomAliasDescription> {
|
override suspend fun execute(params: GetRoomIdByAliasTask.Params): Optional<RoomAliasDescription> {
|
||||||
|
@ -52,7 +52,7 @@ internal class DefaultGetRoomIdByAliasTask @Inject constructor(
|
||||||
Optional.from(null)
|
Optional.from(null)
|
||||||
} else {
|
} else {
|
||||||
val description = tryOrNull("## Failed to get roomId from alias") {
|
val description = tryOrNull("## Failed to get roomId from alias") {
|
||||||
executeRequest<RoomAliasDescription>(eventBus) {
|
executeRequest<RoomAliasDescription>(globalErrorReceiver) {
|
||||||
apiCall = directoryAPI.getRoomIdByAlias(params.roomAlias)
|
apiCall = directoryAPI.getRoomIdByAlias(params.roomAlias)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
package org.matrix.android.sdk.internal.session.room.alias
|
package org.matrix.android.sdk.internal.session.room.alias
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
|
@ -30,12 +30,12 @@ internal interface GetRoomLocalAliasesTask : Task<GetRoomLocalAliasesTask.Params
|
||||||
|
|
||||||
internal class DefaultGetRoomLocalAliasesTask @Inject constructor(
|
internal class DefaultGetRoomLocalAliasesTask @Inject constructor(
|
||||||
private val roomAPI: RoomAPI,
|
private val roomAPI: RoomAPI,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : GetRoomLocalAliasesTask {
|
) : GetRoomLocalAliasesTask {
|
||||||
|
|
||||||
override suspend fun execute(params: GetRoomLocalAliasesTask.Params): List<String> {
|
override suspend fun execute(params: GetRoomLocalAliasesTask.Params): List<String> {
|
||||||
// We do not check for "org.matrix.msc2432", so the API may be missing
|
// We do not check for "org.matrix.msc2432", so the API may be missing
|
||||||
val response = executeRequest<GetAliasesResponse>(eventBus) {
|
val response = executeRequest<GetAliasesResponse>(globalErrorReceiver) {
|
||||||
apiCall = roomAPI.getAliases(roomId = params.roomId)
|
apiCall = roomAPI.getAliases(roomId = params.roomId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,10 +16,10 @@
|
||||||
|
|
||||||
package org.matrix.android.sdk.internal.session.room.alias
|
package org.matrix.android.sdk.internal.session.room.alias
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.failure.Failure
|
import org.matrix.android.sdk.api.failure.Failure
|
||||||
import org.matrix.android.sdk.api.session.room.alias.RoomAliasError
|
import org.matrix.android.sdk.api.session.room.alias.RoomAliasError
|
||||||
import org.matrix.android.sdk.internal.di.UserId
|
import org.matrix.android.sdk.internal.di.UserId
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.directory.DirectoryAPI
|
import org.matrix.android.sdk.internal.session.directory.DirectoryAPI
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
@ -27,7 +27,7 @@ import javax.inject.Inject
|
||||||
internal class RoomAliasAvailabilityChecker @Inject constructor(
|
internal class RoomAliasAvailabilityChecker @Inject constructor(
|
||||||
@UserId private val userId: String,
|
@UserId private val userId: String,
|
||||||
private val directoryAPI: DirectoryAPI,
|
private val directoryAPI: DirectoryAPI,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) {
|
) {
|
||||||
/**
|
/**
|
||||||
* @param aliasLocalPart the local part of the alias.
|
* @param aliasLocalPart the local part of the alias.
|
||||||
|
@ -41,7 +41,7 @@ internal class RoomAliasAvailabilityChecker @Inject constructor(
|
||||||
// Check alias availability
|
// Check alias availability
|
||||||
val fullAlias = aliasLocalPart.toFullLocalAlias(userId)
|
val fullAlias = aliasLocalPart.toFullLocalAlias(userId)
|
||||||
try {
|
try {
|
||||||
executeRequest<RoomAliasDescription>(eventBus) {
|
executeRequest<RoomAliasDescription>(globalErrorReceiver) {
|
||||||
apiCall = directoryAPI.getRoomIdByAlias(fullAlias)
|
apiCall = directoryAPI.getRoomIdByAlias(fullAlias)
|
||||||
}
|
}
|
||||||
} catch (throwable: Throwable) {
|
} catch (throwable: Throwable) {
|
||||||
|
|
|
@ -19,7 +19,6 @@ package org.matrix.android.sdk.internal.session.room.create
|
||||||
import com.zhuinden.monarchy.Monarchy
|
import com.zhuinden.monarchy.Monarchy
|
||||||
import io.realm.RealmConfiguration
|
import io.realm.RealmConfiguration
|
||||||
import kotlinx.coroutines.TimeoutCancellationException
|
import kotlinx.coroutines.TimeoutCancellationException
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.failure.Failure
|
import org.matrix.android.sdk.api.failure.Failure
|
||||||
import org.matrix.android.sdk.api.failure.MatrixError
|
import org.matrix.android.sdk.api.failure.MatrixError
|
||||||
import org.matrix.android.sdk.api.session.room.alias.RoomAliasError
|
import org.matrix.android.sdk.api.session.room.alias.RoomAliasError
|
||||||
|
@ -32,6 +31,7 @@ import org.matrix.android.sdk.internal.database.model.RoomEntityFields
|
||||||
import org.matrix.android.sdk.internal.database.model.RoomSummaryEntity
|
import org.matrix.android.sdk.internal.database.model.RoomSummaryEntity
|
||||||
import org.matrix.android.sdk.internal.database.query.where
|
import org.matrix.android.sdk.internal.database.query.where
|
||||||
import org.matrix.android.sdk.internal.di.SessionDatabase
|
import org.matrix.android.sdk.internal.di.SessionDatabase
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
||||||
import org.matrix.android.sdk.internal.session.room.alias.RoomAliasAvailabilityChecker
|
import org.matrix.android.sdk.internal.session.room.alias.RoomAliasAvailabilityChecker
|
||||||
|
@ -55,7 +55,7 @@ internal class DefaultCreateRoomTask @Inject constructor(
|
||||||
@SessionDatabase
|
@SessionDatabase
|
||||||
private val realmConfiguration: RealmConfiguration,
|
private val realmConfiguration: RealmConfiguration,
|
||||||
private val createRoomBodyBuilder: CreateRoomBodyBuilder,
|
private val createRoomBodyBuilder: CreateRoomBodyBuilder,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : CreateRoomTask {
|
) : CreateRoomTask {
|
||||||
|
|
||||||
override suspend fun execute(params: CreateRoomParams): String {
|
override suspend fun execute(params: CreateRoomParams): String {
|
||||||
|
@ -75,7 +75,7 @@ internal class DefaultCreateRoomTask @Inject constructor(
|
||||||
val createRoomBody = createRoomBodyBuilder.build(params)
|
val createRoomBody = createRoomBodyBuilder.build(params)
|
||||||
|
|
||||||
val createRoomResponse = try {
|
val createRoomResponse = try {
|
||||||
executeRequest<CreateRoomResponse>(eventBus) {
|
executeRequest<CreateRoomResponse>(globalErrorReceiver) {
|
||||||
apiCall = roomAPI.createRoom(createRoomBody)
|
apiCall = roomAPI.createRoom(createRoomBody)
|
||||||
}
|
}
|
||||||
} catch (throwable: Throwable) {
|
} catch (throwable: Throwable) {
|
||||||
|
|
|
@ -18,10 +18,10 @@ package org.matrix.android.sdk.internal.session.room.directory
|
||||||
|
|
||||||
import org.matrix.android.sdk.api.session.room.model.roomdirectory.PublicRoomsParams
|
import org.matrix.android.sdk.api.session.room.model.roomdirectory.PublicRoomsParams
|
||||||
import org.matrix.android.sdk.api.session.room.model.roomdirectory.PublicRoomsResponse
|
import org.matrix.android.sdk.api.session.room.model.roomdirectory.PublicRoomsResponse
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface GetPublicRoomTask : Task<GetPublicRoomTask.Params, PublicRoomsResponse> {
|
internal interface GetPublicRoomTask : Task<GetPublicRoomTask.Params, PublicRoomsResponse> {
|
||||||
|
@ -33,11 +33,11 @@ internal interface GetPublicRoomTask : Task<GetPublicRoomTask.Params, PublicRoom
|
||||||
|
|
||||||
internal class DefaultGetPublicRoomTask @Inject constructor(
|
internal class DefaultGetPublicRoomTask @Inject constructor(
|
||||||
private val roomAPI: RoomAPI,
|
private val roomAPI: RoomAPI,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : GetPublicRoomTask {
|
) : GetPublicRoomTask {
|
||||||
|
|
||||||
override suspend fun execute(params: GetPublicRoomTask.Params): PublicRoomsResponse {
|
override suspend fun execute(params: GetPublicRoomTask.Params): PublicRoomsResponse {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = roomAPI.publicRooms(params.server, params.publicRoomsParams)
|
apiCall = roomAPI.publicRooms(params.server, params.publicRoomsParams)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,8 +16,8 @@
|
||||||
|
|
||||||
package org.matrix.android.sdk.internal.session.room.directory
|
package org.matrix.android.sdk.internal.session.room.directory
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.session.room.model.RoomDirectoryVisibility
|
import org.matrix.android.sdk.api.session.room.model.RoomDirectoryVisibility
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.directory.DirectoryAPI
|
import org.matrix.android.sdk.internal.session.directory.DirectoryAPI
|
||||||
import org.matrix.android.sdk.internal.session.directory.RoomDirectoryVisibilityJson
|
import org.matrix.android.sdk.internal.session.directory.RoomDirectoryVisibilityJson
|
||||||
|
@ -32,11 +32,11 @@ internal interface GetRoomDirectoryVisibilityTask : Task<GetRoomDirectoryVisibil
|
||||||
|
|
||||||
internal class DefaultGetRoomDirectoryVisibilityTask @Inject constructor(
|
internal class DefaultGetRoomDirectoryVisibilityTask @Inject constructor(
|
||||||
private val directoryAPI: DirectoryAPI,
|
private val directoryAPI: DirectoryAPI,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : GetRoomDirectoryVisibilityTask {
|
) : GetRoomDirectoryVisibilityTask {
|
||||||
|
|
||||||
override suspend fun execute(params: GetRoomDirectoryVisibilityTask.Params): RoomDirectoryVisibility {
|
override suspend fun execute(params: GetRoomDirectoryVisibilityTask.Params): RoomDirectoryVisibility {
|
||||||
return executeRequest<RoomDirectoryVisibilityJson>(eventBus) {
|
return executeRequest<RoomDirectoryVisibilityJson>(globalErrorReceiver) {
|
||||||
apiCall = directoryAPI.getRoomDirectoryVisibility(params.roomId)
|
apiCall = directoryAPI.getRoomDirectoryVisibility(params.roomId)
|
||||||
}
|
}
|
||||||
.visibility
|
.visibility
|
||||||
|
|
|
@ -17,21 +17,21 @@
|
||||||
package org.matrix.android.sdk.internal.session.room.directory
|
package org.matrix.android.sdk.internal.session.room.directory
|
||||||
|
|
||||||
import org.matrix.android.sdk.api.session.room.model.thirdparty.ThirdPartyProtocol
|
import org.matrix.android.sdk.api.session.room.model.thirdparty.ThirdPartyProtocol
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface GetThirdPartyProtocolsTask : Task<Unit, Map<String, ThirdPartyProtocol>>
|
internal interface GetThirdPartyProtocolsTask : Task<Unit, Map<String, ThirdPartyProtocol>>
|
||||||
|
|
||||||
internal class DefaultGetThirdPartyProtocolsTask @Inject constructor(
|
internal class DefaultGetThirdPartyProtocolsTask @Inject constructor(
|
||||||
private val roomAPI: RoomAPI,
|
private val roomAPI: RoomAPI,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : GetThirdPartyProtocolsTask {
|
) : GetThirdPartyProtocolsTask {
|
||||||
|
|
||||||
override suspend fun execute(params: Unit): Map<String, ThirdPartyProtocol> {
|
override suspend fun execute(params: Unit): Map<String, ThirdPartyProtocol> {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = roomAPI.thirdPartyProtocols()
|
apiCall = roomAPI.thirdPartyProtocols()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,8 +16,8 @@
|
||||||
|
|
||||||
package org.matrix.android.sdk.internal.session.room.directory
|
package org.matrix.android.sdk.internal.session.room.directory
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.session.room.model.RoomDirectoryVisibility
|
import org.matrix.android.sdk.api.session.room.model.RoomDirectoryVisibility
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.directory.DirectoryAPI
|
import org.matrix.android.sdk.internal.session.directory.DirectoryAPI
|
||||||
import org.matrix.android.sdk.internal.session.directory.RoomDirectoryVisibilityJson
|
import org.matrix.android.sdk.internal.session.directory.RoomDirectoryVisibilityJson
|
||||||
|
@ -33,11 +33,11 @@ internal interface SetRoomDirectoryVisibilityTask : Task<SetRoomDirectoryVisibil
|
||||||
|
|
||||||
internal class DefaultSetRoomDirectoryVisibilityTask @Inject constructor(
|
internal class DefaultSetRoomDirectoryVisibilityTask @Inject constructor(
|
||||||
private val directoryAPI: DirectoryAPI,
|
private val directoryAPI: DirectoryAPI,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : SetRoomDirectoryVisibilityTask {
|
) : SetRoomDirectoryVisibilityTask {
|
||||||
|
|
||||||
override suspend fun execute(params: SetRoomDirectoryVisibilityTask.Params) {
|
override suspend fun execute(params: SetRoomDirectoryVisibilityTask.Params) {
|
||||||
executeRequest<Unit>(eventBus) {
|
executeRequest<Unit>(globalErrorReceiver) {
|
||||||
apiCall = directoryAPI.setRoomDirectoryVisibility(
|
apiCall = directoryAPI.setRoomDirectoryVisibility(
|
||||||
params.roomId,
|
params.roomId,
|
||||||
RoomDirectoryVisibilityJson(visibility = params.roomDirectoryVisibility)
|
RoomDirectoryVisibilityJson(visibility = params.roomDirectoryVisibility)
|
||||||
|
|
|
@ -20,7 +20,6 @@ import com.zhuinden.monarchy.Monarchy
|
||||||
import io.realm.Realm
|
import io.realm.Realm
|
||||||
import io.realm.kotlin.createObject
|
import io.realm.kotlin.createObject
|
||||||
import kotlinx.coroutines.TimeoutCancellationException
|
import kotlinx.coroutines.TimeoutCancellationException
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.session.room.model.Membership
|
import org.matrix.android.sdk.api.session.room.model.Membership
|
||||||
import org.matrix.android.sdk.api.session.room.send.SendState
|
import org.matrix.android.sdk.api.session.room.send.SendState
|
||||||
import org.matrix.android.sdk.internal.database.awaitNotEmptyResult
|
import org.matrix.android.sdk.internal.database.awaitNotEmptyResult
|
||||||
|
@ -34,6 +33,7 @@ import org.matrix.android.sdk.internal.database.query.copyToRealmOrIgnore
|
||||||
import org.matrix.android.sdk.internal.database.query.getOrCreate
|
import org.matrix.android.sdk.internal.database.query.getOrCreate
|
||||||
import org.matrix.android.sdk.internal.database.query.where
|
import org.matrix.android.sdk.internal.database.query.where
|
||||||
import org.matrix.android.sdk.internal.di.SessionDatabase
|
import org.matrix.android.sdk.internal.di.SessionDatabase
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
||||||
import org.matrix.android.sdk.internal.session.room.summary.RoomSummaryUpdater
|
import org.matrix.android.sdk.internal.session.room.summary.RoomSummaryUpdater
|
||||||
|
@ -57,7 +57,7 @@ internal class DefaultLoadRoomMembersTask @Inject constructor(
|
||||||
private val syncTokenStore: SyncTokenStore,
|
private val syncTokenStore: SyncTokenStore,
|
||||||
private val roomSummaryUpdater: RoomSummaryUpdater,
|
private val roomSummaryUpdater: RoomSummaryUpdater,
|
||||||
private val roomMemberEventHandler: RoomMemberEventHandler,
|
private val roomMemberEventHandler: RoomMemberEventHandler,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : LoadRoomMembersTask {
|
) : LoadRoomMembersTask {
|
||||||
|
|
||||||
override suspend fun execute(params: LoadRoomMembersTask.Params) {
|
override suspend fun execute(params: LoadRoomMembersTask.Params) {
|
||||||
|
@ -86,7 +86,7 @@ internal class DefaultLoadRoomMembersTask @Inject constructor(
|
||||||
|
|
||||||
val lastToken = syncTokenStore.getLastToken()
|
val lastToken = syncTokenStore.getLastToken()
|
||||||
val response = try {
|
val response = try {
|
||||||
executeRequest<RoomMembersResponse>(eventBus) {
|
executeRequest<RoomMembersResponse>(globalErrorReceiver) {
|
||||||
apiCall = roomAPI.getMembers(params.roomId, lastToken, null, params.excludeMembership?.value)
|
apiCall = roomAPI.getMembers(params.roomId, lastToken, null, params.excludeMembership?.value)
|
||||||
}
|
}
|
||||||
} catch (throwable: Throwable) {
|
} catch (throwable: Throwable) {
|
||||||
|
|
|
@ -16,10 +16,10 @@
|
||||||
|
|
||||||
package org.matrix.android.sdk.internal.session.room.membership.joining
|
package org.matrix.android.sdk.internal.session.room.membership.joining
|
||||||
|
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface InviteTask : Task<InviteTask.Params, Unit> {
|
internal interface InviteTask : Task<InviteTask.Params, Unit> {
|
||||||
|
@ -32,11 +32,11 @@ internal interface InviteTask : Task<InviteTask.Params, Unit> {
|
||||||
|
|
||||||
internal class DefaultInviteTask @Inject constructor(
|
internal class DefaultInviteTask @Inject constructor(
|
||||||
private val roomAPI: RoomAPI,
|
private val roomAPI: RoomAPI,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : InviteTask {
|
) : InviteTask {
|
||||||
|
|
||||||
override suspend fun execute(params: InviteTask.Params) {
|
override suspend fun execute(params: InviteTask.Params) {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
val body = InviteBody(params.userId, params.reason)
|
val body = InviteBody(params.userId, params.reason)
|
||||||
apiCall = roomAPI.invite(params.roomId, body)
|
apiCall = roomAPI.invite(params.roomId, body)
|
||||||
isRetryable = true
|
isRetryable = true
|
||||||
|
|
|
@ -30,7 +30,7 @@ import org.matrix.android.sdk.internal.session.room.read.SetReadMarkersTask
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import io.realm.RealmConfiguration
|
import io.realm.RealmConfiguration
|
||||||
import kotlinx.coroutines.TimeoutCancellationException
|
import kotlinx.coroutines.TimeoutCancellationException
|
||||||
import org.greenrobot.eventbus.EventBus
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import java.util.concurrent.TimeUnit
|
import java.util.concurrent.TimeUnit
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@ -48,13 +48,13 @@ internal class DefaultJoinRoomTask @Inject constructor(
|
||||||
@SessionDatabase
|
@SessionDatabase
|
||||||
private val realmConfiguration: RealmConfiguration,
|
private val realmConfiguration: RealmConfiguration,
|
||||||
private val roomChangeMembershipStateDataSource: RoomChangeMembershipStateDataSource,
|
private val roomChangeMembershipStateDataSource: RoomChangeMembershipStateDataSource,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : JoinRoomTask {
|
) : JoinRoomTask {
|
||||||
|
|
||||||
override suspend fun execute(params: JoinRoomTask.Params) {
|
override suspend fun execute(params: JoinRoomTask.Params) {
|
||||||
roomChangeMembershipStateDataSource.updateState(params.roomIdOrAlias, ChangeMembershipState.Joining)
|
roomChangeMembershipStateDataSource.updateState(params.roomIdOrAlias, ChangeMembershipState.Joining)
|
||||||
val joinRoomResponse = try {
|
val joinRoomResponse = try {
|
||||||
executeRequest<JoinRoomResponse>(eventBus) {
|
executeRequest<JoinRoomResponse>(globalErrorReceiver) {
|
||||||
apiCall = roomAPI.join(params.roomIdOrAlias, params.viaServers, mapOf("reason" to params.reason))
|
apiCall = roomAPI.join(params.roomIdOrAlias, params.viaServers, mapOf("reason" to params.reason))
|
||||||
}
|
}
|
||||||
} catch (failure: Throwable) {
|
} catch (failure: Throwable) {
|
||||||
|
|
|
@ -21,13 +21,13 @@ import org.matrix.android.sdk.api.session.events.model.EventType
|
||||||
import org.matrix.android.sdk.api.session.events.model.toModel
|
import org.matrix.android.sdk.api.session.events.model.toModel
|
||||||
import org.matrix.android.sdk.api.session.room.members.ChangeMembershipState
|
import org.matrix.android.sdk.api.session.room.members.ChangeMembershipState
|
||||||
import org.matrix.android.sdk.api.session.room.model.create.RoomCreateContent
|
import org.matrix.android.sdk.api.session.room.model.create.RoomCreateContent
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
||||||
import org.matrix.android.sdk.internal.session.room.membership.RoomChangeMembershipStateDataSource
|
import org.matrix.android.sdk.internal.session.room.membership.RoomChangeMembershipStateDataSource
|
||||||
import org.matrix.android.sdk.internal.session.room.state.StateEventDataSource
|
import org.matrix.android.sdk.internal.session.room.state.StateEventDataSource
|
||||||
import org.matrix.android.sdk.internal.session.room.summary.RoomSummaryDataSource
|
import org.matrix.android.sdk.internal.session.room.summary.RoomSummaryDataSource
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ internal interface LeaveRoomTask : Task<LeaveRoomTask.Params, Unit> {
|
||||||
|
|
||||||
internal class DefaultLeaveRoomTask @Inject constructor(
|
internal class DefaultLeaveRoomTask @Inject constructor(
|
||||||
private val roomAPI: RoomAPI,
|
private val roomAPI: RoomAPI,
|
||||||
private val eventBus: EventBus,
|
private val globalErrorReceiver: GlobalErrorReceiver,
|
||||||
private val stateEventDataSource: StateEventDataSource,
|
private val stateEventDataSource: StateEventDataSource,
|
||||||
private val roomSummaryDataSource: RoomSummaryDataSource,
|
private val roomSummaryDataSource: RoomSummaryDataSource,
|
||||||
private val roomChangeMembershipStateDataSource: RoomChangeMembershipStateDataSource
|
private val roomChangeMembershipStateDataSource: RoomChangeMembershipStateDataSource
|
||||||
|
@ -68,7 +68,7 @@ internal class DefaultLeaveRoomTask @Inject constructor(
|
||||||
leaveRoom(predecessorRoomId, reason)
|
leaveRoom(predecessorRoomId, reason)
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
executeRequest<Unit>(eventBus) {
|
executeRequest<Unit>(globalErrorReceiver) {
|
||||||
apiCall = roomAPI.leave(roomId, mapOf("reason" to reason))
|
apiCall = roomAPI.leave(roomId, mapOf("reason" to reason))
|
||||||
}
|
}
|
||||||
} catch (failure: Throwable) {
|
} catch (failure: Throwable) {
|
||||||
|
|
|
@ -16,11 +16,11 @@
|
||||||
|
|
||||||
package org.matrix.android.sdk.internal.session.room.membership.threepid
|
package org.matrix.android.sdk.internal.session.room.membership.threepid
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.session.identity.IdentityServiceError
|
import org.matrix.android.sdk.api.session.identity.IdentityServiceError
|
||||||
import org.matrix.android.sdk.api.session.identity.ThreePid
|
import org.matrix.android.sdk.api.session.identity.ThreePid
|
||||||
import org.matrix.android.sdk.api.session.identity.toMedium
|
import org.matrix.android.sdk.api.session.identity.toMedium
|
||||||
import org.matrix.android.sdk.internal.di.AuthenticatedIdentity
|
import org.matrix.android.sdk.internal.di.AuthenticatedIdentity
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.network.token.AccessTokenProvider
|
import org.matrix.android.sdk.internal.network.token.AccessTokenProvider
|
||||||
import org.matrix.android.sdk.internal.session.identity.EnsureIdentityTokenTask
|
import org.matrix.android.sdk.internal.session.identity.EnsureIdentityTokenTask
|
||||||
|
@ -39,7 +39,7 @@ internal interface InviteThreePidTask : Task<InviteThreePidTask.Params, Unit> {
|
||||||
|
|
||||||
internal class DefaultInviteThreePidTask @Inject constructor(
|
internal class DefaultInviteThreePidTask @Inject constructor(
|
||||||
private val roomAPI: RoomAPI,
|
private val roomAPI: RoomAPI,
|
||||||
private val eventBus: EventBus,
|
private val globalErrorReceiver: GlobalErrorReceiver,
|
||||||
private val identityStore: IdentityStore,
|
private val identityStore: IdentityStore,
|
||||||
private val ensureIdentityTokenTask: EnsureIdentityTokenTask,
|
private val ensureIdentityTokenTask: EnsureIdentityTokenTask,
|
||||||
@AuthenticatedIdentity
|
@AuthenticatedIdentity
|
||||||
|
@ -52,7 +52,7 @@ internal class DefaultInviteThreePidTask @Inject constructor(
|
||||||
val identityServerUrlWithoutProtocol = identityStore.getIdentityServerUrlWithoutProtocol() ?: throw IdentityServiceError.NoIdentityServerConfigured
|
val identityServerUrlWithoutProtocol = identityStore.getIdentityServerUrlWithoutProtocol() ?: throw IdentityServiceError.NoIdentityServerConfigured
|
||||||
val identityServerAccessToken = accessTokenProvider.getToken() ?: throw IdentityServiceError.NoIdentityServerConfigured
|
val identityServerAccessToken = accessTokenProvider.getToken() ?: throw IdentityServiceError.NoIdentityServerConfigured
|
||||||
|
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
val body = ThreePidInviteBody(
|
val body = ThreePidInviteBody(
|
||||||
idServer = identityServerUrlWithoutProtocol,
|
idServer = identityServerUrlWithoutProtocol,
|
||||||
idAccessToken = identityServerAccessToken,
|
idAccessToken = identityServerAccessToken,
|
||||||
|
|
|
@ -16,8 +16,8 @@
|
||||||
|
|
||||||
package org.matrix.android.sdk.internal.session.room.peeking
|
package org.matrix.android.sdk.internal.session.room.peeking
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.session.events.model.Event
|
import org.matrix.android.sdk.api.session.events.model.Event
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
|
@ -31,11 +31,11 @@ internal interface ResolveRoomStateTask : Task<ResolveRoomStateTask.Params, List
|
||||||
|
|
||||||
internal class DefaultResolveRoomStateTask @Inject constructor(
|
internal class DefaultResolveRoomStateTask @Inject constructor(
|
||||||
private val roomAPI: RoomAPI,
|
private val roomAPI: RoomAPI,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : ResolveRoomStateTask {
|
) : ResolveRoomStateTask {
|
||||||
|
|
||||||
override suspend fun execute(params: ResolveRoomStateTask.Params): List<Event> {
|
override suspend fun execute(params: ResolveRoomStateTask.Params): List<Event> {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = roomAPI.getRoomState(params.roomId)
|
apiCall = roomAPI.getRoomState(params.roomId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@ import org.matrix.android.sdk.internal.session.sync.RoomFullyReadHandler
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.matrix.android.sdk.internal.util.awaitTransaction
|
import org.matrix.android.sdk.internal.util.awaitTransaction
|
||||||
import io.realm.Realm
|
import io.realm.Realm
|
||||||
import org.greenrobot.eventbus.EventBus
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
import kotlin.collections.set
|
import kotlin.collections.set
|
||||||
|
@ -58,7 +58,7 @@ internal class DefaultSetReadMarkersTask @Inject constructor(
|
||||||
private val roomFullyReadHandler: RoomFullyReadHandler,
|
private val roomFullyReadHandler: RoomFullyReadHandler,
|
||||||
private val readReceiptHandler: ReadReceiptHandler,
|
private val readReceiptHandler: ReadReceiptHandler,
|
||||||
@UserId private val userId: String,
|
@UserId private val userId: String,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : SetReadMarkersTask {
|
) : SetReadMarkersTask {
|
||||||
|
|
||||||
override suspend fun execute(params: SetReadMarkersTask.Params) {
|
override suspend fun execute(params: SetReadMarkersTask.Params) {
|
||||||
|
@ -96,7 +96,7 @@ internal class DefaultSetReadMarkersTask @Inject constructor(
|
||||||
updateDatabase(params.roomId, markers, shouldUpdateRoomSummary)
|
updateDatabase(params.roomId, markers, shouldUpdateRoomSummary)
|
||||||
}
|
}
|
||||||
if (markers.isNotEmpty()) {
|
if (markers.isNotEmpty()) {
|
||||||
executeRequest<Unit>(eventBus) {
|
executeRequest<Unit>(globalErrorReceiver) {
|
||||||
isRetryable = true
|
isRetryable = true
|
||||||
apiCall = roomAPI.sendReadMarker(params.roomId, markers)
|
apiCall = roomAPI.sendReadMarker(params.roomId, markers)
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,10 +18,10 @@ package org.matrix.android.sdk.internal.session.room.relation
|
||||||
import org.matrix.android.sdk.api.session.events.model.Event
|
import org.matrix.android.sdk.api.session.events.model.Event
|
||||||
import org.matrix.android.sdk.api.session.events.model.EventType
|
import org.matrix.android.sdk.api.session.events.model.EventType
|
||||||
import org.matrix.android.sdk.api.session.events.model.RelationType
|
import org.matrix.android.sdk.api.session.events.model.RelationType
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface FetchEditHistoryTask : Task<FetchEditHistoryTask.Params, List<Event>> {
|
internal interface FetchEditHistoryTask : Task<FetchEditHistoryTask.Params, List<Event>> {
|
||||||
|
@ -35,11 +35,11 @@ internal interface FetchEditHistoryTask : Task<FetchEditHistoryTask.Params, List
|
||||||
|
|
||||||
internal class DefaultFetchEditHistoryTask @Inject constructor(
|
internal class DefaultFetchEditHistoryTask @Inject constructor(
|
||||||
private val roomAPI: RoomAPI,
|
private val roomAPI: RoomAPI,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : FetchEditHistoryTask {
|
) : FetchEditHistoryTask {
|
||||||
|
|
||||||
override suspend fun execute(params: FetchEditHistoryTask.Params): List<Event> {
|
override suspend fun execute(params: FetchEditHistoryTask.Params): List<Event> {
|
||||||
val response = executeRequest<RelationsResponse>(eventBus) {
|
val response = executeRequest<RelationsResponse>(globalErrorReceiver) {
|
||||||
apiCall = roomAPI.getRelations(params.roomId,
|
apiCall = roomAPI.getRelations(params.roomId,
|
||||||
params.eventId,
|
params.eventId,
|
||||||
RelationType.REPLACE,
|
RelationType.REPLACE,
|
||||||
|
|
|
@ -18,12 +18,12 @@ package org.matrix.android.sdk.internal.session.room.relation
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import androidx.work.WorkerParameters
|
import androidx.work.WorkerParameters
|
||||||
import com.squareup.moshi.JsonClass
|
import com.squareup.moshi.JsonClass
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.failure.Failure
|
import org.matrix.android.sdk.api.failure.Failure
|
||||||
import org.matrix.android.sdk.api.session.events.model.Event
|
import org.matrix.android.sdk.api.session.events.model.Event
|
||||||
import org.matrix.android.sdk.api.session.events.model.toModel
|
import org.matrix.android.sdk.api.session.events.model.toModel
|
||||||
import org.matrix.android.sdk.api.session.room.model.relation.ReactionContent
|
import org.matrix.android.sdk.api.session.room.model.relation.ReactionContent
|
||||||
import org.matrix.android.sdk.api.session.room.model.relation.ReactionInfo
|
import org.matrix.android.sdk.api.session.room.model.relation.ReactionInfo
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.SessionComponent
|
import org.matrix.android.sdk.internal.session.SessionComponent
|
||||||
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
||||||
|
@ -47,7 +47,7 @@ internal class SendRelationWorker(context: Context, params: WorkerParameters)
|
||||||
) : SessionWorkerParams
|
) : SessionWorkerParams
|
||||||
|
|
||||||
@Inject lateinit var roomAPI: RoomAPI
|
@Inject lateinit var roomAPI: RoomAPI
|
||||||
@Inject lateinit var eventBus: EventBus
|
@Inject lateinit var globalErrorReceiver: GlobalErrorReceiver
|
||||||
@Inject lateinit var localEchoRepository: LocalEchoRepository
|
@Inject lateinit var localEchoRepository: LocalEchoRepository
|
||||||
|
|
||||||
override fun injectWith(injector: SessionComponent) {
|
override fun injectWith(injector: SessionComponent) {
|
||||||
|
@ -84,7 +84,7 @@ internal class SendRelationWorker(context: Context, params: WorkerParameters)
|
||||||
}
|
}
|
||||||
|
|
||||||
private suspend fun sendRelation(roomId: String, relationType: String, relatedEventId: String, localEvent: Event) {
|
private suspend fun sendRelation(roomId: String, relationType: String, relatedEventId: String, localEvent: Event) {
|
||||||
executeRequest<SendResponse>(eventBus) {
|
executeRequest<SendResponse>(globalErrorReceiver) {
|
||||||
apiCall = roomAPI.sendRelation(
|
apiCall = roomAPI.sendRelation(
|
||||||
roomId = roomId,
|
roomId = roomId,
|
||||||
parentId = relatedEventId,
|
parentId = relatedEventId,
|
||||||
|
|
|
@ -16,10 +16,10 @@
|
||||||
|
|
||||||
package org.matrix.android.sdk.internal.session.room.reporting
|
package org.matrix.android.sdk.internal.session.room.reporting
|
||||||
|
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface ReportContentTask : Task<ReportContentTask.Params, Unit> {
|
internal interface ReportContentTask : Task<ReportContentTask.Params, Unit> {
|
||||||
|
@ -33,11 +33,11 @@ internal interface ReportContentTask : Task<ReportContentTask.Params, Unit> {
|
||||||
|
|
||||||
internal class DefaultReportContentTask @Inject constructor(
|
internal class DefaultReportContentTask @Inject constructor(
|
||||||
private val roomAPI: RoomAPI,
|
private val roomAPI: RoomAPI,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : ReportContentTask {
|
) : ReportContentTask {
|
||||||
|
|
||||||
override suspend fun execute(params: ReportContentTask.Params) {
|
override suspend fun execute(params: ReportContentTask.Params) {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = roomAPI.reportContent(params.roomId, params.eventId, ReportContentBody(params.score, params.reason))
|
apiCall = roomAPI.reportContent(params.roomId, params.eventId, ReportContentBody(params.score, params.reason))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,6 @@ package org.matrix.android.sdk.internal.session.room.send
|
||||||
|
|
||||||
import com.zhuinden.monarchy.Monarchy
|
import com.zhuinden.monarchy.Monarchy
|
||||||
import io.realm.Realm
|
import io.realm.Realm
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.session.events.model.Event
|
import org.matrix.android.sdk.api.session.events.model.Event
|
||||||
import org.matrix.android.sdk.api.session.events.model.EventType
|
import org.matrix.android.sdk.api.session.events.model.EventType
|
||||||
import org.matrix.android.sdk.api.session.events.model.toModel
|
import org.matrix.android.sdk.api.session.events.model.toModel
|
||||||
|
@ -42,7 +41,7 @@ import org.matrix.android.sdk.internal.database.query.where
|
||||||
import org.matrix.android.sdk.internal.di.SessionDatabase
|
import org.matrix.android.sdk.internal.di.SessionDatabase
|
||||||
import org.matrix.android.sdk.internal.session.room.membership.RoomMemberHelper
|
import org.matrix.android.sdk.internal.session.room.membership.RoomMemberHelper
|
||||||
import org.matrix.android.sdk.internal.session.room.summary.RoomSummaryUpdater
|
import org.matrix.android.sdk.internal.session.room.summary.RoomSummaryUpdater
|
||||||
import org.matrix.android.sdk.internal.session.room.timeline.DefaultTimeline
|
import org.matrix.android.sdk.internal.session.room.timeline.TimelineInput
|
||||||
import org.matrix.android.sdk.internal.task.TaskExecutor
|
import org.matrix.android.sdk.internal.task.TaskExecutor
|
||||||
import org.matrix.android.sdk.internal.util.awaitTransaction
|
import org.matrix.android.sdk.internal.util.awaitTransaction
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
|
@ -52,7 +51,7 @@ internal class LocalEchoRepository @Inject constructor(@SessionDatabase private
|
||||||
private val taskExecutor: TaskExecutor,
|
private val taskExecutor: TaskExecutor,
|
||||||
private val realmSessionProvider: RealmSessionProvider,
|
private val realmSessionProvider: RealmSessionProvider,
|
||||||
private val roomSummaryUpdater: RoomSummaryUpdater,
|
private val roomSummaryUpdater: RoomSummaryUpdater,
|
||||||
private val eventBus: EventBus,
|
private val timelineInput: TimelineInput,
|
||||||
private val timelineEventMapper: TimelineEventMapper) {
|
private val timelineEventMapper: TimelineEventMapper) {
|
||||||
|
|
||||||
fun createLocalEcho(event: Event) {
|
fun createLocalEcho(event: Event) {
|
||||||
|
@ -76,7 +75,7 @@ internal class LocalEchoRepository @Inject constructor(@SessionDatabase private
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val timelineEvent = timelineEventMapper.map(timelineEventEntity)
|
val timelineEvent = timelineEventMapper.map(timelineEventEntity)
|
||||||
eventBus.post(DefaultTimeline.OnLocalEchoCreated(roomId = roomId, timelineEvent = timelineEvent))
|
timelineInput.onLocalEchoCreated(roomId = roomId, timelineEvent = timelineEvent)
|
||||||
taskExecutor.executorScope.asyncTransaction(monarchy) { realm ->
|
taskExecutor.executorScope.asyncTransaction(monarchy) { realm ->
|
||||||
val eventInsertEntity = EventInsertEntity(event.eventId, event.type).apply {
|
val eventInsertEntity = EventInsertEntity(event.eventId, event.type).apply {
|
||||||
this.insertType = EventInsertType.LOCAL_ECHO
|
this.insertType = EventInsertType.LOCAL_ECHO
|
||||||
|
@ -90,7 +89,7 @@ internal class LocalEchoRepository @Inject constructor(@SessionDatabase private
|
||||||
|
|
||||||
fun updateSendState(eventId: String, roomId: String?, sendState: SendState) {
|
fun updateSendState(eventId: String, roomId: String?, sendState: SendState) {
|
||||||
Timber.v("## SendEvent: [${System.currentTimeMillis()}] Update local state of $eventId to ${sendState.name}")
|
Timber.v("## SendEvent: [${System.currentTimeMillis()}] Update local state of $eventId to ${sendState.name}")
|
||||||
eventBus.post(DefaultTimeline.OnLocalEchoUpdated(roomId ?: "", eventId, sendState))
|
timelineInput.onLocalEchoUpdated(roomId = roomId ?: "", eventId = eventId, sendState = sendState)
|
||||||
updateEchoAsync(eventId) { realm, sendingEventEntity ->
|
updateEchoAsync(eventId) { realm, sendingEventEntity ->
|
||||||
if (sendState == SendState.SENT && sendingEventEntity.sendState == SendState.SYNCED) {
|
if (sendState == SendState.SENT && sendingEventEntity.sendState == SendState.SYNCED) {
|
||||||
// If already synced, do not put as sent
|
// If already synced, do not put as sent
|
||||||
|
|
|
@ -18,8 +18,8 @@ package org.matrix.android.sdk.internal.session.room.send
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import androidx.work.WorkerParameters
|
import androidx.work.WorkerParameters
|
||||||
import com.squareup.moshi.JsonClass
|
import com.squareup.moshi.JsonClass
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.failure.Failure
|
import org.matrix.android.sdk.api.failure.Failure
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.SessionComponent
|
import org.matrix.android.sdk.internal.session.SessionComponent
|
||||||
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
||||||
|
@ -46,7 +46,7 @@ internal class RedactEventWorker(context: Context, params: WorkerParameters)
|
||||||
) : SessionWorkerParams
|
) : SessionWorkerParams
|
||||||
|
|
||||||
@Inject lateinit var roomAPI: RoomAPI
|
@Inject lateinit var roomAPI: RoomAPI
|
||||||
@Inject lateinit var eventBus: EventBus
|
@Inject lateinit var globalErrorReceiver: GlobalErrorReceiver
|
||||||
|
|
||||||
override fun injectWith(injector: SessionComponent) {
|
override fun injectWith(injector: SessionComponent) {
|
||||||
injector.inject(this)
|
injector.inject(this)
|
||||||
|
@ -55,7 +55,7 @@ internal class RedactEventWorker(context: Context, params: WorkerParameters)
|
||||||
override suspend fun doSafeWork(params: Params): Result {
|
override suspend fun doSafeWork(params: Params): Result {
|
||||||
val eventId = params.eventId
|
val eventId = params.eventId
|
||||||
return runCatching {
|
return runCatching {
|
||||||
executeRequest<SendResponse>(eventBus) {
|
executeRequest<SendResponse>(globalErrorReceiver) {
|
||||||
apiCall = roomAPI.redactEvent(
|
apiCall = roomAPI.redactEvent(
|
||||||
params.txID,
|
params.txID,
|
||||||
params.roomId,
|
params.roomId,
|
||||||
|
|
|
@ -20,7 +20,6 @@ import android.content.Context
|
||||||
import androidx.work.WorkerParameters
|
import androidx.work.WorkerParameters
|
||||||
import com.squareup.moshi.JsonClass
|
import com.squareup.moshi.JsonClass
|
||||||
import io.realm.RealmConfiguration
|
import io.realm.RealmConfiguration
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.failure.shouldBeRetried
|
import org.matrix.android.sdk.api.failure.shouldBeRetried
|
||||||
import org.matrix.android.sdk.api.session.crypto.CryptoService
|
import org.matrix.android.sdk.api.session.crypto.CryptoService
|
||||||
import org.matrix.android.sdk.api.session.room.send.SendState
|
import org.matrix.android.sdk.api.session.room.send.SendState
|
||||||
|
@ -54,7 +53,6 @@ internal class SendEventWorker(context: Context,
|
||||||
@Inject lateinit var localEchoRepository: LocalEchoRepository
|
@Inject lateinit var localEchoRepository: LocalEchoRepository
|
||||||
@Inject lateinit var sendEventTask: SendEventTask
|
@Inject lateinit var sendEventTask: SendEventTask
|
||||||
@Inject lateinit var cryptoService: CryptoService
|
@Inject lateinit var cryptoService: CryptoService
|
||||||
@Inject lateinit var eventBus: EventBus
|
|
||||||
@Inject lateinit var cancelSendTracker: CancelSendTracker
|
@Inject lateinit var cancelSendTracker: CancelSendTracker
|
||||||
@SessionDatabase @Inject lateinit var realmConfiguration: RealmConfiguration
|
@SessionDatabase @Inject lateinit var realmConfiguration: RealmConfiguration
|
||||||
|
|
||||||
|
|
|
@ -17,10 +17,10 @@
|
||||||
package org.matrix.android.sdk.internal.session.room.state
|
package org.matrix.android.sdk.internal.session.room.state
|
||||||
|
|
||||||
import org.matrix.android.sdk.api.util.JsonDict
|
import org.matrix.android.sdk.api.util.JsonDict
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface SendStateTask : Task<SendStateTask.Params, Unit> {
|
internal interface SendStateTask : Task<SendStateTask.Params, Unit> {
|
||||||
|
@ -34,11 +34,11 @@ internal interface SendStateTask : Task<SendStateTask.Params, Unit> {
|
||||||
|
|
||||||
internal class DefaultSendStateTask @Inject constructor(
|
internal class DefaultSendStateTask @Inject constructor(
|
||||||
private val roomAPI: RoomAPI,
|
private val roomAPI: RoomAPI,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : SendStateTask {
|
) : SendStateTask {
|
||||||
|
|
||||||
override suspend fun execute(params: SendStateTask.Params) {
|
override suspend fun execute(params: SendStateTask.Params) {
|
||||||
return executeRequest(eventBus) {
|
return executeRequest(globalErrorReceiver) {
|
||||||
apiCall = if (params.stateKey == null) {
|
apiCall = if (params.stateKey == null) {
|
||||||
roomAPI.sendStateEvent(
|
roomAPI.sendStateEvent(
|
||||||
roomId = params.roomId,
|
roomId = params.roomId,
|
||||||
|
|
|
@ -17,10 +17,10 @@
|
||||||
package org.matrix.android.sdk.internal.session.room.tags
|
package org.matrix.android.sdk.internal.session.room.tags
|
||||||
|
|
||||||
import org.matrix.android.sdk.internal.di.UserId
|
import org.matrix.android.sdk.internal.di.UserId
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface AddTagToRoomTask : Task<AddTagToRoomTask.Params, Unit> {
|
internal interface AddTagToRoomTask : Task<AddTagToRoomTask.Params, Unit> {
|
||||||
|
@ -35,11 +35,11 @@ internal interface AddTagToRoomTask : Task<AddTagToRoomTask.Params, Unit> {
|
||||||
internal class DefaultAddTagToRoomTask @Inject constructor(
|
internal class DefaultAddTagToRoomTask @Inject constructor(
|
||||||
private val roomAPI: RoomAPI,
|
private val roomAPI: RoomAPI,
|
||||||
@UserId private val userId: String,
|
@UserId private val userId: String,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : AddTagToRoomTask {
|
) : AddTagToRoomTask {
|
||||||
|
|
||||||
override suspend fun execute(params: AddTagToRoomTask.Params) {
|
override suspend fun execute(params: AddTagToRoomTask.Params) {
|
||||||
executeRequest<Unit>(eventBus) {
|
executeRequest<Unit>(globalErrorReceiver) {
|
||||||
apiCall = roomAPI.putTag(
|
apiCall = roomAPI.putTag(
|
||||||
userId = userId,
|
userId = userId,
|
||||||
roomId = params.roomId,
|
roomId = params.roomId,
|
||||||
|
|
|
@ -17,10 +17,10 @@
|
||||||
package org.matrix.android.sdk.internal.session.room.tags
|
package org.matrix.android.sdk.internal.session.room.tags
|
||||||
|
|
||||||
import org.matrix.android.sdk.internal.di.UserId
|
import org.matrix.android.sdk.internal.di.UserId
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface DeleteTagFromRoomTask : Task<DeleteTagFromRoomTask.Params, Unit> {
|
internal interface DeleteTagFromRoomTask : Task<DeleteTagFromRoomTask.Params, Unit> {
|
||||||
|
@ -34,11 +34,11 @@ internal interface DeleteTagFromRoomTask : Task<DeleteTagFromRoomTask.Params, Un
|
||||||
internal class DefaultDeleteTagFromRoomTask @Inject constructor(
|
internal class DefaultDeleteTagFromRoomTask @Inject constructor(
|
||||||
private val roomAPI: RoomAPI,
|
private val roomAPI: RoomAPI,
|
||||||
@UserId private val userId: String,
|
@UserId private val userId: String,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : DeleteTagFromRoomTask {
|
) : DeleteTagFromRoomTask {
|
||||||
|
|
||||||
override suspend fun execute(params: DeleteTagFromRoomTask.Params) {
|
override suspend fun execute(params: DeleteTagFromRoomTask.Params) {
|
||||||
executeRequest<Unit>(eventBus) {
|
executeRequest<Unit>(globalErrorReceiver) {
|
||||||
apiCall = roomAPI.deleteTag(
|
apiCall = roomAPI.deleteTag(
|
||||||
userId = userId,
|
userId = userId,
|
||||||
roomId = params.roomId,
|
roomId = params.roomId,
|
||||||
|
|
|
@ -23,9 +23,6 @@ import io.realm.RealmConfiguration
|
||||||
import io.realm.RealmQuery
|
import io.realm.RealmQuery
|
||||||
import io.realm.RealmResults
|
import io.realm.RealmResults
|
||||||
import io.realm.Sort
|
import io.realm.Sort
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.greenrobot.eventbus.Subscribe
|
|
||||||
import org.greenrobot.eventbus.ThreadMode
|
|
||||||
import org.matrix.android.sdk.api.MatrixCallback
|
import org.matrix.android.sdk.api.MatrixCallback
|
||||||
import org.matrix.android.sdk.api.NoOpMatrixCallback
|
import org.matrix.android.sdk.api.NoOpMatrixCallback
|
||||||
import org.matrix.android.sdk.api.extensions.orFalse
|
import org.matrix.android.sdk.api.extensions.orFalse
|
||||||
|
@ -81,15 +78,13 @@ internal class DefaultTimeline(
|
||||||
private val timelineEventMapper: TimelineEventMapper,
|
private val timelineEventMapper: TimelineEventMapper,
|
||||||
private val settings: TimelineSettings,
|
private val settings: TimelineSettings,
|
||||||
private val hiddenReadReceipts: TimelineHiddenReadReceipts,
|
private val hiddenReadReceipts: TimelineHiddenReadReceipts,
|
||||||
private val eventBus: EventBus,
|
private val timelineInput: TimelineInput,
|
||||||
private val eventDecryptor: TimelineEventDecryptor,
|
private val eventDecryptor: TimelineEventDecryptor,
|
||||||
private val realmSessionProvider: RealmSessionProvider,
|
private val realmSessionProvider: RealmSessionProvider,
|
||||||
private val loadRoomMembersTask: LoadRoomMembersTask
|
private val loadRoomMembersTask: LoadRoomMembersTask
|
||||||
) : Timeline, TimelineHiddenReadReceipts.Delegate {
|
) : Timeline,
|
||||||
|
TimelineHiddenReadReceipts.Delegate,
|
||||||
data class OnNewTimelineEvents(val roomId: String, val eventIds: List<String>)
|
TimelineInput.Listener {
|
||||||
data class OnLocalEchoCreated(val roomId: String, val timelineEvent: TimelineEvent)
|
|
||||||
data class OnLocalEchoUpdated(val roomId: String, val eventId: String, val sendState: SendState)
|
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
val BACKGROUND_HANDLER = createBackgroundHandler("TIMELINE_DB_THREAD")
|
val BACKGROUND_HANDLER = createBackgroundHandler("TIMELINE_DB_THREAD")
|
||||||
|
@ -161,7 +156,7 @@ internal class DefaultTimeline(
|
||||||
override fun start() {
|
override fun start() {
|
||||||
if (isStarted.compareAndSet(false, true)) {
|
if (isStarted.compareAndSet(false, true)) {
|
||||||
Timber.v("Start timeline for roomId: $roomId and eventId: $initialEventId")
|
Timber.v("Start timeline for roomId: $roomId and eventId: $initialEventId")
|
||||||
eventBus.register(this)
|
timelineInput.listeners.add(this)
|
||||||
BACKGROUND_HANDLER.post {
|
BACKGROUND_HANDLER.post {
|
||||||
eventDecryptor.start()
|
eventDecryptor.start()
|
||||||
val realm = Realm.getInstance(realmConfiguration)
|
val realm = Realm.getInstance(realmConfiguration)
|
||||||
|
@ -206,7 +201,7 @@ internal class DefaultTimeline(
|
||||||
override fun dispose() {
|
override fun dispose() {
|
||||||
if (isStarted.compareAndSet(true, false)) {
|
if (isStarted.compareAndSet(true, false)) {
|
||||||
isReady.set(false)
|
isReady.set(false)
|
||||||
eventBus.unregister(this)
|
timelineInput.listeners.remove(this)
|
||||||
Timber.v("Dispose timeline for roomId: $roomId and eventId: $initialEventId")
|
Timber.v("Dispose timeline for roomId: $roomId and eventId: $initialEventId")
|
||||||
cancelableBag.cancel()
|
cancelableBag.cancel()
|
||||||
BACKGROUND_HANDLER.removeCallbacksAndMessages(null)
|
BACKGROUND_HANDLER.removeCallbacksAndMessages(null)
|
||||||
|
@ -323,25 +318,22 @@ internal class DefaultTimeline(
|
||||||
postSnapshot()
|
postSnapshot()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
override fun onNewTimelineEvents(roomId: String, eventIds: List<String>) {
|
||||||
fun onNewTimelineEvents(onNewTimelineEvents: OnNewTimelineEvents) {
|
if (isLive && this.roomId == roomId) {
|
||||||
if (isLive && onNewTimelineEvents.roomId == roomId) {
|
|
||||||
listeners.forEach {
|
listeners.forEach {
|
||||||
it.onNewTimelineEvents(onNewTimelineEvents.eventIds)
|
it.onNewTimelineEvents(eventIds)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
override fun onLocalEchoCreated(roomId: String, timelineEvent: TimelineEvent) {
|
||||||
fun onLocalEchoCreated(onLocalEchoCreated: OnLocalEchoCreated) {
|
if (uiEchoManager.onLocalEchoCreated(roomId, timelineEvent)) {
|
||||||
if (uiEchoManager.onLocalEchoCreated(onLocalEchoCreated)) {
|
|
||||||
postSnapshot()
|
postSnapshot()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
override fun onLocalEchoUpdated(roomId: String, eventId: String, sendState: SendState) {
|
||||||
fun onLocalEchoUpdated(onLocalEchoUpdated: OnLocalEchoUpdated) {
|
if (uiEchoManager.onLocalEchoUpdated(roomId, eventId, sendState)) {
|
||||||
if (uiEchoManager.onLocalEchoUpdated(onLocalEchoUpdated)) {
|
|
||||||
postSnapshot()
|
postSnapshot()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -858,11 +850,11 @@ internal class DefaultTimeline(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onLocalEchoUpdated(onLocalEchoUpdated: OnLocalEchoUpdated): Boolean {
|
fun onLocalEchoUpdated(roomId: String, eventId: String, sendState: SendState): Boolean {
|
||||||
if (isLive && onLocalEchoUpdated.roomId == roomId) {
|
if (isLive && roomId == this@DefaultTimeline.roomId) {
|
||||||
val existingState = inMemorySendingStates[onLocalEchoUpdated.eventId]
|
val existingState = inMemorySendingStates[eventId]
|
||||||
inMemorySendingStates[onLocalEchoUpdated.eventId] = onLocalEchoUpdated.sendState
|
inMemorySendingStates[eventId] = sendState
|
||||||
if (existingState != onLocalEchoUpdated.sendState) {
|
if (existingState != sendState) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -870,22 +862,22 @@ internal class DefaultTimeline(
|
||||||
}
|
}
|
||||||
|
|
||||||
// return true if should update
|
// return true if should update
|
||||||
fun onLocalEchoCreated(onLocalEchoCreated: OnLocalEchoCreated): Boolean {
|
fun onLocalEchoCreated(roomId: String, timelineEvent: TimelineEvent): Boolean {
|
||||||
var postSnapshot = false
|
var postSnapshot = false
|
||||||
if (isLive && onLocalEchoCreated.roomId == roomId) {
|
if (isLive && roomId == this@DefaultTimeline.roomId) {
|
||||||
// Manage some ui echos (do it before filter because actual event could be filtered out)
|
// Manage some ui echos (do it before filter because actual event could be filtered out)
|
||||||
when (onLocalEchoCreated.timelineEvent.root.getClearType()) {
|
when (timelineEvent.root.getClearType()) {
|
||||||
EventType.REDACTION -> {
|
EventType.REDACTION -> {
|
||||||
}
|
}
|
||||||
EventType.REACTION -> {
|
EventType.REACTION -> {
|
||||||
val content = onLocalEchoCreated.timelineEvent.root.content?.toModel<ReactionContent>()
|
val content = timelineEvent.root.content?.toModel<ReactionContent>()
|
||||||
if (RelationType.ANNOTATION == content?.relatesTo?.type) {
|
if (RelationType.ANNOTATION == content?.relatesTo?.type) {
|
||||||
val reaction = content.relatesTo.key
|
val reaction = content.relatesTo.key
|
||||||
val relatedEventID = content.relatesTo.eventId
|
val relatedEventID = content.relatesTo.eventId
|
||||||
inMemoryReactions.getOrPut(relatedEventID) { mutableListOf() }
|
inMemoryReactions.getOrPut(relatedEventID) { mutableListOf() }
|
||||||
.add(
|
.add(
|
||||||
ReactionUiEchoData(
|
ReactionUiEchoData(
|
||||||
localEchoId = onLocalEchoCreated.timelineEvent.eventId,
|
localEchoId = timelineEvent.eventId,
|
||||||
reactedOnEventId = relatedEventID,
|
reactedOnEventId = relatedEventID,
|
||||||
reaction = reaction
|
reaction = reaction
|
||||||
)
|
)
|
||||||
|
@ -898,12 +890,12 @@ internal class DefaultTimeline(
|
||||||
}
|
}
|
||||||
|
|
||||||
// do not add events that would have been filtered
|
// do not add events that would have been filtered
|
||||||
if (listOf(onLocalEchoCreated.timelineEvent).filterEventsWithSettings().isNotEmpty()) {
|
if (listOf(timelineEvent).filterEventsWithSettings().isNotEmpty()) {
|
||||||
listeners.forEach {
|
listeners.forEach {
|
||||||
it.onNewTimelineEvents(listOf(onLocalEchoCreated.timelineEvent.eventId))
|
it.onNewTimelineEvents(listOf(timelineEvent.eventId))
|
||||||
}
|
}
|
||||||
Timber.v("On local echo created: ${onLocalEchoCreated.timelineEvent.eventId}")
|
Timber.v("On local echo created: ${timelineEvent.eventId}")
|
||||||
inMemorySendingEvents.add(0, onLocalEchoCreated.timelineEvent)
|
inMemorySendingEvents.add(0, timelineEvent)
|
||||||
postSnapshot = true
|
postSnapshot = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,6 @@ import com.squareup.inject.assisted.AssistedInject
|
||||||
import com.zhuinden.monarchy.Monarchy
|
import com.zhuinden.monarchy.Monarchy
|
||||||
import io.realm.Sort
|
import io.realm.Sort
|
||||||
import io.realm.kotlin.where
|
import io.realm.kotlin.where
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import org.matrix.android.sdk.api.session.events.model.isImageMessage
|
import org.matrix.android.sdk.api.session.events.model.isImageMessage
|
||||||
import org.matrix.android.sdk.api.session.events.model.isVideoMessage
|
import org.matrix.android.sdk.api.session.events.model.isVideoMessage
|
||||||
import org.matrix.android.sdk.api.session.room.timeline.Timeline
|
import org.matrix.android.sdk.api.session.room.timeline.Timeline
|
||||||
|
@ -45,7 +44,7 @@ import org.matrix.android.sdk.internal.task.TaskExecutor
|
||||||
internal class DefaultTimelineService @AssistedInject constructor(@Assisted private val roomId: String,
|
internal class DefaultTimelineService @AssistedInject constructor(@Assisted private val roomId: String,
|
||||||
@SessionDatabase private val monarchy: Monarchy,
|
@SessionDatabase private val monarchy: Monarchy,
|
||||||
private val realmSessionProvider: RealmSessionProvider,
|
private val realmSessionProvider: RealmSessionProvider,
|
||||||
private val eventBus: EventBus,
|
private val timelineInput: TimelineInput,
|
||||||
private val taskExecutor: TaskExecutor,
|
private val taskExecutor: TaskExecutor,
|
||||||
private val contextOfEventTask: GetContextOfEventTask,
|
private val contextOfEventTask: GetContextOfEventTask,
|
||||||
private val eventDecryptor: TimelineEventDecryptor,
|
private val eventDecryptor: TimelineEventDecryptor,
|
||||||
|
@ -72,7 +71,7 @@ internal class DefaultTimelineService @AssistedInject constructor(@Assisted priv
|
||||||
timelineEventMapper = timelineEventMapper,
|
timelineEventMapper = timelineEventMapper,
|
||||||
settings = settings,
|
settings = settings,
|
||||||
hiddenReadReceipts = TimelineHiddenReadReceipts(readReceiptsSummaryMapper, roomId, settings),
|
hiddenReadReceipts = TimelineHiddenReadReceipts(readReceiptsSummaryMapper, roomId, settings),
|
||||||
eventBus = eventBus,
|
timelineInput = timelineInput,
|
||||||
eventDecryptor = eventDecryptor,
|
eventDecryptor = eventDecryptor,
|
||||||
fetchTokenAndPaginateTask = fetchTokenAndPaginateTask,
|
fetchTokenAndPaginateTask = fetchTokenAndPaginateTask,
|
||||||
realmSessionProvider = realmSessionProvider,
|
realmSessionProvider = realmSessionProvider,
|
||||||
|
|
|
@ -20,12 +20,12 @@ import com.zhuinden.monarchy.Monarchy
|
||||||
import org.matrix.android.sdk.internal.database.model.ChunkEntity
|
import org.matrix.android.sdk.internal.database.model.ChunkEntity
|
||||||
import org.matrix.android.sdk.internal.database.query.findIncludingEvent
|
import org.matrix.android.sdk.internal.database.query.findIncludingEvent
|
||||||
import org.matrix.android.sdk.internal.di.SessionDatabase
|
import org.matrix.android.sdk.internal.di.SessionDatabase
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.filter.FilterRepository
|
import org.matrix.android.sdk.internal.session.filter.FilterRepository
|
||||||
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.matrix.android.sdk.internal.util.awaitTransaction
|
import org.matrix.android.sdk.internal.util.awaitTransaction
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface FetchTokenAndPaginateTask : Task<FetchTokenAndPaginateTask.Params, TokenChunkEventPersistor.Result> {
|
internal interface FetchTokenAndPaginateTask : Task<FetchTokenAndPaginateTask.Params, TokenChunkEventPersistor.Result> {
|
||||||
|
@ -43,12 +43,12 @@ internal class DefaultFetchTokenAndPaginateTask @Inject constructor(
|
||||||
@SessionDatabase private val monarchy: Monarchy,
|
@SessionDatabase private val monarchy: Monarchy,
|
||||||
private val filterRepository: FilterRepository,
|
private val filterRepository: FilterRepository,
|
||||||
private val paginationTask: PaginationTask,
|
private val paginationTask: PaginationTask,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : FetchTokenAndPaginateTask {
|
) : FetchTokenAndPaginateTask {
|
||||||
|
|
||||||
override suspend fun execute(params: FetchTokenAndPaginateTask.Params): TokenChunkEventPersistor.Result {
|
override suspend fun execute(params: FetchTokenAndPaginateTask.Params): TokenChunkEventPersistor.Result {
|
||||||
val filter = filterRepository.getRoomFilter()
|
val filter = filterRepository.getRoomFilter()
|
||||||
val response = executeRequest<EventContextResponse>(eventBus) {
|
val response = executeRequest<EventContextResponse>(globalErrorReceiver) {
|
||||||
apiCall = roomAPI.getContextOfEvent(params.roomId, params.lastKnownEventId, 0, filter)
|
apiCall = roomAPI.getContextOfEvent(params.roomId, params.lastKnownEventId, 0, filter)
|
||||||
}
|
}
|
||||||
val fromToken = if (params.direction == PaginationDirection.FORWARDS) {
|
val fromToken = if (params.direction == PaginationDirection.FORWARDS) {
|
||||||
|
|
|
@ -16,11 +16,11 @@
|
||||||
|
|
||||||
package org.matrix.android.sdk.internal.session.room.timeline
|
package org.matrix.android.sdk.internal.session.room.timeline
|
||||||
|
|
||||||
|
import org.matrix.android.sdk.internal.network.GlobalErrorReceiver
|
||||||
import org.matrix.android.sdk.internal.network.executeRequest
|
import org.matrix.android.sdk.internal.network.executeRequest
|
||||||
import org.matrix.android.sdk.internal.session.filter.FilterRepository
|
import org.matrix.android.sdk.internal.session.filter.FilterRepository
|
||||||
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
import org.matrix.android.sdk.internal.session.room.RoomAPI
|
||||||
import org.matrix.android.sdk.internal.task.Task
|
import org.matrix.android.sdk.internal.task.Task
|
||||||
import org.greenrobot.eventbus.EventBus
|
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal interface GetContextOfEventTask : Task<GetContextOfEventTask.Params, TokenChunkEventPersistor.Result> {
|
internal interface GetContextOfEventTask : Task<GetContextOfEventTask.Params, TokenChunkEventPersistor.Result> {
|
||||||
|
@ -35,12 +35,12 @@ internal class DefaultGetContextOfEventTask @Inject constructor(
|
||||||
private val roomAPI: RoomAPI,
|
private val roomAPI: RoomAPI,
|
||||||
private val filterRepository: FilterRepository,
|
private val filterRepository: FilterRepository,
|
||||||
private val tokenChunkEventPersistor: TokenChunkEventPersistor,
|
private val tokenChunkEventPersistor: TokenChunkEventPersistor,
|
||||||
private val eventBus: EventBus
|
private val globalErrorReceiver: GlobalErrorReceiver
|
||||||
) : GetContextOfEventTask {
|
) : GetContextOfEventTask {
|
||||||
|
|
||||||
override suspend fun execute(params: GetContextOfEventTask.Params): TokenChunkEventPersistor.Result {
|
override suspend fun execute(params: GetContextOfEventTask.Params): TokenChunkEventPersistor.Result {
|
||||||
val filter = filterRepository.getRoomFilter()
|
val filter = filterRepository.getRoomFilter()
|
||||||
val response = executeRequest<EventContextResponse>(eventBus) {
|
val response = executeRequest<EventContextResponse>(globalErrorReceiver) {
|
||||||
// We are limiting the response to the event with eventId to be sure we don't have any issue with potential merging process.
|
// We are limiting the response to the event with eventId to be sure we don't have any issue with potential merging process.
|
||||||
apiCall = roomAPI.getContextOfEvent(params.roomId, params.eventId, 0, filter)
|
apiCall = roomAPI.getContextOfEvent(params.roomId, params.eventId, 0, filter)
|
||||||
}
|
}
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue