Add Result + Dispatcher on SDK call.
This commit is contained in:
parent
eaff43de3a
commit
961d0ecdbc
4 changed files with 30 additions and 20 deletions
|
|
@ -17,5 +17,5 @@
|
||||||
package io.element.android.libraries.matrix.api.pusher
|
package io.element.android.libraries.matrix.api.pusher
|
||||||
|
|
||||||
interface PushersService {
|
interface PushersService {
|
||||||
fun setHttpPusher(setHttpPusherData: SetHttpPusherData)
|
suspend fun setHttpPusher(setHttpPusherData: SetHttpPusherData): Result<Unit>
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,10 @@ class RustMatrixClient constructor(
|
||||||
override val sessionId: UserId = UserId(client.userId())
|
override val sessionId: UserId = UserId(client.userId())
|
||||||
|
|
||||||
private val verificationService = RustSessionVerificationService()
|
private val verificationService = RustSessionVerificationService()
|
||||||
private val pushersService = RustPushersService(client)
|
private val pushersService = RustPushersService(
|
||||||
|
client = client,
|
||||||
|
dispatchers = dispatchers,
|
||||||
|
)
|
||||||
private val notificationService = RustNotificationService(baseDirectory)
|
private val notificationService = RustNotificationService(baseDirectory)
|
||||||
private var slidingSyncUpdateJob: Job? = null
|
private var slidingSyncUpdateJob: Job? = null
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,8 +16,10 @@
|
||||||
|
|
||||||
package io.element.android.libraries.matrix.impl.pushers
|
package io.element.android.libraries.matrix.impl.pushers
|
||||||
|
|
||||||
|
import io.element.android.libraries.core.coroutine.CoroutineDispatchers
|
||||||
import io.element.android.libraries.matrix.api.pusher.PushersService
|
import io.element.android.libraries.matrix.api.pusher.PushersService
|
||||||
import io.element.android.libraries.matrix.api.pusher.SetHttpPusherData
|
import io.element.android.libraries.matrix.api.pusher.SetHttpPusherData
|
||||||
|
import kotlinx.coroutines.withContext
|
||||||
import org.matrix.rustcomponents.sdk.Client
|
import org.matrix.rustcomponents.sdk.Client
|
||||||
import org.matrix.rustcomponents.sdk.HttpPusherData
|
import org.matrix.rustcomponents.sdk.HttpPusherData
|
||||||
import org.matrix.rustcomponents.sdk.PushFormat
|
import org.matrix.rustcomponents.sdk.PushFormat
|
||||||
|
|
@ -26,24 +28,29 @@ import org.matrix.rustcomponents.sdk.PusherKind
|
||||||
|
|
||||||
class RustPushersService(
|
class RustPushersService(
|
||||||
private val client: Client,
|
private val client: Client,
|
||||||
|
private val dispatchers: CoroutineDispatchers
|
||||||
) : PushersService {
|
) : PushersService {
|
||||||
override fun setHttpPusher(setHttpPusherData: SetHttpPusherData) {
|
override suspend fun setHttpPusher(setHttpPusherData: SetHttpPusherData): Result<Unit> {
|
||||||
client.setPusher(
|
return withContext(dispatchers.io) {
|
||||||
identifiers = PusherIdentifiers(
|
runCatching {
|
||||||
pushkey = setHttpPusherData.pushKey,
|
client.setPusher(
|
||||||
appId = setHttpPusherData.appId
|
identifiers = PusherIdentifiers(
|
||||||
),
|
pushkey = setHttpPusherData.pushKey,
|
||||||
kind = PusherKind.Http(
|
appId = setHttpPusherData.appId
|
||||||
data = HttpPusherData(
|
),
|
||||||
url = setHttpPusherData.url,
|
kind = PusherKind.Http(
|
||||||
format = PushFormat.EVENT_ID_ONLY,
|
data = HttpPusherData(
|
||||||
defaultPayload = setHttpPusherData.defaultPayload
|
url = setHttpPusherData.url,
|
||||||
|
format = PushFormat.EVENT_ID_ONLY,
|
||||||
|
defaultPayload = setHttpPusherData.defaultPayload
|
||||||
|
)
|
||||||
|
),
|
||||||
|
appDisplayName = setHttpPusherData.appDisplayName,
|
||||||
|
deviceDisplayName = setHttpPusherData.deviceDisplayName,
|
||||||
|
profileTag = setHttpPusherData.profileTag,
|
||||||
|
lang = setHttpPusherData.lang
|
||||||
)
|
)
|
||||||
),
|
}
|
||||||
appDisplayName = setHttpPusherData.appDisplayName,
|
}
|
||||||
deviceDisplayName = setHttpPusherData.deviceDisplayName,
|
|
||||||
profileTag = setHttpPusherData.profileTag,
|
|
||||||
lang = setHttpPusherData.lang
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -20,5 +20,5 @@ import io.element.android.libraries.matrix.api.pusher.PushersService
|
||||||
import io.element.android.libraries.matrix.api.pusher.SetHttpPusherData
|
import io.element.android.libraries.matrix.api.pusher.SetHttpPusherData
|
||||||
|
|
||||||
class FakePushersService : PushersService {
|
class FakePushersService : PushersService {
|
||||||
override fun setHttpPusher(setHttpPusherData: SetHttpPusherData) = Unit
|
override suspend fun setHttpPusher(setHttpPusherData: SetHttpPusherData) = Result.success(Unit)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue