Add sendLocation API to Rust Room (#681)
Will be used by the location sharing feature.
This commit is contained in:
parent
8bd291ecd7
commit
8101f42979
3 changed files with 34 additions and 0 deletions
|
|
@ -114,4 +114,13 @@ interface MatrixRoom : Closeable {
|
||||||
suspend fun setTopic(topic: String): Result<Unit>
|
suspend fun setTopic(topic: String): Result<Unit>
|
||||||
|
|
||||||
suspend fun reportContent(eventId: EventId, reason: String, blockUserId: UserId?): Result<Unit>
|
suspend fun reportContent(eventId: EventId, reason: String, blockUserId: UserId?): Result<Unit>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Share a location message in the room.
|
||||||
|
*
|
||||||
|
* @param body A human readable textual representation of the location.
|
||||||
|
* @param geoUri A geo URI (RFC 5870) representing the location e.g. `geo:51.5008,0.1247;u=35`.
|
||||||
|
* Respectively: latitude, longitude, and (optional) uncertainty.
|
||||||
|
*/
|
||||||
|
suspend fun sendLocation(body: String, geoUri: String): Result<Unit>
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -338,4 +338,13 @@ class RustMatrixRoom(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override suspend fun sendLocation(
|
||||||
|
body: String,
|
||||||
|
geoUri: String
|
||||||
|
): Result<Unit> = withContext(coroutineDispatchers.io) {
|
||||||
|
runCatching {
|
||||||
|
innerRoom.sendLocation(body, geoUri, genTransactionId())
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -77,6 +77,7 @@ class FakeMatrixRoom(
|
||||||
private var cancelSendResult = Result.success(Unit)
|
private var cancelSendResult = Result.success(Unit)
|
||||||
private var forwardEventResult = Result.success(Unit)
|
private var forwardEventResult = Result.success(Unit)
|
||||||
private var reportContentResult = Result.success(Unit)
|
private var reportContentResult = Result.success(Unit)
|
||||||
|
private var sendLocationResult = Result.success(Unit)
|
||||||
|
|
||||||
var sendMediaCount = 0
|
var sendMediaCount = 0
|
||||||
private set
|
private set
|
||||||
|
|
@ -93,6 +94,9 @@ class FakeMatrixRoom(
|
||||||
var reportedContentCount: Int = 0
|
var reportedContentCount: Int = 0
|
||||||
private set
|
private set
|
||||||
|
|
||||||
|
var sendLocationCount: Int = 0
|
||||||
|
private set
|
||||||
|
|
||||||
var isInviteAccepted: Boolean = false
|
var isInviteAccepted: Boolean = false
|
||||||
private set
|
private set
|
||||||
|
|
||||||
|
|
@ -262,6 +266,14 @@ class FakeMatrixRoom(
|
||||||
return reportContentResult
|
return reportContentResult
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override suspend fun sendLocation(
|
||||||
|
body: String,
|
||||||
|
geoUri: String
|
||||||
|
): Result<Unit> = simulateLongTask {
|
||||||
|
sendLocationCount++
|
||||||
|
return sendLocationResult
|
||||||
|
}
|
||||||
|
|
||||||
override fun close() = Unit
|
override fun close() = Unit
|
||||||
|
|
||||||
fun givenLeaveRoomError(throwable: Throwable?) {
|
fun givenLeaveRoomError(throwable: Throwable?) {
|
||||||
|
|
@ -355,4 +367,8 @@ class FakeMatrixRoom(
|
||||||
fun givenReportContentResult(result: Result<Unit>) {
|
fun givenReportContentResult(result: Result<Unit>) {
|
||||||
reportContentResult = result
|
reportContentResult = result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun givenSendLocationResult(result: Result<Unit>) {
|
||||||
|
sendLocationResult = result
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue