Skip to content

Releases: freeletics/khonshu

0.35.0

29 Jan 14:48
0.35.0
f26dd9c

Choose a tag to compare

Navigation

  • The deep link Gradle plugin now supports being applied to projects with the
    com.android.kotlin.multiplatform.library plugin. It will also explicitly fail when being
    applied to a project with no compatible plugin.
  • Removed kotlinx.collections.immutable since it's not necessary anymore with strong skipping
    in compose. APIs that were expecting these are now just using plain interfaces like Set or List.
  • Added new com.freeletics.khonshu:deeplinks-script-jvm artifact that allows easy testing of defined deep links
    from the command line. See docs for more information.
  • Internal changes to use retain from Compose instead of ViewModel classes for
    making objects survive configuration changes.
  • Replace internal usages of LocalContext with LocalActivity.

Codegen

  • Added GlobalGraphProvider interface. This needs to be implemented by an app's Application
    class to provide the AppScope graph (or other graphs in a more complex hierarchy). Overriding
    getSystemService is not needed anymore.

0.34.4

19 Nov 11:10
5c92c2e

Choose a tag to compare

  • Add destinations parameter to buildIntent, buildTaskStack and buildPendingIntent.

0.34.3

19 Nov 08:16
7dbdea2

Choose a tag to compare

  • Fix crash when serializing empty NavigationResult instances.

0.34.2

17 Nov 16:04
46e560a

Choose a tag to compare

  • Resolve issues when using the navigation result APIs in Android host side tests, which had failures
    because of Bundle APIs being called but them not being mocked.

0.34.1

13 Nov 17:02
5e4f7a3

Choose a tag to compare

TextResource

  • Make TextResource Serializable so that it can be used in NavRoute.

0.34.0

12 Nov 13:34
77c79eb

Choose a tag to compare

Navigation

  • Switch from Parcelable to Serializable for saving routes. This means that
    routes now need to be annotated with @Serializable instead of @Parcelize

0.33.1

07 Nov 11:36
5b833f2

Choose a tag to compare

Navigation

  • Add optional startRoot parameter to TestHotNavigator.
  • Fix issue which caused handleDeepLink to fail in tests that use `TestHostNavigator.
  • Fix issue with awaitNavigationResult always failing

0.33.0

06 Nov 10:00
ef28867

Choose a tag to compare

Navigation

  • NavDestination is now NavDestination<T : BaseRoute>, from a consumer perspective
    the only change is that it now needs to be referenced as NavDestination<*>.
  • Moved com.freeletics.khonshu.navigation.ResultNavigator.Companion.registerForNavigationResult
    to com.freeletics.khonshu.navigation.registerForNavigationResult.
  • deliverNavigationResult is now an extension function and needs to be imported.
  • HostNavigator.handleDeepLink is now an extension function and needs to be imported.
  • Added LaunchInfo and Intent.asLaunchInfo() as abstraction around Intent to make
    testing easier and added an overload of handleDeepLink for it.
  • Removed backPresses and the testing related APIs. Use PredictiveBackHandler,
    BackHandler or the navigation-events APIs instead.
  • Improve reliability of navigation result APIs by ensuring that results
    are not delivered to a wrong entry on the back stack with the same
    route class.

Codegen

  • @NavHostActivity now provides LaunchInfo instead of Intent into the graph.
  • @NavDestination is now expecting DestinationNavigator instead of ActivityNavigator
    removing the need for an explicit binding.
  • Optimize performance by avoiding unneeded lookups of classes.
  • Fix an error that occurred for classed referenced in the codegen annotations which have a package name
    where one of the segments contains a soft Kotlin keyword.
  • Removed @SingleIn(T::class) annotation from generated GraphExtension(T::class) interfaces. It's implicitly
    added by Metro for the extension scope.

0.32.0

19 Aug 14:30
10c7335

Choose a tag to compare

Navigation

  • Removed ResultOwner, use NavigationResultRequest, ActivityResultRequest and
    PermissionResultRequest directly
  • The package of the following classes changed to com.freeletics.khonshu.activity:
    • ActivityRoute
    • ActivityNavigator
    • ActivityResultRequest
    • PermissionResultRequest

Codegen

  • Compatibility with Metro 0.6.0.
  • Replaced Metro @ContributesGraphExtension with the new @GraphExtension and
    @ContributesTo on the factory interface.

0.31.2

08 Aug 14:01
5850fb9

Choose a tag to compare

Navigation

  • Throw exception when navigating to a destination with a parent declared in @NavDestination
    that is not present in the current back stack. This avoids a later exception in the NavHost
    which is harder to debug because of not knowing how the back stack got into this state.