Skip to content

Releases: freeletics/khonshu

0.13.0

14 Mar 09:07
45accc7
Compare
Choose a tag to compare

Navigator

  • Added proguard rules to not obfuscate the names of NavRoute, NavRoot and ActivityRoute
    subclasses.

Whetstone

  • The state and sendAction parameters in annotated composables are now optional and only need
    to be specified if they are needed
  • The state and sendAction parameters of annotated composables can now have different names
  • Automatically discover ViewRenderer.Factory subclass nested inside the annotated ViewRenderer
    and removed the now obsolete rendererFactory parameter

0.12.0

13 Feb 16:12
cc7c7dd
Compare
Choose a tag to compare

Navigator

  • Added docs for deep link support.
  • Internal changes and refactorings.

Whetstone

  • BREAKING simplified integration with the navigator library
    • removed the @NavDestination annotation
    • added @ComposeDestination and @RendererDestination as replacements
    • these new annotations also replace @ComposeScreen/@ComposeFragment/@RendererFragment so
      that always just one Whetstone annotation is needed per screen
    • route and scope are combined into a route parameter which removes the need to define scope
      classes, the NavRoute or NavRoot serves both purposes
    • the previous point means that the same route will also need to be used in any place that that
      requires scope markers like @ScopeTo, @ContributesTo or @ContributesBinding
  • New AppScope scope marker class. This can be used as the scope marker for an app level component.
    All whetstone annotations use it as default value for parentScope and destinationScope, so those
    two don't need to be explicitly specified anymore after adopint AppScope.
  • Fixed compiler warning produced by generated code.
  • Generated Fragments for compose now use DisposeOnViewTreeLifecycleDestroyed.

StateMachine

  • added Kotlin/JS as target

0.11.0

06 Feb 13:09
947af96
Compare
Choose a tag to compare

Navigator

  • new navigator-testing artifact to test NavEventNavigator, see docs
  • NavEvent and other APIs that were marked as visible for testing are now marked as internal
  • compose navigation APIs are not annotated with ExperimentalMaterialNavigationApi anymore

StateMachine

  • new state-machine-testing artifact, see docs

Whetstone

  • support for Anvil 2.4.4
  • injecting into Composable functions now supports generic types
  • added docs for Closeable support which allows cleaning up resources
  • Internal: clean up and streamline code in the code generator

0.10.1

13 Jan 09:15
0073d36
Compare
Choose a tag to compare

Navigator

  • fix crash when DeepLink contains an ActivityRoute

0.10.0

10 Jan 09:35
5578590
Compare
Choose a tag to compare

Navigator

  • added support for handling deep links, see DeepLink and DeepLinkHandler (more docs coming soon)
  • navigateToRoot now has a saveCurrentRootState parameter which defaults to true (matches the previous implicit behavior). Can be set to false to clear the current back stack.
  • navigateBackTo now does not allow passing a NavRoot as target anymore. Use navigateToRoot<...>(false, false) instead
  • ActivityRoute is now always Parcelable and has been split into 2 sub-classes/interfaces InternalActivityRoute for Activity classes inside the app and ExternalActivityRoute for Intents that leave the app
  • PermissionResult is now a sealed class instead of an enum class. The DENIED and DENIED_FOREVER values were merged into a single Denied subclass that has a showRationale boolean property. This being false would match the old denied forever value. The reason for this change is that Denied with showRationale being false does not necessarily mean denied forever on newer platform versions, it could also mean that the first ever permission prompt was dismissed without making a choice.
  • Make a few APIs that were not meant to be public internal or mark them as such
  • Internal: share more code between the compose and fragment implementations
  • Internal: unify handling of permission results and activity results

Whetstone

  • Remove dependency on AndroidX navigation. Whetstone’s navigation artifacts now only rely on our own navigator APIs
  • Internal: Stop generating view models for each annotated screen. Instead use a runtime class to hold on to components