Merge pull request #2459 from Dominaezzz/suspend_functions_3
Convert UploadsService to suspend functions
This commit is contained in:
commit
40ea91cce4
@ -16,9 +16,6 @@
|
|||||||
|
|
||||||
package org.matrix.android.sdk.api.session.room.uploads
|
package org.matrix.android.sdk.api.session.room.uploads
|
||||||
|
|
||||||
import org.matrix.android.sdk.api.MatrixCallback
|
|
||||||
import org.matrix.android.sdk.api.util.Cancelable
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This interface defines methods to get event with uploads (= attachments) sent to a room. It's implemented at the room level.
|
* This interface defines methods to get event with uploads (= attachments) sent to a room. It's implemented at the room level.
|
||||||
*/
|
*/
|
||||||
@ -29,7 +26,5 @@ interface UploadsService {
|
|||||||
* @param numberOfEvents the expected number of events to retrieve. The result can contain less events.
|
* @param numberOfEvents the expected number of events to retrieve. The result can contain less events.
|
||||||
* @param since token to get next page, or null to get the first page
|
* @param since token to get next page, or null to get the first page
|
||||||
*/
|
*/
|
||||||
fun getUploads(numberOfEvents: Int,
|
suspend fun getUploads(numberOfEvents: Int, since: String?): GetUploadsResult
|
||||||
since: String?,
|
|
||||||
callback: MatrixCallback<GetUploadsResult>): Cancelable
|
|
||||||
}
|
}
|
||||||
|
@ -18,17 +18,12 @@ package org.matrix.android.sdk.internal.session.room.uploads
|
|||||||
|
|
||||||
import com.squareup.inject.assisted.Assisted
|
import com.squareup.inject.assisted.Assisted
|
||||||
import com.squareup.inject.assisted.AssistedInject
|
import com.squareup.inject.assisted.AssistedInject
|
||||||
import org.matrix.android.sdk.api.MatrixCallback
|
|
||||||
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.uploads.GetUploadsResult
|
import org.matrix.android.sdk.api.session.room.uploads.GetUploadsResult
|
||||||
import org.matrix.android.sdk.api.session.room.uploads.UploadsService
|
import org.matrix.android.sdk.api.session.room.uploads.UploadsService
|
||||||
import org.matrix.android.sdk.api.util.Cancelable
|
|
||||||
import org.matrix.android.sdk.internal.task.TaskExecutor
|
|
||||||
import org.matrix.android.sdk.internal.task.configureWith
|
|
||||||
|
|
||||||
internal class DefaultUploadsService @AssistedInject constructor(
|
internal class DefaultUploadsService @AssistedInject constructor(
|
||||||
@Assisted private val roomId: String,
|
@Assisted private val roomId: String,
|
||||||
private val taskExecutor: TaskExecutor,
|
|
||||||
private val getUploadsTask: GetUploadsTask,
|
private val getUploadsTask: GetUploadsTask,
|
||||||
private val cryptoService: CryptoService
|
private val cryptoService: CryptoService
|
||||||
) : UploadsService {
|
) : UploadsService {
|
||||||
@ -38,11 +33,7 @@ internal class DefaultUploadsService @AssistedInject constructor(
|
|||||||
fun create(roomId: String): UploadsService
|
fun create(roomId: String): UploadsService
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun getUploads(numberOfEvents: Int, since: String?, callback: MatrixCallback<GetUploadsResult>): Cancelable {
|
override suspend fun getUploads(numberOfEvents: Int, since: String?): GetUploadsResult {
|
||||||
return getUploadsTask
|
return getUploadsTask.execute(GetUploadsTask.Params(roomId, cryptoService.isRoomEncrypted(roomId), numberOfEvents, since))
|
||||||
.configureWith(GetUploadsTask.Params(roomId, cryptoService.isRoomEncrypted(roomId), numberOfEvents, since)) {
|
|
||||||
this.callback = callback
|
|
||||||
}
|
|
||||||
.executeBy(taskExecutor)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,7 +33,6 @@ import org.matrix.android.sdk.api.session.Session
|
|||||||
import org.matrix.android.sdk.api.session.file.FileService
|
import org.matrix.android.sdk.api.session.file.FileService
|
||||||
import org.matrix.android.sdk.api.session.room.model.message.MessageType
|
import org.matrix.android.sdk.api.session.room.model.message.MessageType
|
||||||
import org.matrix.android.sdk.api.session.room.model.message.getFileUrl
|
import org.matrix.android.sdk.api.session.room.model.message.getFileUrl
|
||||||
import org.matrix.android.sdk.api.session.room.uploads.GetUploadsResult
|
|
||||||
import org.matrix.android.sdk.internal.crypto.attachments.toElementToDecrypt
|
import org.matrix.android.sdk.internal.crypto.attachments.toElementToDecrypt
|
||||||
import org.matrix.android.sdk.internal.util.awaitCallback
|
import org.matrix.android.sdk.internal.util.awaitCallback
|
||||||
import org.matrix.android.sdk.rx.rx
|
import org.matrix.android.sdk.rx.rx
|
||||||
@ -90,9 +89,7 @@ class RoomUploadsViewModel @AssistedInject constructor(
|
|||||||
|
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
try {
|
try {
|
||||||
val result = awaitCallback<GetUploadsResult> {
|
val result = room.getUploads(20, token)
|
||||||
room.getUploads(20, token, it)
|
|
||||||
}
|
|
||||||
|
|
||||||
token = result.nextToken
|
token = result.nextToken
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user