From 17dcbc1cd64d6a4dcd9c7c233c158e49d4062ad6 Mon Sep 17 00:00:00 2001 From: ganfra Date: Tue, 11 Dec 2018 18:13:22 +0100 Subject: [PATCH] Remove RequestExecutor as name is confusing at the moment. --- .../internal/network/RequestExecutor.kt | 34 ------------------- .../session/group/GetGroupDataRequest.kt | 9 +++-- .../internal/session/group/GroupModule.kt | 2 +- 3 files changed, 5 insertions(+), 40 deletions(-) delete mode 100644 matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/network/RequestExecutor.kt diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/network/RequestExecutor.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/network/RequestExecutor.kt deleted file mode 100644 index b5da240de7..0000000000 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/network/RequestExecutor.kt +++ /dev/null @@ -1,34 +0,0 @@ -package im.vector.matrix.android.internal.network - -import arrow.core.Try -import im.vector.matrix.android.api.failure.Failure -import im.vector.matrix.android.internal.util.MatrixCoroutineDispatchers -import im.vector.matrix.android.internal.util.retry -import kotlinx.coroutines.withContext - -internal class RequestExecutor(private val networkConnectivityChecker: NetworkConnectivityChecker, - private val coroutineDispatchers: MatrixCoroutineDispatchers) { - - - suspend fun execute(retryTimes: Int = Int.MAX_VALUE, - initialDelay: Long = 100, - maxDelay: Long = 10_000, - factor: Double = 2.0, - block: suspend () -> Try): Try = withContext(coroutineDispatchers.io) { - - retry(retryTimes, initialDelay, maxDelay, factor) { - executeIfConnected { block() } - } - - } - - private suspend fun executeIfConnected(block: suspend () -> Try): Try { - return if (networkConnectivityChecker.isConnected()) { - block() - } else { - Try.raise(Failure.NetworkConnection()) - } - } - - -} \ No newline at end of file diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/group/GetGroupDataRequest.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/group/GetGroupDataRequest.kt index 4fd05c94d0..3ccea82971 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/group/GetGroupDataRequest.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/group/GetGroupDataRequest.kt @@ -9,13 +9,13 @@ import im.vector.matrix.android.api.MatrixCallback import im.vector.matrix.android.api.util.Cancelable import im.vector.matrix.android.internal.database.model.GroupSummaryEntity import im.vector.matrix.android.internal.database.query.where -import im.vector.matrix.android.internal.network.RequestExecutor import im.vector.matrix.android.internal.network.executeRequest import im.vector.matrix.android.internal.session.group.model.GroupRooms import im.vector.matrix.android.internal.session.group.model.GroupSummaryResponse import im.vector.matrix.android.internal.session.group.model.GroupUsers import im.vector.matrix.android.internal.util.CancelableCoroutine import im.vector.matrix.android.internal.util.MatrixCoroutineDispatchers +import im.vector.matrix.android.internal.util.retry import im.vector.matrix.android.internal.util.tryTransactionSync import io.realm.kotlin.createObject import kotlinx.coroutines.GlobalScope @@ -24,15 +24,14 @@ import kotlinx.coroutines.launch internal class GetGroupDataRequest( private val groupAPI: GroupAPI, private val monarchy: Monarchy, - private val coroutineDispatchers: MatrixCoroutineDispatchers, - private val requestExecutor: RequestExecutor + private val coroutineDispatchers: MatrixCoroutineDispatchers ) { fun execute(groupId: String, callback: MatrixCallback ): Cancelable { val job = GlobalScope.launch(coroutineDispatchers.main) { - val groupOrFailure = requestExecutor.execute { getGroupData(groupId) } + val groupOrFailure = retry { getGroupData(groupId) } groupOrFailure.fold({ callback.onFailure(it) }, { callback.onSuccess(true) }) } return CancelableCoroutine(job) @@ -64,7 +63,7 @@ internal class GetGroupDataRequest( return monarchy .tryTransactionSync { realm -> val groupSummaryEntity = GroupSummaryEntity.where(realm, groupId).findFirst() - ?: realm.createObject(groupId) + ?: realm.createObject(groupId) groupSummaryEntity.avatarUrl = groupSummary.profile?.avatarUrl ?: "" val name = groupSummary.profile?.name diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/group/GroupModule.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/group/GroupModule.kt index eaca16b78a..1f8bf99ce3 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/group/GroupModule.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/session/group/GroupModule.kt @@ -16,7 +16,7 @@ class GroupModule : Module { } scope(DefaultSession.SCOPE) { - GetGroupDataRequest(get(), get(), get(), get()) + GetGroupDataRequest(get(), get(), get()) } }.invoke()