diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/onboarding/OnboardingViewModel.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/onboarding/OnboardingViewModel.java index 0ce88998..61bbd091 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/onboarding/OnboardingViewModel.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/onboarding/OnboardingViewModel.java @@ -62,6 +62,11 @@ public void setDefaultTab(String value) { prefs.edit().putString(context.getString(R.string.key_default_tab), value).apply(); } + public String getDefaultTab() { + String[] values = context.getResources().getStringArray(R.array.preference_default_tab_values); + return prefs.getString(context.getString(R.string.key_default_tab), values[0]); + } + public void setBottomNavLabels(String value) { prefs.edit().putString(context.getString(R.string.key_bottom_navigation_bar_labels), value).apply(); } diff --git a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/onboarding/StartPageFragment.java b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/onboarding/StartPageFragment.java index 2c392d0e..c4ebb3b2 100644 --- a/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/onboarding/StartPageFragment.java +++ b/app/src/main/java/com/d4rk/androidtutorials/java/ui/screens/onboarding/StartPageFragment.java @@ -48,7 +48,17 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat binding.optionSecond.radioButton.setId(View.generateViewId()); binding.optionThird.radioButton.setId(View.generateViewId()); - selectOption(0); + String[] values = getResources().getStringArray(R.array.preference_default_tab_values); + String savedValue = viewModel.getDefaultTab(); + int selectedIndex = 0; + for (int i = 0; i < values.length; i++) { + if (values[i].equals(savedValue)) { + selectedIndex = i; + break; + } + } + + selectOption(selectedIndex); binding.cardFirst.setOnClickListener(v -> selectOption(0)); binding.cardSecond.setOnClickListener(v -> selectOption(1)); @@ -63,17 +73,23 @@ private void selectOption(int index) { binding.optionFirst.radioButton.setChecked(index == 0); binding.optionSecond.radioButton.setChecked(index == 1); binding.optionThird.radioButton.setChecked(index == 2); + + if (viewModel != null) { + String[] values = getResources().getStringArray(R.array.preference_default_tab_values); + if (index >= 0 && index < values.length) { + viewModel.setDefaultTab(values[index]); + } + } } public void saveSelection() { - String[] values = getResources().getStringArray(R.array.preference_default_tab_values); - String value = values[0]; if (binding.optionSecond.radioButton.isChecked()) { - value = values[1]; + selectOption(1); } else if (binding.optionThird.radioButton.isChecked()) { - value = values[2]; + selectOption(2); + } else { + selectOption(0); } - viewModel.setDefaultTab(value); } @Override