Changelog¶
Pending changes¶
-
1.3.0¶
- #425 – Fixed: Up navigation should be properly propagated from Appyx to RIBs
- #384 – Updated: Compose BOM version and activity-compose version
22 Jun 2023
1.2.0¶
- #393 – Breaking change: Removed non-lazy implementations from
NodeCustomisationDirectory
- #393 – Breaking change: Removed
NodeCustomisationDirectoryImpl#put(vararg values: T)
due to potential uncaught bugs. Please call the reifiedput
extension function instead.
11 Apr 2023
1.1.2¶
- #391 – Added: Introduced
putLazy
andputSubDirectoryLazy
functions withinNodeCustomisationDirectoryImpl
viaLazyMutableNodeCustomisationDirectory
04 Apr 2023
1.1.1¶
- #386 – Updated: RIBs version to 0.39.0
31 Mar 2023
1.1.0¶
- #383 – Changed: Removed deprecated methods in Node, ParentNode and CombinedHandler classes
- #376 – Changed: Androidx lifecycle version updated to 2.6.1.
- #376 – Updated: Kotlin and Compose compiler version updated to 1.8.10 to align kotlin version used in androidx lifecycle
- #375 – Fixed: SaveableStateHolder does no longer save state for destroyed elements
27 Mar 2023
1.0.5¶
- #370 – Added:
RetainedInstanceStore
has two new functions which allows a developer to check whether an object is retained. These are:isRetainedByStoreId
andisRetained
.
04 Mar 2023
1.0.4¶
- #361 – Added: Introduced
RetainedInstanceStore
. This provides developers the ability to retain objects between configuration changes. - #336 – Updated: ChildAware API does not enforce Node subtypes only anymore, making it possible to use interfaces as public contracts for child nodes.
20 Feb 2023
1.0.3¶
- #325 – Fixed: Crash when using PermanentChild API in View testing
23 Jan 2023
1.0.2¶
- #287 – Added: Introduced a new
rememberCombinedHandler
implementation that takes an immutable list to avoid non-skippable compositions. The previous implementation is now deprecated. - #287 – Added:
ImmutableList
has been added to avoid non-skippable compositions. - #289 – Added: Introduced
interop-rx3
for RxJava 3 support. This has identical functionality tointerop-rx2
. - #298 – Updated: ChildView documentation.
TransitionDescriptor
generics has been renamed toNavTarget
andState
- #307 - Added:
Spotlight.current()
method to observe currently activeNavTarget
. - #314 – Fixed: Lifecycle is properly destroyed for suspended nodes.
10 Jan 2023
1.0.1¶
- #268 – Fixed:
PermanentChild
now does not crash in UI tests withComposeTestRule
. - #276 – Fixed: Back press handlers order is fixed for RIBs-Appyx integration.
- #272 – Changed:
attachWorkflow
renamed toattachChild
.executeWorkflow
renamed toexecuteAction
. - #272 – Added:
NodeReadyObserver
plugin to observe when theNode
is ready
22 Nov 2022
1.0.0¶
- #247 – Added: Added
EmptyNavModel
to core for cases in which aParentNode
only usesPermanentChild
. TheDummyNavModel
test class is deprecated. - #250 – Updated: Jetpack Compose to 1.3.0
31 Oct 2022
1.0.0-rc02¶
- #231 – Fixed: Changing transition handler at runtime does not redraw children
- #239 – Fixed: Fixed an issue with desynchronisation between NavModel and children's restoration process
- #218 – Updated:
androidx.core:core-ktx
to 1.9.0.
21 Oct 2022
1.0.0-rc01¶
- #214 – Breaking change:
AppyxViewTestRule
stops supporting automatic launching activity. Activities should be started explicitly in tests. - #197 – Breaking change:
ParentNodeView
does not implement plugin anymore.Node
instance is retrieved viaLocalComposition
.AppyxParentViewTestRule
andAbstractParentNodeView
have been removed. - #196 – Breaking change:
InteropBuilder
now should be supplied with AppyxIntegrationPointProvider
to attach it at the same time Appyx Node is created. - #185 – Breaking change:
Activity
must implementIntegrationPointProvider
and createIntegrationPoint
manually. Weak references usage has been removed. - #173 – Breaking change:
ActivityStarter
andPermissionRequester
now exposes coroutine based API instead ofminimal.reactive
. - #200 – Breaking change: Reordered the parameters for
ParentNode<NavTarget>.Child
andfun <N : Node> NodeHost
to meet Compose guidelines. - #43 – Updated: Jetpack Compose to
1.2.1
and Kotlin to1.7.10
. - #168 – Updated: Kotlin coroutines to
1.6.4
. - #171 – Updated: RIBs to
0.36.1
. - #212 – Updated:
Node
parent property is now public instead of private. - #174 – Fixed:
IntegrationPointExample
does not work with "do not keep activities" - #180 – Added: Ensure that
super.onSaveInstanceState()
was called to restore Node's state correctly
13 Oct 2022
1.0-alpha09¶
- #151 - Breaking change: Renamed
Routing
toNavTarget
. All related namings are affected (RoutingElement
,RoutingKey
, etc.) - #158 - Breaking change: Renamed
TransitionState
toState
in all NavModel impls. RenamedSTASHED_IN_BACK_STACK
toSTASHED
. - #146 - Breaking change: Removed
FragmentIntegrationPoint
. Clients should useActivityIntegrationPoint.getIntegrationPoint(context: Context)
to get integration point from Fragment - #160 - Breaking change: Renamed
navmodel-addons
tonavmodel-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 - Fixed:
androidx.appcompat:appcompat
from is exposed viaapi
withincom.bumble.appyx:core
. This prevents potential compilation bugs. - #143 - Fixed: Correctly exposed transitive dependencies that are part of the libraries ABI
- #162 - Fixed:
NodeTestHelper
'smoveTo
function can now move toLifecycle.State.DESTROYED
. The node itself has safeguards to prevent moving from destroyed state, and moving to destroyed is a valid test case. - #145 - Updated:
SpotlightSlider
now uses offset modifier with lambda - #159 - Added:
NodeHost
now takes modifier parameter to decorate the view of a root node - #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 - Added: Operations helpers
22 Sep 2022
1.0-alpha08¶
- #140 - Breaking change: Added
testing-ui-activity
module to avoid needing to addtesting-ui
as a debug implementation as part of instrumentation testing. See the linked issue for more details - #139 - Fixed:
IntegrationPoint
memory leak created byActivityIntegrationPoint
12 Sep 2022
1.0-alpha07¶
- #122 - Breaking change:
ChildEntry.ChildMode
is removed, now nodes are always created when a nav model changes (previously default behaviour) - #99 – Breaking change: Removed
IntegrationPointAppyxProvider
and madeActivityIntegrationPoint
's constructor private. UseActivityIntegrationPoint.createIntegrationPoint
. This uses a weak reference to keep track of the integration points, and will not introduce memory leaks. - #122 - Added: New
ChildEntry.KeepMode
that allows to destroy nodes that are currently not visible on the screen - #132 - Added: New
NodeComponentActivity
to extend when wanting to work withComponentActivity
as your base activity, eg when migrating from a project built from the Jetpack Compose template - #119 - Fixed: Lifecycle observers are invoked in incorrect order (child before parent)
- #62 - Fixed: Node is marked with stable annotation making some of the composable functions skippable
- #129 - Updated: Removed sealed interface from operations to allow client to define their own
- #133 - Updated:
NodeView
interface andParentNode
marked as stable improving amount of skippable composables
9 Sep 2022
1.0-alpha06¶
- #96 – Breaking change: Removed
InteractorTestHelper
. Please use Node tests instead of Interactor tests. - #99 – Breaking change: Modified package of
NodeConnector
andConnectable
- #99 – Added: Source
.rx2() to convert Source to io.reactivex.Observable - #107 – Fixed: Back press handlers are not properly registered on lifecycle events
26 Aug 2022
1.0-alpha05¶
- #83 – Breaking change:
RoutingSource
renamed toNavModel
. All subclasses, fields, package names, etc., any mentions of the word follow suit. - #91 – Fixed: Spotlight next and previous operations crash fix
19 Aug 2022
1.0-alpha04¶
- #39 – Added: Workflows implementation to support deeplinks
- #32 – Added:
BackPressHandler
plugin that allows to control back press behaviour viaandroidx.activity.OnBackPressedCallback
- #59 – Added: interface for
ParentNodeView<>
- #32 – Added: Jetpack Compose Navigation code sample
- #81 – Added: Support integration point for multiple roots
- #65 – Added:
InteropBuilderStub
andInteropSimpleBuilderStub
testing util classes - #47 – Updated: The
customisations
module is now pure Java/Kotlin. - #85 – Updated: Improved
InteropView
error messaging whenActivity
does not implementIntegrationPointAppyxProvider
- #88 – Updated: Moved
TestUpNavigationHandler
totesting-unit-common
18 Aug 2022
1.0-alpha03¶
- #38 – Added: JUnit5 support
2 Aug 2022
1.0-alpha02¶
- #19 – Fixed: Do not allow setting
Node.integrationPoint
on non-root nodes - #23 – Fixed: Integration point attached twice crash when using live literals
- #14 – Fixed: Transition interruptions bug
- #23 – Added: Unit test support
- #26 – Added: Publish snapshot versions
- #9 – Migrated: app-tree-utils into this repository
19 Jul 2022
1.0-alpha01¶
- Initial release
4 Jul 2022