Files
coco 723ce1af5c a
2026-07-03 15:12:48 +08:00

166 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Changelog
## Pending changes
- [#287](https://github.com/bumble-tech/appyx/pull/287) **Added**: Introduced a new `rememberCombinedHandler` implementation that takes an immutable list to avoid non-skippable compositions. The previous implementation is now deprecated.
- [#287](https://github.com/bumble-tech/appyx/pull/287) **Added**: `ImmutableList` has been added to avoid non-skippable compositions.
- [#289](https://github.com/bumble-tech/appyx/issues/289) **Added**: Introduced `interop-rx3` for RxJava 3 support. This has identical functionality to `interop-rx2`.
- [#298](https://github.com/bumble-tech/appyx/pulls/298) **Updated**: ChildView documentation. `TransitionDescriptor` generics has been renamed to `NavTarget` and `State`
- [#307](https://github.com/bumble-tech/appyx/pull/307) - **Added**: `Spotlight.current()` method to observe currently active `NavTarget.
---
## 1.0.1
- [#268](https://github.com/bumble-tech/appyx/pull/268) **Fixed**: `PermanentChild` now does not crash in UI tests with `ComposeTestRule`.
- [#276](https://github.com/bumble-tech/appyx/pull/276) **Fixed**: Back press handlers order is fixed for RIBs-Appyx integration.
- [#272](https://github.com/bumble-tech/appyx/pull/272) **Changed**: `attachWorkflow` renamed to `attachChild`. `executeWorkflow` renamed to `executeAction`.
- [#272](https://github.com/bumble-tech/appyx/pull/272) **Added**: `NodeReadyObserver` plugin to observe when the `Node` is ready
<div style="text-align: center"><small>22 Nov 2022</small></div>
---
## 1.0.0
- [#247](https://github.com/bumble-tech/appyx/pull/247) **Added**: Added `EmptyNavModel` to core for cases in which a `ParentNode` only uses `PermanentChild`. The `DummyNavModel` test class is deprecated.
- [#250](https://github.com/bumble-tech/appyx/pull/250) **Updated**: Jetpack Compose to 1.3.0
<div style="text-align: center"><small>31 Oct 2022</small></div>
---
## 1.0.0-rc02
- [#231](https://github.com/bumble-tech/appyx/pull/231) **Fixed**: Changing transition handler at runtime does not redraw children
- [#239](https://github.com/bumble-tech/appyx/pull/239) **Fixed**: Fixed an issue with desynchronisation between NavModel and children's restoration process
- [#218](https://github.com/bumble-tech/appyx/pull/218) **Updated**: `androidx.core:core-ktx` to 1.9.0.
<div style="text-align: center"><small>21 Oct 2022</small></div>
---
## 1.0.0-rc01
- [#214](https://github.com/bumble-tech/appyx/pull/214) **Breaking change**: `AppyxViewTestRule` stops supporting automatic launching activity. Activities should be started explicitly in tests.
- [#197](https://github.com/bumble-tech/appyx/pull/197) **Breaking change**: `ParentNodeView` does not implement plugin anymore. `Node` instance is retrieved via `LocalComposition`. `AppyxParentViewTestRule` and `AbstractParentNodeView` have been removed.
- [#196](https://github.com/bumble-tech/appyx/pull/196) **Breaking change**: `InteropBuilder` now should be supplied with Appyx `IntegrationPointProvider` to attach it at the same time Appyx Node is created.
- [#185](https://github.com/bumble-tech/appyx/issues/185) **Breaking change**: `Activity` must implement `IntegrationPointProvider` and create `IntegrationPoint` manually. Weak references usage has been removed.
- [#173](https://github.com/bumble-tech/appyx/pull/173) **Breaking change**: `ActivityStarter` and `PermissionRequester` now exposes coroutine based API instead of `minimal.reactive`.
- [#200](https://github.com/bumble-tech/appyx/pull/200) **Breaking change**: Reordered the parameters for `ParentNode<NavTarget>.Child` and `fun <N : Node> NodeHost` to meet Compose guidelines.
- [#43](https://github.com/bumble-tech/appyx/pull/43) **Updated**: Jetpack Compose to `1.2.1` and Kotlin to `1.7.10`.
- [#168](https://github.com/bumble-tech/appyx/pull/168) **Updated**: Kotlin coroutines to `1.6.4`.
- [#171](https://github.com/bumble-tech/appyx/pull/171) **Updated**: RIBs to `0.36.1`.
- [#212](https://github.com/bumble-tech/appyx/pull/212) **Updated**: `Node` parent property is now public instead of private.
- [#174](https://github.com/bumble-tech/appyx/issues/174) **Fixed**: `IntegrationPointExample` does not work with "do not keep activities"
- [#180](https://github.com/bumble-tech/appyx/pull/180) **Added**: Ensure that `super.onSaveInstanceState()` was called to restore Node's state correctly
<div style="text-align: center"><small>13 Oct 2022</small></div>
---
## 1.0-alpha09
- [#151](https://github.com/bumble-tech/appyx/issues/151) - **Breaking change**: Renamed `Routing` to `NavTarget`. All related namings are affected (`RoutingElement`, `RoutingKey`, etc.)
- [#158](https://github.com/bumble-tech/appyx/issues/158) - **Breaking change**: Renamed `TransitionState` to `State` in all NavModel impls. Renamed `STASHED_IN_BACK_STACK` to `STASHED`.
- [#146](https://github.com/bumble-tech/appyx/issues/146) - **Breaking change**: Removed `FragmentIntegrationPoint`. Clients should use `ActivityIntegrationPoint.getIntegrationPoint(context: Context)` to get integration point from Fragment
- [#160](https://github.com/bumble-tech/appyx/issues/160) - **Breaking change**: Renamed `navmodel-addons` to `navmodel-samples` and stopped publishing the binary. If you feel we should add any of the samples to the main codebase, please let us know!
- [#138](https://github.com/bumble-tech/appyx/pull/138) - **Fixed**: `androidx.appcompat:appcompat` from is exposed via `api` within `com.bumble.appyx:core`. This prevents potential compilation bugs.
- [#143](https://github.com/bumble-tech/appyx/issues/143) - **Fixed**: Correctly exposed transitive dependencies that are part of the libraries ABI
- [#162](https://github.com/bumble-tech/appyx/pull/162) - **Fixed**: `NodeTestHelper`'s `moveTo` function can now move to `Lifecycle.State.DESTROYED`. The node itself has safeguards to prevent moving from destroyed state, and moving to destroyed is a valid test case.
- [#145](https://github.com/bumble-tech/appyx/issues/145) - **Updated**: `SpotlightSlider` now uses offset modifier with lambda
- [#159](https://github.com/bumble-tech/appyx/pull/159) - **Added**: `NodeHost` now takes modifier parameter to decorate the view of a root node
- [#162](https://github.com/bumble-tech/appyx/pull/162) - **Added**: `disposeOnDestroyPlugin` extension has been added to interop-rx2. This will allow Rx2 code to be easily disposed when the node it belongs to is destroyed.
- [#161](https://github.com/bumble-tech/appyx/pull/161) - **Added**: Operations helpers
<div style="text-align: center"><small>22 Sep 2022</small></div>
---
## 1.0-alpha08
- [#140](https://github.com/bumble-tech/appyx/issues/140) - **Breaking change**: Added `testing-ui-activity` module to avoid needing to add `testing-ui` as a debug implementation as part of instrumentation testing. See the linked issue for more details
- [#139](https://github.com/bumble-tech/appyx/pull/139) - **Fixed**: `IntegrationPoint` memory leak created by `ActivityIntegrationPoint`
<div style="text-align: center"><small>12 Sep 2022</small></div>
---
## 1.0-alpha07
- [#122](https://github.com/bumble-tech/appyx/pull/122) - **Breaking change**: `ChildEntry.ChildMode` is removed, now nodes are always created when a nav model changes (previously default behaviour)
- [#99](https://github.com/bumble-tech/appyx/pull/99) **Breaking change**: Removed `IntegrationPointAppyxProvider` and made `ActivityIntegrationPoint`'s constructor private. Use `ActivityIntegrationPoint.createIntegrationPoint`. This uses a weak reference to keep track of the integration points, and will not introduce memory leaks.
- [#122](https://github.com/bumble-tech/appyx/pull/122) - **Added**: New `ChildEntry.KeepMode` that allows to destroy nodes that are currently not visible on the screen
- [#132](https://github.com/bumble-tech/appyx/pull/132) - **Added**: New `NodeComponentActivity` to extend when wanting to work with `ComponentActivity` as your base activity, eg when migrating from a project built from the Jetpack Compose template
- [#119](https://github.com/bumble-tech/appyx/pull/119) - **Fixed**: Lifecycle observers are invoked in incorrect order (child before parent)
- [#62](https://github.com/bumble-tech/appyx/pull/62) - **Fixed**: Node is marked with stable annotation making some of the composable functions skippable
- [#129](https://github.com/bumble-tech/appyx/pull/129) - **Updated**: Removed sealed interface from operations to allow client to define their own
- [#133](https://github.com/bumble-tech/appyx/pull/133) - **Updated**: `NodeView` interface and `ParentNode` marked as stable improving amount of skippable composables
<div style="text-align: center"><small>9 Sep 2022</small></div>
---
## 1.0-alpha06
- [#96](https://github.com/bumble-tech/appyx/pull/96) **Breaking change**: Removed `InteractorTestHelper`. Please use Node tests instead of Interactor tests.
- [#99](https://github.com/bumble-tech/appyx/pull/99) **Breaking change**: Modified package of `NodeConnector` and `Connectable`
- [#99](https://github.com/bumble-tech/appyx/pull/99) **Added**: Source<T>.rx2() to convert Source<T> to io.reactivex.Observable<T>
- [#107](https://github.com/bumble-tech/appyx/pull/107) **Fixed**: Back press handlers are not properly registered on lifecycle events
<div style="text-align: center"><small>26 Aug 2022</small></div>
---
## 1.0-alpha05
- [#83](https://github.com/bumble-tech/appyx/issues/83) **Breaking change**: `RoutingSource` renamed to `NavModel`. All subclasses, fields, package names, etc., any mentions of the word follow suit.
- [#91](https://github.com/bumble-tech/appyx/pull/91) **Fixed**: Spotlight next and previous operations crash fix
<div style="text-align: center"><small>19 Aug 2022</small></div>
---
## 1.0-alpha04
- [#39](https://github.com/bumble-tech/appyx/pull/39) **Added**: Workflows implementation to support deeplinks
- [#32](https://github.com/bumble-tech/appyx/pull/32) **Added**: `BackPressHandler` plugin that allows to control back press behaviour via `androidx.activity.OnBackPressedCallback`
- [#59](https://github.com/bumble-tech/appyx/issues/59) **Added**: interface for `ParentNodeView<>`
- [#32](https://github.com/bumble-tech/appyx/issues/69) **Added**: Jetpack Compose Navigation code sample
- [#81](https://github.com/bumble-tech/appyx/issues/81) **Added**: Support integration point for multiple roots
- [#65](https://github.com/bumble-tech/appyx/pull/65) **Added**: `InteropBuilderStub` and `InteropSimpleBuilderStub` testing util classes
- [#47](https://github.com/bumble-tech/appyx/issues/47) **Updated**: The `customisations` module is now pure Java/Kotlin.
- [#85](https://github.com/bumble-tech/appyx/issues/85) **Updated**: Improved `InteropView` error messaging when `Activity` does not implement `IntegrationPointAppyxProvider`
- [#88](https://github.com/bumble-tech/appyx/issues/88) **Updated**: Moved `TestUpNavigationHandler` to `testing-unit-common`
<div style="text-align: center"><small>18 Aug 2022</small></div>
---
## 1.0-alpha03
- [#38](https://github.com/bumble-tech/appyx/pull/38) **Added**: JUnit5 support
<div style="text-align: center"><small>2 Aug 2022</small></div>
---
## 1.0-alpha02
- [#19](https://github.com/bumble-tech/appyx/pull/19) **Fixed**: Do not allow setting `Node.integrationPoint` on non-root nodes
- [#23](https://github.com/bumble-tech/appyx/pull/21) **Fixed**: Integration point attached twice crash when using live literals
- [#14](https://github.com/bumble-tech/appyx/issues/14) **Fixed**: Transition interruptions bug
- [#23](https://github.com/bumble-tech/appyx/pull/23) **Added**: Unit test support
- [#26](https://github.com/bumble-tech/appyx/issues/26) **Added**: Publish snapshot versions
- [#9](https://github.com/bumble-tech/appyx/pull/9) **Migrated**: [app-tree-utils](https://github.com/badoo/app-tree-utils) into this repository
<div style="text-align: center"><small>19 Jul 2022</small></div>
---
## 1.0-alpha01
- Initial release
<div style="text-align: center"><small>4 Jul 2022</small></div>