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:
parent
798bedcaed
commit
c8fcf9549b
7 changed files with 22 additions and 14 deletions
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.
|
# 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
|
# https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#running-a-workflow-when-a-pull-request-is-approved
|
||||||
on:
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
pull_request_review:
|
pull_request_review:
|
||||||
types: [submitted]
|
types: [submitted]
|
||||||
|
|
||||||
|
|
@ -35,6 +36,12 @@ jobs:
|
||||||
java-version: '17'
|
java-version: '17'
|
||||||
- name: Assemble debug APK
|
- name: Assemble debug APK
|
||||||
run: ./gradlew assembleDebug $CI_GRADLE_ARG_PROPERTIES
|
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
|
- uses: mobile-dev-inc/action-maestro-cloud@v1.3.1
|
||||||
with:
|
with:
|
||||||
api-key: ${{ secrets.MAESTRO_CLOUD_API_KEY }}
|
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" }
|
appyx_core = { module = "com.bumble.appyx:core", version.ref = "appyx" }
|
||||||
molecule-runtime = { module = "app.cash.molecule:molecule-runtime", version.ref = "molecule" }
|
molecule-runtime = { module = "app.cash.molecule:molecule-runtime", version.ref = "molecule" }
|
||||||
timber = "com.jakewharton.timber:timber:5.0.1"
|
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-android = { module = "com.squareup.sqldelight:android-driver", version.ref = "sqldelight" }
|
||||||
sqldelight-driver-jvm = { module = "com.squareup.sqldelight:sqlite-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" }
|
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
|
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.core.UserId
|
||||||
import io.element.android.libraries.matrix.api.media.AudioInfo
|
import io.element.android.libraries.matrix.api.media.AudioInfo
|
||||||
import io.element.android.libraries.matrix.api.media.FileInfo
|
import io.element.android.libraries.matrix.api.media.FileInfo
|
||||||
|
|
@ -26,7 +27,7 @@ sealed interface EventContent
|
||||||
|
|
||||||
data class MessageContent(
|
data class MessageContent(
|
||||||
val body: String,
|
val body: String,
|
||||||
val inReplyTo: UserId?,
|
val inReplyTo: EventId?,
|
||||||
val isEdited: Boolean,
|
val isEdited: Boolean,
|
||||||
val type: MessageType?
|
val type: MessageType?
|
||||||
) : EventContent
|
) : EventContent
|
||||||
|
|
|
||||||
|
|
@ -114,7 +114,6 @@ class RustMatrixClient constructor(
|
||||||
)
|
)
|
||||||
.filters(slidingSyncFilters)
|
.filters(slidingSyncFilters)
|
||||||
.name(name = "CurrentlyVisibleRooms")
|
.name(name = "CurrentlyVisibleRooms")
|
||||||
.sendUpdatesForItems(true)
|
|
||||||
.syncMode(mode = SlidingSyncMode.SELECTIVE)
|
.syncMode(mode = SlidingSyncMode.SELECTIVE)
|
||||||
.addRange(0u, 20u)
|
.addRange(0u, 20u)
|
||||||
.use {
|
.use {
|
||||||
|
|
@ -125,7 +124,7 @@ class RustMatrixClient constructor(
|
||||||
.slidingSync()
|
.slidingSync()
|
||||||
.homeserver("https://slidingsync.lab.matrix.org")
|
.homeserver("https://slidingsync.lab.matrix.org")
|
||||||
.withCommonExtensions()
|
.withCommonExtensions()
|
||||||
.coldCache("ElementX")
|
.storageKey("ElementX")
|
||||||
.addList(visibleRoomsSlidingSyncList)
|
.addList(visibleRoomsSlidingSyncList)
|
||||||
.use {
|
.use {
|
||||||
it.build()
|
it.build()
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,7 @@ internal class RustRoomSummaryDataSource(
|
||||||
coroutineScope.launch {
|
coroutineScope.launch {
|
||||||
updateRoomSummaries {
|
updateRoomSummaries {
|
||||||
addAll(
|
addAll(
|
||||||
slidingSyncList.currentRoomsList().map(::buildSummaryForRoomListEntry)
|
slidingSyncList.currentRoomList().map(::buildSummaryForRoomListEntry)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,16 +16,17 @@
|
||||||
|
|
||||||
package io.element.android.libraries.matrix.impl.timeline.item.event
|
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.AudioMessageType
|
||||||
import io.element.android.libraries.matrix.api.timeline.item.event.EmoteMessageType
|
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.FileMessageType
|
||||||
import io.element.android.libraries.matrix.api.timeline.item.event.FormattedBody
|
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.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.MessageFormat
|
||||||
import io.element.android.libraries.matrix.api.timeline.item.event.NoticeMessageType
|
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.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.UnknownMessageType
|
||||||
import io.element.android.libraries.matrix.api.timeline.item.event.VideoMessageType
|
import io.element.android.libraries.matrix.api.timeline.item.event.VideoMessageType
|
||||||
import io.element.android.libraries.matrix.impl.media.map
|
import io.element.android.libraries.matrix.impl.media.map
|
||||||
|
|
@ -69,7 +70,7 @@ class EventMessageMapper {
|
||||||
}
|
}
|
||||||
MessageContent(
|
MessageContent(
|
||||||
body = message.body(),
|
body = message.body(),
|
||||||
inReplyTo = message.inReplyTo()?.let { UserId(it) },
|
inReplyTo = message.inReplyTo()?.eventId?.asEventId(),
|
||||||
isEdited = message.isEdited(),
|
isEdited = message.isEdited(),
|
||||||
type = type
|
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.Reaction
|
||||||
import org.matrix.rustcomponents.sdk.EventSendState as RustEventSendState
|
import org.matrix.rustcomponents.sdk.EventSendState as RustEventSendState
|
||||||
import org.matrix.rustcomponents.sdk.EventTimelineItem as RustEventTimelineItem
|
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()) {
|
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) {
|
return when (this) {
|
||||||
RustProfileTimelineDetails.Pending -> ProfileTimelineDetails.Pending
|
RustProfileDetails.Pending -> ProfileTimelineDetails.Pending
|
||||||
RustProfileTimelineDetails.Unavailable -> ProfileTimelineDetails.Unavailable
|
RustProfileDetails.Unavailable -> ProfileTimelineDetails.Unavailable
|
||||||
is RustProfileTimelineDetails.Error -> ProfileTimelineDetails.Error(message)
|
is RustProfileDetails.Error -> ProfileTimelineDetails.Error(message)
|
||||||
is RustProfileTimelineDetails.Ready -> ProfileTimelineDetails.Ready(
|
is RustProfileDetails.Ready -> ProfileTimelineDetails.Ready(
|
||||||
displayName = displayName,
|
displayName = displayName,
|
||||||
displayNameAmbiguous = displayNameAmbiguous,
|
displayNameAmbiguous = displayNameAmbiguous,
|
||||||
avatarUrl = avatarUrl
|
avatarUrl = avatarUrl
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue