Adds automatically generated dependency graphs to the README.md files for the following feature modules:
- `:feature:bookmarks:api`
- `:feature:bookmarks:impl`
- `:feature:foryou:api`
- `:feature:foryou:impl`
This commit refactors the navigation implementation by renaming all `...Route` classes to `...NavKey`. This change provides more descriptive and consistent naming for navigation keys across the codebase.
Key changes include:
* Renamed `BookmarksRoute` to `BookmarksNavKey`
* Renamed `ForYouRoute` to `ForYouNavKey`
* Renamed `InterestsRoute` to `InterestsNavKey`
* Renamed `TopicRoute` to `TopicNavKey`
* Renamed `SearchRoute` to `SearchNavKey`
* Updated all associated feature modules, tests, and UI components to use the new `NavKey` names.
* Removed obsolete test utilities and mock providers related to the old navigation setup.
* Deleted outdated dependency graph images and their corresponding `README.md` files from feature modules.
This commit refactors the navigation state management by renaming `NiaNavigatorState` to `NavigationState` to make it more generic.
Specific changes include:
- Renamed `NiaNavigatorState` to `NavigationState`.
- Renamed `NiaNavigatorProvider` to `NavigationStateProvider`.
- Updated all usages of the renamed classes, including `NiaNavigator`, `NiaBackStackViewModel`, and various tests.
- Replaced the `getEntries()` extension function with `toEntries()`.
- Added numerous TODOs to identify areas for future improvement, such as removing dependencies on `SavedStateHandle` for navigation state, simplifying event handling in ViewModels, and documenting the new navigation components.
Made NiaNavigator a stateless class only responsibly for navigating and pop (modifying backStack).
Navigation state now lives in a new class called NiaNavigatorState.
The state of this class is saved and restored by ViewModel.
This is necessary for the app to build with Gradle 9.0.0, otherwise the
following Gradle error occurs:
java.lang.NoSuchMethodError: 'org.gradle.api.Project org.gradle.api.artifacts.ProjectDependency.getDependencyProject()'
at com.jraska.module.graph.assertion.GradleDependencyGraphFactory.listAllDependencies(GradleDependencyGraphFactory.kt:39)
This is due to jraska/modules-graph-assert#305.