From bf87d9ca64897918525c2953bacc277a06e9fd9c Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Sun, 25 Jan 2026 07:38:20 +0000 Subject: [PATCH] Refactor: Move name validation to OnboardingViewModel Moved the user name validation logic from OnboardingScreen (Composable) to OnboardingViewModel. Changed validation from isNotEmpty() to isNotBlank() to prevent saving whitespace-only names. This improves separation of concerns and testability. --- .../main/java/com/example/theloop/OnboardingViewModel.kt | 6 ++++-- .../java/com/example/theloop/ui/screens/OnboardingScreen.kt | 4 +--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/example/theloop/OnboardingViewModel.kt b/app/src/main/java/com/example/theloop/OnboardingViewModel.kt index cc63d54..d687b97 100644 --- a/app/src/main/java/com/example/theloop/OnboardingViewModel.kt +++ b/app/src/main/java/com/example/theloop/OnboardingViewModel.kt @@ -23,8 +23,10 @@ class OnboardingViewModel @Inject constructor( } fun saveName() { - viewModelScope.launch { - userPreferencesRepository.saveUserName(name.value) + if (name.value.isNotBlank()) { + viewModelScope.launch { + userPreferencesRepository.saveUserName(name.value) + } } } diff --git a/app/src/main/java/com/example/theloop/ui/screens/OnboardingScreen.kt b/app/src/main/java/com/example/theloop/ui/screens/OnboardingScreen.kt index 7103a82..04e93df 100644 --- a/app/src/main/java/com/example/theloop/ui/screens/OnboardingScreen.kt +++ b/app/src/main/java/com/example/theloop/ui/screens/OnboardingScreen.kt @@ -98,9 +98,7 @@ fun OnboardingScreen( Button(onClick = { if (currentStep == 0) { // Save Name - if (name.isNotEmpty()) { - viewModel.saveName() - } + viewModel.saveName() } if (currentStep < totalSteps - 1) {