Releases: slackhq/circuit
0.23.1
- New: Promote
NoOpRetainedStateRegistry
to public API for use in testing and previews. - New: Add
CircuitPreview
helper function for composable previews that contain Circuit content. - Enhancement: When running under
LocalInspectionMode
, Circuit's defaultonUnavailableContent
now shows a simpler non-intrusive placeholder UI instead. - Enhancement: Support secondary injected constructors in code gen.
- Fix: Fix non-dismissable
BottomSheetOverlay
crash when invoking back-press. - Update to Kotlin
2.0.10
. - Update to androidx.annotation
1.8.2
. - Build against KSP
2.0.10-1.0.24
.
What's Changed
- Update dependency mkdocs-material to v9.5.31 by @slack-oss-bot in #1551
- Switch to anvil-ksp fork by @ZacSweers in #1559
- Update roborazzi to v1.26.0 by @slack-oss-bot in #1554
- Update dependency PyYAML to v6.0.2 by @slack-oss-bot in #1555
- Update benchmark to v1.3.0-rc01 by @slack-oss-bot in #1562
- Update coil3 to v3.0.0-alpha10 by @slack-oss-bot in #1563
- Update dependency androidx.annotation:annotation to v1.8.2 by @slack-oss-bot in #1564
- Update agp to v8.5.2 by @slack-oss-bot in #1566
- Update anvil to v0.2.2 by @slack-oss-bot in #1567
- Update ksp to v2.0.10-1.0.24 by @slack-oss-bot in #1558
- Update kotlin monorepo to v2.0.10 by @slack-oss-bot in #1557
- Update renovatebot/github-action action to v40 by @slack-oss-bot in #1568
- Update anvil to v0.2.3 by @slack-oss-bot in #1570
- Small improvements for using circuit in previews by @ZacSweers in #1573
- Support secondary constructors for injection by @ZacSweers in #1574
- Update anvil to v0.2.4 by @slack-oss-bot in #1575
- Update dependency io.reactivex.rxjava3:rxjava to v3.1.9 by @slack-oss-bot in #1576
- Fix non-dismissable bottom sheets being dismissable on backpress by @ZacSweers in #1577
Full Changelog: 0.23.0...0.23.1
0.23.0
- New: Add macOS, windows, linux, tvOS, and watchOS targets to Circuit's runtime and retained artifacts.
- New: Add macOS targets to Circuit's UI, backstack, overlay, test, circuitx (except gesture nav), and foundation artifacts.
- Slightly optimize
pausableState
#1455. - Change:
OverlayHost.showFullScreenOverlay
now returns thePopResult?
that was popped by the screen. - Change: Remove
backstack
dependency fromcircuit-runtime
. It was unnecessary and also accidentally imposed Compose UI on the runtime/presenter artifacts. - Change: Make
Overlay
afun interface
. - Breaking Change: Change
OverlayEffect
to use a newOverlayScope
API that implements bothCoroutineScope
andOverlayHost
, making both contexts available in the lambda. - Update KSP to
2.0.0-1.0.24
. - Update androidx.activity to
1.9.1
. - Update androidx.lifecycle to
2.8.4
. - Update androidx.annotation to
1.8.1
. - Update KotlinPoet
1.18.1
. - Update Compose Multiplatform to
1.6.11
.
Special thanks to @aschulz90 and @chrisbanes for contributing to this release!
What's Changed
- Optimize withCompositionLocalProvider by @ZacSweers in #1455
- Add a test to verify state restoration when using resetRoot by @chrisbanes in #1454
- Move more star sample API code into commonMain by @ZacSweers in #1456
- Update dependency com.slack.eithernet:eithernet to v1.9.0 by @slack-oss-bot in #1459
- Update kct to v0.5.0 by @slack-oss-bot in #1457
- Update ksp to v2.0.0-1.0.22 by @slack-oss-bot in #1458
- Update to Eithernet 2 + commonize more APIs by @ZacSweers in #1460
- Return PopResult from OverlayHost.showFullScreenOverlay() by @aschulz90 in #1447
- Update dependency tornado to v6.4.1 [SECURITY] by @slack-oss-bot in #1463
- Update dependency co.touchlab.skie to v0.8.2 by @slack-oss-bot in #1464
- Update dependency com.facebook:ktfmt to v0.50 by @slack-oss-bot in #1466
- Update dependency mkdocs-material to v9.5.26 by @slack-oss-bot in #1465
- Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json-okio to v1.7.0 by @slack-oss-bot in #1467
- Refresh STAR sample theming by @ZacSweers in #1461
- Update dependency dev.zacsweers.autoservice:auto-service-ksp to v1.2.0 by @slack-oss-bot in #1469
- Commonize remaining star networking operations by @ZacSweers in #1468
- Update agp to v8.4.2 by @slack-oss-bot in #1472
- Update androidx.lifecycle to v2.8.2 by @slack-oss-bot in #1473
- Update dependency androidx.compose:compose-bom to v2024.06.00 by @slack-oss-bot in #1479
- Update compose.material to v1.6.8 by @slack-oss-bot in #1474
- Update compose.runtime to v1.6.8 by @slack-oss-bot in #1475
- Update dependency androidx.compose.animation:animation to v1.6.8 by @slack-oss-bot in #1477
- Update compose.ui to v1.6.8 by @slack-oss-bot in #1476
- Update dependency com.facebook:ktfmt to v0.51 by @slack-oss-bot in #1481
- Update dependency mkdocs-material to v9.5.27 by @slack-oss-bot in #1482
- Update dependency org.jline:jline to v3.26.2 by @slack-oss-bot in #1483
- Update dependency fastlane to v2.221.0 by @slack-oss-bot in #1484
- Update dependency fastlane to v2.221.1 by @slack-oss-bot in #1486
- Update ktor monorepo to v2.3.12 by @slack-oss-bot in #1487
- Update dependency com.vanniktech.maven.publish to v0.29.0 by @slack-oss-bot in #1488
- Update dependency livereload to v2.7.0 by @slack-oss-bot in #1489
- Update dependency androidx.test.ext:junit to v1.2.0 by @slack-oss-bot in #1491
- Update agp to v8.5.0 by @slack-oss-bot in #1480
- Update dependency androidx.test.espresso:espresso-core to v3.6.0 by @slack-oss-bot in #1490
- Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json-okio to v1.7.1 by @slack-oss-bot in #1493
- Adopt newer releases of androidx.benchmark by @ZacSweers in #1495
- Update dependency androidx.test.ext:junit to v1.2.1 by @slack-oss-bot in #1498
- Update dependency androidx.test.espresso:espresso-core to v3.6.1 by @slack-oss-bot in #1497
- Update dependency com.google.truth:truth to v1.4.3 by @slack-oss-bot in #1500
- Update kct to v0.5.1 by @slack-oss-bot in #1501
- Update dependency org.jetbrains.kotlinx:atomicfu to v0.25.0 by @slack-oss-bot in #1502
- Update androidx.lifecycle to v2.8.3 by @slack-oss-bot in #1504
- Update dependency mkdocs-material to v9.5.28 by @slack-oss-bot in #1505
- Update roborazzi to v1.21.0 by @slack-oss-bot in #1506
- Update kotlinpoet to v1.18.0 by @slack-oss-bot in #1507
- Update dependency org.robolectric:robolectric to v4.13 by @slack-oss-bot in #1508
- Update dependency org.jsoup:jsoup to v1.18.1 by @slack-oss-bot in #1510
- Update benchmark to v1.3.0-beta02 by @slack-oss-bot in #1511
- Update agp to v8.5.1 by @slack-oss-bot in #1512
- Update ksp to v2.0.0-1.0.23 by @slack-oss-bot in #1513
- Update dependency gradle to v8.9 by @slack-oss-bot in #1514
- Update dependency mkdocs-material to v9.5.29 by @slack-oss-bot in #1518
- Update roborazzi to v1.22.2 by @slack-oss-bot in #1517
- Update kotlinpoet to v1.18.1 by @slack-oss-bot in #1520
- Update dependency com.google.truth:truth to v1.4.4 by @slack-oss-bot in #1515
- Update dependency me.saket.telephoto:zoomable-image-coil to v0.12.0 by @slack-oss-bot in #1516
- Update coil3 to v3.0.0-alpha08 by @slack-oss-bot in #1496
- Update coil to v2.7.0 by @slack-oss-bot in #1524
- Update roborazzi to v1.23.0 by @slack-oss-bot in #1526
- Update dependency org.jline:jline to v3.26.3 by @slack-oss-bot in #1523
- Update dependency co.touchlab.skie to v0.8.3 by @slack-oss-bot in #1525
- Update dependency me.saket.telephoto:zoomable-image-coil to v0.12.1 by @slack-oss-bot in #1528
- Remove backstack dependency from circuit-runtime by @ZacSweers in #1527
- Update androidx.lifecycle to v2.8.4 by @slack-oss-bot in #1536
- Update dependency androidx.activity:activity-compose to v1.9.1 by @slack-oss-bot in #1537
- Update dependency androidx.annotation:annotation to v1.8.1 by @slack-oss-bot in #1538
- Update anvil to v2.5.0-beta10 by @slack-oss-bot in #1531
- Update coil3 to v3.0.0-alpha09 by @slack-oss-bot in #1534
- Update dependency mkdocs-material to v9.5.30 by @slack-oss-bot in #1532
- Update androidx.activity to v1.9.1 by @slack-oss-bot in #1535
- Update roborazzi to v1.24.0 by @slack-oss-bot in #1541
- Update dependency fastlane to v2.222.0 by @slack-oss-bot in #1539
- Update dependency pymdown-extensions to v10.9 by @slack-oss-bot in #1540
- Update roborazzi to v1.25.0 by @slack-oss-bot in #1545
- Make Overlay a fun interface by @ZacSweers in #1543
- Add more targets! by @ZacSweers in #1544
- Simplify OverlayEffect with OverlayScope by @ZacSweers in #1542
- Update anvil to v2.5.0-beta11 by @slack-oss-bot in #1547
- Update ksp to v2.0.0-1.0.24 by @slack-oss-bot in #1548
Full Changelog: https://github.com/slackhq/circuit/compare/0.22...
0.22.2
- Fix: Fix
pausableState
recomposition loops by avoiding backward snapshot writes. - New: Add
Circuit.presentWithLifecycle
flag to enable/disable automaticpausableState
use. This is enabled by default. - Update Compose Multiplatform to
1.6.11
. - Update androidx.lifecycle to
2.8.1
. - Update androidx.appcompat to
1.7.0
.
Special thanks to @chrisbanes, @adamp, and Chuck Jazdzewski for contributing to this release and helping us find a runtime fix for the pausableState
issue!
What's Changed
- Update dependency dev.zacsweers.moshix to v0.27.1 by @slack-oss-bot in #1440
- Update dependency com.jakewharton.mosaic to v0.12.0 by @slack-oss-bot in #1441
- Update roborazzi to v1.20.0 by @slack-oss-bot in #1433
- Update dependency androidx.appcompat:appcompat to v1.7.0 by @slack-oss-bot in #1443
- Update androidx.lifecycle to v2.8.1 by @slack-oss-bot in #1442
- Update dependency gradle to v8.8 by @slack-oss-bot in #1446
- Add Circuit.presentWithLifecycle config by @ZacSweers in #1450
- Update dependency co.touchlab.skie to v0.8.1 by @slack-oss-bot in #1444
- Update compose.jb to v1.6.11 by @slack-oss-bot in #1452
- Add withCompositionLocalProvider to avoid backward writes by @chrisbanes in #1451
Full Changelog: 0.22.1...0.22.2
0.21.2
- Fix: Fix
pausableState
recomposition loops by avoiding backward snapshot writes. - New: Add
Circuit.presentWithLifecycle
flag to enable/disable automaticpausableState
use. This is enabled by default.
Full Changelog: 0.21.1...0.21.2
0.22.1
- Fix: Fix
rememberRetained
implicitly requiringLocalContext
where it used to no-op
What's Changed
- Bump rexml from 3.2.6 to 3.2.8 by @dependabot in #1435
- Update dependency app.cash.molecule:molecule-runtime to v2 by @slack-oss-bot in #1437
- Short circuit
rememberRetained
if theLocalRetainedStateRegistry
isn't set by @stagg in #1438
Full Changelog: 0.22.0...0.22.1
0.22.0
- Update to Kotlin
2.0.0
. - Update to KSP
2.0.0-1.0.21
. - Update Compose Multiplatform to
1.6.10
. - Switch to the compose compiler shipped with Kotlin.
This release is otherwise identical to 0.21.0
, just updated to Kotlin 2.0.
What's Changed
- Update dependency mkdocs-material to v9.5.25 by @slack-oss-bot in #1432
- Update to K2 by @ZacSweers in #1006
Full Changelog: 0.21.0...0.22.0
0.21.1
0.21.0
- New: Add WASM targets.
- New: Add
FakeNavigator
functions to check for the lack of pop/resetRoot events. - New: Add
FakeNavigator
constructor param to add additional screens to the backstack. - New: Add support for static UIs. In some cases, a UI may not need a presenter to compute or manage its state. Examples of this include UIs that are stateless or can derive their state from a single static input or an input [Screen]'s properties. In these cases, make your screen implement the
StaticScreen
interface. When aStaticScreen
is used, Circuit will internally allow the UI to run on its own and won't connect it to a presenter if no presenter is provided. - New: Add
RecordLifecycle
andLocalRecordLifecycle
composition local, allowing UIs and presenters to observe when they are 'active'. Currently, a record is considered 'active' when it is the top record on the back stack. - New: Add a
rememberRetainedSaveable
variant that participates in bothRetainedStateRegistry
andSaveableStateRegistry
restoration, allowing layered state persistence.- The logic is the following upon
rememberRetainedSaveable
entering composition:- consume from both
RetainedStateRegistry
andSaveableStateRegistry
, if available - if the retained value is available, use that
- otherwise, if the saveable restored value is available, use that
- otherwise, re-initialize the value
- consume from both
- There is also an overload of
rememberRetained
that explicitly requires aSaver
parameter.
- The logic is the following upon
- Behaviour Change: Presenters are now 'paused' when inactive and replay their last emitted
CircuitUiState
when they are not active. Presenters can opt-out of this behavior by implementingNonPausablePresenter
. - Behaviour Change:
NavigatorImpl.goTo
no longer navigates if theScreen
is equal toNavigator.peek()
. - Behaviour Change:
Presenter.present
is now annotated with@ComposableTarget("presenter")
. This helps prevent use of Compose UI in the presentation logic as the compiler will emit a warning if you do. Note this does not appear in the IDE, so it's recommended to useallWarningsAsErrors
to fail the build on this event. - Behaviour Change: Guard against
Navigator.goTo()
calls to the same current screen. - Change:
Navigator.goTo
now returns a Bool indicating navigation success. - Change: Move iOS
GestureNavigationDecoration
impl tocommonMain
and rename toCupertinoGestureNavigationDecoration
. - Change: Target jvmTarget
1.8
in core libraries. - Fix: Fix saveable state being restored when using reset root navigation events.
- Deprecation:
FakeNavigator.assertIsEmpty
andexpectNoEvents
(use the specific event type methods instead) - Mark
Presenter.Factory
as@Stable
. - Mark
Ui.Factory
as@Stable
. - Mark
CircuitContext
as@Stable
. - Mark
EventListener
as@Stable
. - Mark
EventListener.Factory
as@Stable
. - [samples] Improve interop sample significantly.
- Update Kotlin to
1.9.24
. - Update KSP to
1.9.24-2.0.20
. - Update compose-compiler to
1.5.14
. - Update KotlinPoet to
1.17.0
. - Update androidx.lifecycle to
2.8.0
. - Update Molecule to
1.4.3
. - Update androidx.annotation to
1.8.0
. - Update kotlinx.coroutines to
1.8.1
. - Update Compose Multiplatform to
1.6.2
. - Update Compose UI to
1.6.7
. - Update Compose Runtime to
1.6.7
. - Update Compose Animation to
1.6.7
. - Update Compose Material to
1.6.7
. - Update androidx.core to
1.13.1
. - Update androidx.activity to
1.9.0
. - Update dagger to
2.51.1
. - Update uuid to
0.8.4
.
Special thanks to @chrisbanes, @alexvanyo, @eboudrant, @edenman, and @JustinBis for contributing to this release!
What's Changed
- Update retrofit to v2.10.0 by @slack-oss-bot in #1293
- Update agp to v8.3.1 by @slack-oss-bot in #1292
- Update dependency com.benasher44:uuid to v0.8.4 by @slack-oss-bot in #1294
- Update dependency androidx.compose:compose-bom to v2024.03.00 by @slack-oss-bot in #1302
- Update dependency androidx.compose.foundation:foundation to v1.6.4 by @slack-oss-bot in #1301
- Update compose.ui to v1.6.4 by @slack-oss-bot in #1298
- Update dependency androidx.compose.animation:animation to v1.6.4 by @slack-oss-bot in #1299
- Update compose.runtime to v1.6.4 by @slack-oss-bot in #1297
- Update compose.material to v1.6.4 by @slack-oss-bot in #1296
- Update dependency mkdocs-material to v9.5.15 by @slack-oss-bot in #1303
- Update dependency gradle to v8.7 by @slack-oss-bot in #1304
- Update dependency androidx.compose.compiler:compiler to v1.5.11 by @slack-oss-bot in #1300
- Add WASM support by @ZacSweers in #1245
- Update dependency io.gitlab.arturbosch.detekt to v1.23.6 by @slack-oss-bot in #1306
- Update dependency me.saket.telephoto:zoomable-image-coil to v0.9.0 by @slack-oss-bot in #1308
- Revamp interop sample by @ZacSweers in #1193
- Update kct to v0.4.1 by @slack-oss-bot in #1307
- Update dependency com.github.ajalt.clikt:clikt to v4.3.0 by @slack-oss-bot in #1310
- Update molecule to v1.4.2 by @slack-oss-bot in #1309
- Update retrofit to v2.11.0 by @slack-oss-bot in #1311
- Update dependency org.robolectric:robolectric to v4.12 by @slack-oss-bot in #1314
- Update dagger to v2.51.1 by @slack-oss-bot in #1313
- Update dependency mkdocs-material to v9.5.17 by @slack-oss-bot in #1315
- Update dependency org.robolectric:robolectric to v4.12.1 by @slack-oss-bot in #1316
- Update compose.material to v1.6.5 by @slack-oss-bot in #1318
- Update compose.runtime to v1.6.5 by @slack-oss-bot in #1319
- Update compose.ui to v1.6.5 by @slack-oss-bot in #1320
- Update dependency androidx.compose.foundation:foundation to v1.6.5 by @slack-oss-bot in #1322
- Update dependency androidx.compose.animation:animation to v1.6.5 by @slack-oss-bot in #1321
- Update dependency androidx.datastore:datastore-preferences to v1.1.0-rc01 by @slack-oss-bot in #1323
- Update dependency androidx.compose:compose-bom to v2024.04.00 by @slack-oss-bot in #1324
- Update dependency fastlane to v2.220.0 by @slack-oss-bot in #1325
- Remember keys in rememberSaveableBackStack by @JustinBis in #1326
- Update ksp to v1.9.23-1.0.20 by @slack-oss-bot in #1327
- Update actionsdesk/lfs-warning action to v3.3 by @slack-oss-bot in #1328
- Update sqldelight to v2.0.2 by @slack-oss-bot in #1329
- Update ktor to v2.3.10 by @slack-oss-bot in #1332
- Update agp to v8.3.2 by @slack-oss-bot in #1333
- Update compose.jb to v1.6.2 by @slack-oss-bot in #1335
- Update roborazzi to v1.12.0 by @slack-oss-bot in #1336
- Update gradle/wrapper-validation-action action to v3 by @slack-oss-bot in #1337
- Navigator - Guard against a goTo to the current screen by @stagg in #1331
- Update dependency me.saket.telephoto:zoomable-image-coil to v0.10.0 by @slack-oss-bot in #1339
- Update dependency co.touchlab.skie to v0.6.3 by @slack-oss-bot in #1338
- Update dependency mkdocs-material to v9.5.18 by @slack-oss-bot in #1340
- Update dependency co.touchlab.skie to v0.6.4 by @slack-oss-bot in #1341
- Update benchmark to v1.2.4 by @slack-oss-bot in #1343
- Update compose.material to v1.6.6 by @slack-oss-bot in #1344
- Update compose.runtime to v1.6.6 by @slack-oss-bot in #1345
- Update dependency androidx.compose.animation:animation to v1.6.6 by @slack-oss-bot in #1347
- Update dependency androidx.compose.compiler:compiler to v1.5.12 by @slack-oss-bot in #1348
- Update dependency androidx.compose.foundation:foundation to v1.6.6 by @slack-oss-bot in #1349
- Update dependency androidx.compose:compose-bom to v2024.04.01 by @slack-oss-bot in #1350
- Update dependency androidx.datastore:datastore-preferences to v1.1.0 by @slack-oss-bot in #1351
- Update dependency com.willowtreeapps.assertk:assertk to v0.28.1 by @slack-oss-bot in https://github.com/slackhq/circuit/pu...
0.20.0
- New: Enable
RememberObserver
to work withrememberRetained
. - New: Add
Navigator.popRoot()
. extension (#1274) - Behavior change: Add a key to
CircuitContent
to keepUi
andPresenter
consistent. We already did this for presenters, this just makes it consistent for both. - [circuitx-android] Implement
ToastEffect
. - Fix: Fix
rememberImpressionNavigator()
not delegatingPopResult
. - Fix: Navigator - Pass
PopResult
toonRootPop()
. - Fix: Check
canRetainCheck
when savingRetainedStateRegistry
. - Enhancement: Improve error messaging when using assisted inject.
- Force
com.google.guava:listenablefuture
to1.0
to avoid conflicts with Guava. - Update compose-compiler to
1.5.10.1
. - Update coroutines to
1.8.0
. - Update to Compose Multiplatform
1.6.1
. - Update Android compose dependencies to
1.6.3
. - Update molecule to
1.4.1
. - Update dagger to
2.51
. - Update turbine to
1.1.0
. - Update uuid to
0.8.3
. - Update kotlin to
1.9.23
. - Update KSP to
1.9.23-1.0.19
.
Special thanks to @chrisbanes, @aschulz90, and @alexvanyo for contributing to this release!
What's Changed
- Add maxConcurrentDevices property by @ZacSweers in #1206
- Update lint to 8.4 alphas by @ZacSweers in #1207
- Update plugin emulatorWtf to v0.16.2 by @slack-oss-bot in #1211
- Update kotlinx.coroutines to v1.8.0 by @slack-oss-bot in #1212
- Enable RememberObserver to work with rememberRetained by @chrisbanes in #1210
- Update dependency com.google.truth:truth to v1.4.1 by @slack-oss-bot in #1213
- Update dependency org.jetbrains.compose.compiler:compiler to v1.5.8.1 by @slack-oss-bot in #1214
- Update roborazzi to v1.10.0 by @slack-oss-bot in #1216
- Update dependency me.saket.telephoto:zoomable-image-coil to v0.8.0 by @slack-oss-bot in #1215
- Update roborazzi to v1.10.1 by @slack-oss-bot in #1218
- Update dependency mkdocs-material to v9.5.10 by @slack-oss-bot in #1217
- Link post on EventListener by @ZacSweers in #1221
- Implement ToastEffect by @ZacSweers in #1223
- Update dependency future to v1 by @slack-oss-bot in #1232
- Update dependency androidx.test.uiautomator:uiautomator to v2.3.0 by @slack-oss-bot in #1231
- Update dependency androidx.compose:compose-bom to v2024.02.01 by @slack-oss-bot in #1230
- Update dependency androidx.compose.foundation:foundation to v1.6.2 by @slack-oss-bot in #1229
- Update dependency androidx.compose.compiler:compiler to v1.5.10 by @slack-oss-bot in #1228
- Update compose.ui to v1.6.2 by @slack-oss-bot in #1226
- Update dependency androidx.compose.animation:animation to v1.6.2 by @slack-oss-bot in #1227
- Update compose.runtime to v1.6.2 by @slack-oss-bot in #1225
- Update compose.material to v1.6.2 by @slack-oss-bot in #1224
- Update coil to v2.6.0 by @slack-oss-bot in #1234
- Update dependency mkdocs-material to v9.5.11 by @slack-oss-bot in #1233
- Update to CM 1.6 by @ZacSweers in #1209
- Update dagger to v2.51 by @slack-oss-bot in #1235
- Update molecule to v1.4.0 by @slack-oss-bot in #1238
- Update dependency dev.chrisbanes.material3:material3-window-size-class-multiplatform to v0.5.0 by @slack-oss-bot in #1237
- Update dependency com.jakewharton.mosaic to v0.11.0 by @slack-oss-bot in #1236
- Update molecule to v1.4.1 by @slack-oss-bot in #1240
- Fix rememberImpressionNavigator() not delegating PopResult by @aschulz90 in #1244
- Update coil3 to v3.0.0-alpha05 by @slack-oss-bot in #1241
- Update coil3 to v3.0.0-alpha06 by @slack-oss-bot in #1248
- Update dependency app.cash.paparazzi to v1.3.3 by @slack-oss-bot in #1255
- Update dependency python-dateutil to v2.9.0.post0 by @slack-oss-bot in #1251
- Update dependency com.google.truth:truth to v1.4.2 by @slack-oss-bot in #1249
- Update dependency mkdocs-material to v9.5.12 by @slack-oss-bot in #1242
- Update agp to v8.3.0 by @slack-oss-bot in #1250
- Add a
key
to CircuitContent to keep UI and Presenter consistent by @stagg in #1254 - Improve error messaging when using assisted inject by @ZacSweers in #1246
- Navigator - Pass
PopResult
toonRootPop
by @stagg in #1256 - Update dependency pymdown-extensions to v10.7.1 by @slack-oss-bot in #1258
- Update dependency org.jetbrains.dokka to v1.9.20 by @slack-oss-bot in #1257
- Update ktor to v2.3.9 by @slack-oss-bot in #1259
- Update dependency mkdocs-material to v9.5.13 by @slack-oss-bot in #1261
- Update dependency androidx.datastore:datastore-preferences to v1.1.0-beta02 by @slack-oss-bot in #1269
- Update dependency androidx.browser:browser to v1.8.0 by @slack-oss-bot in #1271
- Update dependency androidx.compose:compose-bom to v2024.02.02 by @slack-oss-bot in #1268
- Update compose.material to v1.6.3 by @slack-oss-bot in #1262
- Update dependency androidx.compose.animation:animation to v1.6.3 by @slack-oss-bot in #1265
- Update compose.ui to v1.6.3 by @slack-oss-bot in #1264
- Update dependency androidx.compose.foundation:foundation to v1.6.3 by @slack-oss-bot in #1266
- Update compose.runtime to v1.6.3 by @slack-oss-bot in #1263
- Update dependency androidx.compose.material3:material3 to v1.2.1 by @slack-oss-bot in #1267
- Update dependency app.cash.turbine:turbine to v1.1.0 by @slack-oss-bot in #1273
- Navigator popRoot extension by @stagg in #1274
- Update dependency co.touchlab.skie to v0.6.2 by @slack-oss-bot in #1277
- Check canRetainCheck when saving RetainedStateRegistry by @chrisbanes in #1276
- Update kotlin and KSP to v1.9.23 by @slack-oss-bot in #1270
- Update dependency org.jetbrains.compose.compiler:compiler to v1.5.10 by @slack-oss-bot in #1275
- Make RememberObservers in nested registries work by @chrisbanes in #1281
- Navigator - Change popRoot to keep the top screen as the root screen by @stagg in #1283
- Update dependency org.jetbrains.compose.compiler:compiler to v1.5.10.1 by @slack-oss-bot in #1278
- Update okio to v3.9.0 by @slack-oss-bot in #1280
- Update dependency com.vanniktech.maven.publish to v0.28.0 by @slack-oss-bot in #1279
- Update compose.jb to v1.6.1 by @slack-oss-bot in #1284
- Update dependency Markdown to v3.6 by @slack-oss-bot in #1286
- Update dependency com.benasher44:uuid to v0.8.3 by @slack-oss-bot in #1287
- Update dependency mkdocs-material to v9.5.14 by @slack-oss-bot in #1290
- Update roborazzi to v1.11.0 by @slack-oss-bot in #1291
- Use alternate guava workaround to avoid listenablefuture:9999.0 version dependency by @alexvanyo in #1289
New Contributors
- @aschulz90 made their first contribution in #1244
Full Changelog: 0.19.1...0.20.0
0.19.1
This is a small bug fix release focused SaveableBackStack
consistency and FakeNavigator
API improvements.
- Fix
FakeNavigator.awaitNextScreen()
not suspending. - Fix
FakeNavigator.resetRoot()
not returning the actual popped screens. - Make
Navigator.peekBackStack()
andNavigator.resetRoot()
returnImmutableList
. - Make
BackStack.popUntil()
return theImmutableList
of the popped records. - Support
FakeNavigator.peekBackStack()
return theImmutableList
of the popped records. - Strongly pop events and resetRoot events in
FakeNavigator
. This should offer much more information about the events. - Use a real
BackStack
instance inFakeNavigator
+ allow for specifying a user-provided instance. - Require an initial root screen to construct
FakeNavigator
unless using a customBackStack
.- Note this slightly changes semantics, as now the root screen will not be recorded as the first
goTo
event.
- Note this slightly changes semantics, as now the root screen will not be recorded as the first
- Require an initial root screen (or list of screens) for
rememberSaveableBackStack()
. - Expose a top-level non-composable
Navigator()
factory function.
What's Changed
- Update dependency mkdocs-material to v9.5.9 by @slack-oss-bot in #1194
- Update okio to v3.8.0 by @slack-oss-bot in #1195
- Update dependency com.slack.eithernet:eithernet to v1.8.1 by @slack-oss-bot in #1198
- Significantly improve FakeNavigator + small API updates around it and Navigator by @ZacSweers in #1196
- Update baseline profiles by @slack-oss-bot in #1205
Full Changelog: 0.19.0...0.19.1