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).
This commit is contained in:
committed by
GitHub
parent
798bedcaed
commit
c8fcf9549b
7
.github/workflows/maestro.yml
vendored
7
.github/workflows/maestro.yml
vendored
@@ -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:
|
||||
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 }}
|
||||
|
||||
@@ -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" }
|
||||
|
||||
@@ -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
|
||||
|
||||
data class MessageContent(
|
||||
val body: String,
|
||||
val inReplyTo: UserId?,
|
||||
val inReplyTo: EventId?,
|
||||
val isEdited: Boolean,
|
||||
val type: MessageType?
|
||||
) : EventContent
|
||||
|
||||
@@ -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(
|
||||
.slidingSync()
|
||||
.homeserver("https://slidingsync.lab.matrix.org")
|
||||
.withCommonExtensions()
|
||||
.coldCache("ElementX")
|
||||
.storageKey("ElementX")
|
||||
.addList(visibleRoomsSlidingSyncList)
|
||||
.use {
|
||||
it.build()
|
||||
|
||||
@@ -59,7 +59,7 @@ internal class RustRoomSummaryDataSource(
|
||||
coroutineScope.launch {
|
||||
updateRoomSummaries {
|
||||
addAll(
|
||||
slidingSyncList.currentRoomsList().map(::buildSummaryForRoomListEntry)
|
||||
slidingSyncList.currentRoomList().map(::buildSummaryForRoomListEntry)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
}
|
||||
MessageContent(
|
||||
body = message.body(),
|
||||
inReplyTo = message.inReplyTo()?.let { UserId(it) },
|
||||
inReplyTo = message.inReplyTo()?.eventId?.asEventId(),
|
||||
isEdited = message.isEdited(),
|
||||
type = type
|
||||
)
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user