Browse Source

Update the Rust SDK to v0.1.9 (#318)

* Update the Rust SDK to v0.1.7.

* Try to have the same setup for the build apk job and maestro.

* Add option to run maestro manually.

* Update to v0.1.9 (0.1.7 and 0.1.8 were broken in x86_64).
test/jme/compound-poc
Jorge Martin Espinosa 1 year ago committed by GitHub
parent
commit
97917e7a2d
  1. 7
      .github/workflows/maestro.yml
  2. 2
      gradle/libs.versions.toml
  3. 3
      libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/timeline/item/event/EventContent.kt
  4. 3
      libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClient.kt
  5. 2
      libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RustRoomSummaryDataSource.kt
  6. 7
      libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventMessageMapper.kt
  7. 12
      libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventTimelineItemMapper.kt

7
.github/workflows/maestro.yml

@ -3,6 +3,7 @@ name: Maestro @@ -3,6 +3,7 @@ name: Maestro
# Run this flow only on pull request, and only when the pull request has been approved, to limit our usage of maestro cloud.
# https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#running-a-workflow-when-a-pull-request-is-approved
on:
workflow_dispatch:
pull_request_review:
types: [submitted]
@ -35,6 +36,12 @@ jobs: @@ -35,6 +36,12 @@ jobs:
java-version: '17'
- name: Assemble debug APK
run: ./gradlew assembleDebug $CI_GRADLE_ARG_PROPERTIES
- name: Upload debug APKs
uses: actions/upload-artifact@v3
with:
name: elementx-debug
path: |
app/build/outputs/apk/debug/*.apk
- uses: mobile-dev-inc/action-maestro-cloud@v1.3.1
with:
api-key: ${{ secrets.MAESTRO_CLOUD_API_KEY }}

2
gradle/libs.versions.toml

@ -129,7 +129,7 @@ jsoup = { module = "org.jsoup:jsoup", version.ref = "jsoup" } @@ -129,7 +129,7 @@ jsoup = { module = "org.jsoup:jsoup", version.ref = "jsoup" }
appyx_core = { module = "com.bumble.appyx:core", version.ref = "appyx" }
molecule-runtime = { module = "app.cash.molecule:molecule-runtime", version.ref = "molecule" }
timber = "com.jakewharton.timber:timber:5.0.1"
matrix_sdk = "org.matrix.rustcomponents:sdk-android:0.1.5"
matrix_sdk = "org.matrix.rustcomponents:sdk-android:0.1.9"
sqldelight-driver-android = { module = "com.squareup.sqldelight:android-driver", version.ref = "sqldelight" }
sqldelight-driver-jvm = { module = "com.squareup.sqldelight:sqlite-driver", version.ref = "sqldelight" }
sqldelight-coroutines = { module = "com.squareup.sqldelight:coroutines-extensions", version.ref = "sqldelight" }

3
libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/timeline/item/event/EventContent.kt

@ -16,6 +16,7 @@ @@ -16,6 +16,7 @@
package io.element.android.libraries.matrix.api.timeline.item.event
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.UserId
import io.element.android.libraries.matrix.api.media.AudioInfo
import io.element.android.libraries.matrix.api.media.FileInfo
@ -26,7 +27,7 @@ sealed interface EventContent @@ -26,7 +27,7 @@ sealed interface EventContent
data class MessageContent(
val body: String,
val inReplyTo: UserId?,
val inReplyTo: EventId?,
val isEdited: Boolean,
val type: MessageType?
) : EventContent

3
libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/RustMatrixClient.kt

@ -114,7 +114,6 @@ class RustMatrixClient constructor( @@ -114,7 +114,6 @@ class RustMatrixClient constructor(
)
.filters(slidingSyncFilters)
.name(name = "CurrentlyVisibleRooms")
.sendUpdatesForItems(true)
.syncMode(mode = SlidingSyncMode.SELECTIVE)
.addRange(0u, 20u)
.use {
@ -125,7 +124,7 @@ class RustMatrixClient constructor( @@ -125,7 +124,7 @@ class RustMatrixClient constructor(
.slidingSync()
.homeserver("https://slidingsync.lab.matrix.org")
.withCommonExtensions()
.coldCache("ElementX")
.storageKey("ElementX")
.addList(visibleRoomsSlidingSyncList)
.use {
it.build()

2
libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/RustRoomSummaryDataSource.kt

@ -59,7 +59,7 @@ internal class RustRoomSummaryDataSource( @@ -59,7 +59,7 @@ internal class RustRoomSummaryDataSource(
coroutineScope.launch {
updateRoomSummaries {
addAll(
slidingSyncList.currentRoomsList().map(::buildSummaryForRoomListEntry)
slidingSyncList.currentRoomList().map(::buildSummaryForRoomListEntry)
)
}
}

7
libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventMessageMapper.kt

@ -16,16 +16,17 @@ @@ -16,16 +16,17 @@
package io.element.android.libraries.matrix.impl.timeline.item.event
import io.element.android.libraries.matrix.api.core.UserId
import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.core.asEventId
import io.element.android.libraries.matrix.api.timeline.item.event.AudioMessageType
import io.element.android.libraries.matrix.api.timeline.item.event.EmoteMessageType
import io.element.android.libraries.matrix.api.timeline.item.event.FileMessageType
import io.element.android.libraries.matrix.api.timeline.item.event.FormattedBody
import io.element.android.libraries.matrix.api.timeline.item.event.ImageMessageType
import io.element.android.libraries.matrix.api.timeline.item.event.MessageContent
import io.element.android.libraries.matrix.api.timeline.item.event.MessageFormat
import io.element.android.libraries.matrix.api.timeline.item.event.NoticeMessageType
import io.element.android.libraries.matrix.api.timeline.item.event.TextMessageType
import io.element.android.libraries.matrix.api.timeline.item.event.MessageContent
import io.element.android.libraries.matrix.api.timeline.item.event.UnknownMessageType
import io.element.android.libraries.matrix.api.timeline.item.event.VideoMessageType
import io.element.android.libraries.matrix.impl.media.map
@ -69,7 +70,7 @@ class EventMessageMapper { @@ -69,7 +70,7 @@ class EventMessageMapper {
}
MessageContent(
body = message.body(),
inReplyTo = message.inReplyTo()?.let { UserId(it) },
inReplyTo = message.inReplyTo()?.eventId?.asEventId(),
isEdited = message.isEdited(),
type = type
)

12
libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/timeline/item/event/EventTimelineItemMapper.kt

@ -25,7 +25,7 @@ import io.element.android.libraries.matrix.api.timeline.item.event.ProfileTimeli @@ -25,7 +25,7 @@ import io.element.android.libraries.matrix.api.timeline.item.event.ProfileTimeli
import org.matrix.rustcomponents.sdk.Reaction
import org.matrix.rustcomponents.sdk.EventSendState as RustEventSendState
import org.matrix.rustcomponents.sdk.EventTimelineItem as RustEventTimelineItem
import org.matrix.rustcomponents.sdk.ProfileTimelineDetails as RustProfileTimelineDetails
import org.matrix.rustcomponents.sdk.ProfileDetails as RustProfileDetails
class EventTimelineItemMapper(private val contentMapper: TimelineEventContentMapper = TimelineEventContentMapper()) {
@ -47,12 +47,12 @@ class EventTimelineItemMapper(private val contentMapper: TimelineEventContentMap @@ -47,12 +47,12 @@ class EventTimelineItemMapper(private val contentMapper: TimelineEventContentMap
}
}
fun RustProfileTimelineDetails.map(): ProfileTimelineDetails {
fun RustProfileDetails.map(): ProfileTimelineDetails {
return when (this) {
RustProfileTimelineDetails.Pending -> ProfileTimelineDetails.Pending
RustProfileTimelineDetails.Unavailable -> ProfileTimelineDetails.Unavailable
is RustProfileTimelineDetails.Error -> ProfileTimelineDetails.Error(message)
is RustProfileTimelineDetails.Ready -> ProfileTimelineDetails.Ready(
RustProfileDetails.Pending -> ProfileTimelineDetails.Pending
RustProfileDetails.Unavailable -> ProfileTimelineDetails.Unavailable
is RustProfileDetails.Error -> ProfileTimelineDetails.Error(message)
is RustProfileDetails.Ready -> ProfileTimelineDetails.Ready(
displayName = displayName,
displayNameAmbiguous = displayNameAmbiguous,
avatarUrl = avatarUrl

Loading…
Cancel
Save