feat(wearos): Add onboarding flow, state hoisting, and navigation wiring#507
Merged
Conversation
- Update OnboardingScreen to accept click actions for calculating and viewing fees. - Extract StartCalculationButton and ViewFeesButton into dedicated Wear OS components. - Add string resources for both English and Spanish localizations. - Implement comprehensive UI tests for the onboarding screen and individual components using Compose HTML/JUnit4 rules.
…stScreen Hoists the ScalingLazyListState to CalculatorFeesListScreen parameters to improve testability and state management from the parent level. Updates the associated UI test to pass a remembered state.
Hoists the ScalingLazyListState parameter to OnboardingScreen to match the project's state-hoisting patterns and align with recent UI changes. Updates the corresponding instrumentation tests to provide a remembered list state.
Refactors NavigationHost to incorporate the new onboarding user flow. Reassigns the Home route destination to a new welcome screen and introduces explicit destinations and route definitions for Calculator and ViewFees.
…nto app navigation Connects the :features:wearos:onboarding module to the application build file. Updates WearAppContent to wire up the new OnboardingScreen and CalculatorFeesListScreen destinations within the NavigationHost, utilizing a shared scalingLazyListState.
Updates the documentation for the NavigationHost composable to accurately reflect the current parameters (home, calculatorInput, calculatorOutput, viewFees, and navController) and clarify its overall purpose.
…fix UI tests Refactors WearAppContent to accept isRound and scalingLazyListState as composable parameters with default values, improving testability and separation of concerns. Updates the corresponding KDoc documentation. Fixes SmartwatchActivityTest UI tests by ensuring the initial onboarding interaction (start_calculation_action_button click) is explicitly performed before validating the input screen contents.
- Fix Home.route assertion to match the updated "welcome" destination. - Add ViewFees.route assertion for "calculator_fees". - Add Calculator.route assertion for "calculator_input".
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🔀 Pull Request Information
Title
feat(wearos): Add onboarding flow, state hoisting, and navigation wiring
Description
This Pull Request introduces the complete Wear OS onboarding experience, optimizes state-hoisting for related feature screens, and rewires the application navigation to utilize the onboarding screen as the new application home entry point.
🛠️ What's Changed
🚀 New Features & UI
:features:wearos:onboardingmodule in the project structure.StartCalculationButtonandViewFeesButtoncomponents utilizingMaterial3for Wear OS.NavigationHostto feature the new welcome user flow (Home,Calculator, andViewFeesroutes).values-es) and default English (values).⚙️ Refactoring & Optimizations
OnboardingScreenandCalculatorFeesListScreento hoistScalingLazyListStateto their parameters. This aligns with Jetpack Compose best practices and simplifies parent-level state coordination.WearAppContentusing a shared layout list state.🧪 Quality Assurance
OnboardingScreenUiTestStartCalculationButtonUiTestViewFeesButtonUiTestCalculatorFeesListScreenUiTestto match new constructor states.📝 Reviewer Checklist