Skip to content

Commit 1a1805c

Browse files
authored
Fix: Settings toggle is reset on config change (#6111)
Task/Issue URL: https://app.asana.com/1/137249556945/project/1207418217763355/task/1210337463408658?focus=true ### Description The toggle's view state that gets restored after a configuration change triggers the `OnCheckChanged` listeners and resets the saved values on settings screens that use it. This PR disables the view state saving, which fixes the issue. ### Steps to test this PR _General settings_ - [x] Go to Settings -> General - [x] Change one of the toggles - [x] Rotate the device - [x] Notice the toggle stays the same _Duck.AI settings_ - [x] Go to Settings -> Duck.AI - [x] Change one of the toggles - [x] Rotate the device - [x] Notice the toggle stays the same ### UI changes Before [Screen_recording_20250521_151134.webm](https://github.com/user-attachments/assets/8745ac50-3e5a-471d-87ab-d026a1a22d31) After [Screen_recording_20250521_150543.webm](https://github.com/user-attachments/assets/7b477bec-4ab9-490d-9ae3-2512b6e8a715)
1 parent cdb38a2 commit 1a1805c

File tree

2 files changed

+2
-13
lines changed

2 files changed

+2
-13
lines changed

app/src/main/java/com/duckduckgo/app/generalsettings/GeneralSettingsActivity.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -100,11 +100,7 @@ class GeneralSettingsActivity : DuckDuckGoActivity() {
100100
}
101101

102102
private fun configureUiEventHandlers() {
103-
binding.autocompleteToggle.setOnCheckedChangeListener(autocompleteToggleListener)
104-
binding.autocompleteRecentlyVisitedSitesToggle.setOnCheckedChangeListener(autocompleteRecentlyVisitedSitesToggleListener)
105-
binding.voiceSearchToggle.setOnCheckedChangeListener(voiceSearchChangeListener)
106103
binding.showOnAppLaunchButton.setOnClickListener(showOnAppLaunchClickListener)
107-
binding.maliciousToggle.setOnCheckedChangeListener(maliciousSiteProtectionToggleListener)
108104
}
109105

110106
private fun observeViewModel() {

duckchat/duckchat-impl/src/main/java/com/duckduckgo/duckchat/impl/ui/DuckChatSettingsActivity.kt

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -88,26 +88,19 @@ class DuckChatSettingsActivity : DuckDuckGoActivity() {
8888

8989
setupToolbar(binding.includeToolbar.toolbar)
9090

91-
configureUiEventHandlers()
9291
observeViewModel()
9392

9493
pixel.fire(DUCK_CHAT_SETTINGS_DISPLAYED)
9594
}
9695

97-
private fun configureUiEventHandlers() {
98-
binding.userEnabledDuckChatToggle.setOnCheckedChangeListener(userEnabledDuckChatToggleListener)
99-
binding.showDuckChatInMenuToggle.setOnCheckedChangeListener(menuToggleListener)
100-
binding.showDuckChatInAddressBarToggle.setOnCheckedChangeListener(addressBarToggleListener)
101-
}
102-
10396
private fun observeViewModel() {
10497
viewModel.viewState
105-
.flowWithLifecycle(lifecycle, Lifecycle.State.CREATED)
98+
.flowWithLifecycle(lifecycle, Lifecycle.State.RESUMED)
10699
.onEach { renderViewState(it) }
107100
.launchIn(lifecycleScope)
108101

109102
viewModel.commands
110-
.flowWithLifecycle(lifecycle, Lifecycle.State.STARTED)
103+
.flowWithLifecycle(lifecycle, Lifecycle.State.CREATED)
111104
.onEach { processCommand(it) }
112105
.launchIn(lifecycleScope)
113106
}

0 commit comments

Comments
 (0)