fix(deps): update dependency androidx.compose.material3:material3 to v1.5.0-alpha15 (#6306)
* fix(deps): update dependency androidx.compose.material3:material3 to v1.5.0-alpha15 * Fix deprecations * Add bottom sheet workaround * Fix new lint issues * Fix and ignore broken tests * Update screenshots --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Jorge Martín <jorgem@element.io> Co-authored-by: ElementBot <android@element.io>
This commit is contained in:
parent
5c1e40b724
commit
e8a2f97cf5
21 changed files with 62 additions and 42 deletions
|
|
@ -9,6 +9,8 @@
|
||||||
package io.element.android.x
|
package io.element.android.x
|
||||||
|
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
|
import androidx.compose.material3.ComposeMaterial3Flags.isAnchoredDraggableComponentsStrictOffsetCheckEnabled
|
||||||
|
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||||
import androidx.startup.AppInitializer
|
import androidx.startup.AppInitializer
|
||||||
import androidx.work.Configuration
|
import androidx.work.Configuration
|
||||||
import dev.zacsweers.metro.createGraphFactory
|
import dev.zacsweers.metro.createGraphFactory
|
||||||
|
|
@ -27,6 +29,7 @@ class ElementXApplication : Application(), DependencyInjectionGraphOwner, Config
|
||||||
.setWorkerFactory(MetroWorkerFactory(graph.workerProviders))
|
.setWorkerFactory(MetroWorkerFactory(graph.workerProviders))
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
|
@OptIn(ExperimentalMaterial3Api::class)
|
||||||
override fun onCreate() {
|
override fun onCreate() {
|
||||||
super.onCreate()
|
super.onCreate()
|
||||||
AppInitializer.getInstance(this).apply {
|
AppInitializer.getInstance(this).apply {
|
||||||
|
|
@ -36,5 +39,9 @@ class ElementXApplication : Application(), DependencyInjectionGraphOwner, Config
|
||||||
}
|
}
|
||||||
|
|
||||||
logApplicationInfo(this)
|
logApplicationInfo(this)
|
||||||
|
|
||||||
|
// Disable the strict offset check for anchored draggable components, as it can cause issues with bottom sheets.
|
||||||
|
// Remove once https://issuetracker.google.com/issues/477038695 is fixed.
|
||||||
|
isAnchoredDraggableComponentsStrictOffsetCheckEnabled = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,6 +12,7 @@ import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.collectAsState
|
import androidx.compose.runtime.collectAsState
|
||||||
import androidx.compose.runtime.derivedStateOf
|
import androidx.compose.runtime.derivedStateOf
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
|
import androidx.compose.runtime.produceState
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import dev.zacsweers.metro.Inject
|
import dev.zacsweers.metro.Inject
|
||||||
import io.element.android.features.logout.api.direct.DirectLogoutEvents
|
import io.element.android.features.logout.api.direct.DirectLogoutEvents
|
||||||
|
|
@ -30,17 +31,21 @@ class ChooseSelfVerificationModePresenter(
|
||||||
@Composable
|
@Composable
|
||||||
override fun present(): ChooseSelfVerificationModeState {
|
override fun present(): ChooseSelfVerificationModeState {
|
||||||
val hasDevicesToVerifyAgainst by encryptionService.hasDevicesToVerifyAgainst.collectAsState()
|
val hasDevicesToVerifyAgainst by encryptionService.hasDevicesToVerifyAgainst.collectAsState()
|
||||||
val canUseRecoveryKey by encryptionService.recoveryStateStateFlow
|
val canUseRecoveryKey by produceState<AsyncData<Boolean>>(AsyncData.Uninitialized) {
|
||||||
.mapState { recoveryState ->
|
encryptionService.recoveryStateStateFlow
|
||||||
when (recoveryState) {
|
.mapState { recoveryState ->
|
||||||
RecoveryState.WAITING_FOR_SYNC,
|
when (recoveryState) {
|
||||||
RecoveryState.UNKNOWN -> AsyncData.Loading()
|
RecoveryState.WAITING_FOR_SYNC,
|
||||||
RecoveryState.INCOMPLETE -> AsyncData.Success(true)
|
RecoveryState.UNKNOWN -> AsyncData.Loading()
|
||||||
RecoveryState.ENABLED,
|
RecoveryState.INCOMPLETE -> AsyncData.Success(true)
|
||||||
RecoveryState.DISABLED -> AsyncData.Success(false)
|
RecoveryState.ENABLED,
|
||||||
|
RecoveryState.DISABLED -> AsyncData.Success(false)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
.collect {
|
||||||
.collectAsState()
|
value = it
|
||||||
|
}
|
||||||
|
}
|
||||||
val buttonsState by remember {
|
val buttonsState by remember {
|
||||||
derivedStateOf {
|
derivedStateOf {
|
||||||
val canUseAnotherDevice = hasDevicesToVerifyAgainst.dataOrNull()
|
val canUseAnotherDevice = hasDevicesToVerifyAgainst.dataOrNull()
|
||||||
|
|
|
||||||
|
|
@ -56,7 +56,6 @@ class RoomListViewTest {
|
||||||
|
|
||||||
eventsRecorder.assertList(
|
eventsRecorder.assertList(
|
||||||
listOf(
|
listOf(
|
||||||
RoomListEvent.UpdateVisibleRange(IntRange.EMPTY),
|
|
||||||
RoomListEvent.UpdateVisibleRange(0..5),
|
RoomListEvent.UpdateVisibleRange(0..5),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,7 @@ import io.element.android.tests.testutils.setSafeContent
|
||||||
import io.element.android.wysiwyg.link.Link
|
import io.element.android.wysiwyg.link.Link
|
||||||
import kotlinx.collections.immutable.persistentListOf
|
import kotlinx.collections.immutable.persistentListOf
|
||||||
import kotlinx.collections.immutable.toImmutableList
|
import kotlinx.collections.immutable.toImmutableList
|
||||||
|
import org.junit.Ignore
|
||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.rules.TestRule
|
import org.junit.rules.TestRule
|
||||||
|
|
@ -141,6 +142,10 @@ class TimelineViewTest {
|
||||||
eventsRecorder.assertSingle(TimelineEvent.HideShieldDialog)
|
eventsRecorder.assertSingle(TimelineEvent.HideShieldDialog)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Ignore(
|
||||||
|
"performScrollToIndex in compose tests no longer sets LazyListState.isScrollInProgress to true, so the LoadMore event is not emitted." +
|
||||||
|
"This needs to be reworked to use a different approach to check the LoadMore event was emitted."
|
||||||
|
)
|
||||||
@Test
|
@Test
|
||||||
fun `scrolling near to the start of the loaded items triggers a pre-fetch`() {
|
fun `scrolling near to the start of the loaded items triggers a pre-fetch`() {
|
||||||
val eventsRecorder = EventsRecorder<TimelineEvent>()
|
val eventsRecorder = EventsRecorder<TimelineEvent>()
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,10 @@ class ChangeRolesViewTest {
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
rule.pressBackKey()
|
rule.pressBackKey()
|
||||||
|
|
||||||
|
// Advance time to let the event be processed, as the search toggle might have some delay (e.g. for the animation)
|
||||||
|
rule.mainClock.advanceTimeBy(1)
|
||||||
|
|
||||||
eventsRecorder.assertSingle(ChangeRolesEvent.ToggleSearchActive)
|
eventsRecorder.assertSingle(ChangeRolesEvent.ToggleSearchActive)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -120,7 +120,7 @@ androidx_preference = "androidx.preference:preference:1.2.1"
|
||||||
androidx_webkit = "androidx.webkit:webkit:1.15.0"
|
androidx_webkit = "androidx.webkit:webkit:1.15.0"
|
||||||
|
|
||||||
androidx_compose_bom = { module = "androidx.compose:compose-bom", version.ref = "compose_bom" }
|
androidx_compose_bom = { module = "androidx.compose:compose-bom", version.ref = "compose_bom" }
|
||||||
androidx_compose_material3 = { module = "androidx.compose.material3:material3", version = '1.5.0-alpha11' }
|
androidx_compose_material3 = { module = "androidx.compose.material3:material3", version = '1.5.0-alpha15' }
|
||||||
androidx_compose_material3_windowsizeclass = { module = "androidx.compose.material3:material3-window-size-class" }
|
androidx_compose_material3_windowsizeclass = { module = "androidx.compose.material3:material3-window-size-class" }
|
||||||
androidx_compose_material3_adaptive = "androidx.compose.material3:material3-adaptive-android:1.0.0-alpha06"
|
androidx_compose_material3_adaptive = "androidx.compose.material3:material3-adaptive-android:1.0.0-alpha06"
|
||||||
androidx_compose_ui = { module = "androidx.compose.ui:ui" }
|
androidx_compose_ui = { module = "androidx.compose.ui:ui" }
|
||||||
|
|
|
||||||
|
|
@ -20,9 +20,9 @@ import androidx.compose.ui.geometry.CornerRadius
|
||||||
import androidx.compose.ui.geometry.Offset
|
import androidx.compose.ui.geometry.Offset
|
||||||
import androidx.compose.ui.geometry.Rect
|
import androidx.compose.ui.geometry.Rect
|
||||||
import androidx.compose.ui.geometry.RoundRect
|
import androidx.compose.ui.geometry.RoundRect
|
||||||
|
import androidx.compose.ui.graphics.AndroidPaint
|
||||||
import androidx.compose.ui.graphics.ClipOp
|
import androidx.compose.ui.graphics.ClipOp
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.graphics.Paint
|
|
||||||
import androidx.compose.ui.graphics.Path
|
import androidx.compose.ui.graphics.Path
|
||||||
import androidx.compose.ui.graphics.drawscope.clipPath
|
import androidx.compose.ui.graphics.drawscope.clipPath
|
||||||
import androidx.compose.ui.graphics.drawscope.drawIntoCanvas
|
import androidx.compose.ui.graphics.drawscope.drawIntoCanvas
|
||||||
|
|
@ -55,10 +55,10 @@ fun Modifier.blurredShapeShadow(
|
||||||
addRoundRect(RoundRect(Rect(Offset.Zero, size), CornerRadius(cornerRadius.toPx())))
|
addRoundRect(RoundRect(Rect(Offset.Zero, size), CornerRadius(cornerRadius.toPx())))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val frameworkPaint = android.graphics.Paint()
|
||||||
// Draw the blurred shadow, then cut out the shape from it
|
// Draw the blurred shadow, then cut out the shape from it
|
||||||
clipPath(path, ClipOp.Difference) {
|
clipPath(path, ClipOp.Difference) {
|
||||||
val paint = Paint()
|
val paint = AndroidPaint(frameworkPaint)
|
||||||
val frameworkPaint = paint.asFrameworkPaint()
|
|
||||||
if (blurRadius != 0.dp) {
|
if (blurRadius != 0.dp) {
|
||||||
frameworkPaint.maskFilter = BlurMaskFilter(blurRadius.toPx(), BlurMaskFilter.Blur.NORMAL)
|
frameworkPaint.maskFilter = BlurMaskFilter(blurRadius.toPx(), BlurMaskFilter.Blur.NORMAL)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ fun ModalBottomSheet(
|
||||||
tonalElevation: Dp = if (ElementTheme.isLightTheme) 0.dp else BottomSheetDefaults.Elevation,
|
tonalElevation: Dp = if (ElementTheme.isLightTheme) 0.dp else BottomSheetDefaults.Elevation,
|
||||||
scrimColor: Color = BottomSheetDefaults.ScrimColor,
|
scrimColor: Color = BottomSheetDefaults.ScrimColor,
|
||||||
dragHandle: @Composable (() -> Unit)? = { BottomSheetDefaults.DragHandle() },
|
dragHandle: @Composable (() -> Unit)? = { BottomSheetDefaults.DragHandle() },
|
||||||
contentWindowInsets: @Composable () -> WindowInsets = { BottomSheetDefaults.windowInsets },
|
contentWindowInsets: @Composable () -> WindowInsets = { BottomSheetDefaults.modalWindowInsets },
|
||||||
content: @Composable ColumnScope.() -> Unit,
|
content: @Composable ColumnScope.() -> Unit,
|
||||||
) {
|
) {
|
||||||
val safeSheetState = if (LocalInspectionMode.current) sheetStateForPreview() else sheetState
|
val safeSheetState = if (LocalInspectionMode.current) sheetStateForPreview() else sheetState
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:de47f99903217dbe13518771d78b70ac8d53ec6f636a1d2693adb36f4d552909
|
oid sha256:9c6e4ac872b497e115985a4d9535c3720d3d9189537cfffcd3f3b30033db636b
|
||||||
size 57454
|
size 57156
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:302a8d726dadfda8dd336b10404c8046250deeb43d8b8caa0deaa04647dd1bdb
|
oid sha256:70898c5044adbc7bb5a318bf218a551daeb62390d767eb0457774900f52d401a
|
||||||
size 55323
|
size 55072
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:7455353141ee3d5cd656b6935207f465a22044dbddb6dbc031bf63d8d838c0c6
|
oid sha256:938d7774286e17cda5a154240e13e5bad8c424d0bfce9d0941540f1648039555
|
||||||
size 75268
|
size 75040
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:4a35b229a3af65a3c5ecdf2e373d7870020dd9194cbc133c3755310e95a0083d
|
oid sha256:ae0de9520beb1ce721797d2cc727494b4e9491fae3d8057133cabd86b70f410d
|
||||||
size 57337
|
size 56987
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:7a6fbcdf4ab70694b5417141d65e2e58f19a4905191250238c253bb617aec2c8
|
oid sha256:1184bfad29af5a41c0049ade4c7e4da3b7c729e41cc5cb2d54201529f0f4d54b
|
||||||
size 50547
|
size 51476
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:9c98843d0390cf29ef7877af6c65bff74564f018b92f95c0244f99e612945790
|
oid sha256:45b982e467e1d33f5ad0ef2d5a1712589f378a07c8521ac273f2f40364c9adb8
|
||||||
size 34190
|
size 34004
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:5029d3fe6b336feeed2240030390d561eec91730d10a5bc09f8668d8d69d6d01
|
oid sha256:12195a28876c3c90b0488edf00046f5b941faa8c7203e60f5ab9317dcbe35cf1
|
||||||
size 26986
|
size 25757
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:d5aa69df4d7f1e48ca15ed7cba55b42124428aeb9bdd1bc840a81f75a389675a
|
oid sha256:d6ab0c3e8353c2e3ce517065fb66c1fca10d58b96081c0dc7a44d59dd084cb3f
|
||||||
size 25512
|
size 24498
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:2a169164322e6dbe2e9c89ec175112cc70734fa1fab25c2103bbccafc52ee578
|
oid sha256:e5bd87fa02dda072996cb8b1c927bceca0a7dac0c790e82681b4c1e411523365
|
||||||
size 32147
|
size 32310
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:c3b8fa8a80cca09f7a50500f2e78f9fbf9f444338b997d392db45eb98acc30eb
|
oid sha256:b456443ad681ee4edcbf5a605f9799062c5482f060506ec0f597056cef5510be
|
||||||
size 24235
|
size 24316
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:0c9a7d0453d64405e1ba929134c9f45664e6c2278c63e64a69f619fe45a742de
|
oid sha256:7f60460469e16407dc671c08071a03553d2ffa81cde48bed19628f46b86cb778
|
||||||
size 23932
|
size 24033
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:3ea14b8b16f5df12d0bb011a3a5496ca710506b4882dda83317a083052e91f1a
|
oid sha256:ddd8149f9d7cb4867bdf5f12276d778d2ed56963051961e949f4feb470308fc4
|
||||||
size 63185
|
size 63636
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:f12959d1d6610679fb551c6526dd8347e3e223f3e246772c5ac8632a80fcf3b8
|
oid sha256:6794c0d21a221b47c9c808339e7eae1195af9504d4ea3f68bede59f3d77cf1c4
|
||||||
size 61972
|
size 62497
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue