diff --git a/app/src/main/java/org/mozilla/fenix/settings/SyncPreference.kt b/app/src/main/java/org/mozilla/fenix/settings/SyncPreference.kt index 376829002c..411936074f 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/SyncPreference.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/SyncPreference.kt @@ -32,6 +32,13 @@ class SyncPreference @JvmOverloads constructor( widgetLayoutResource = R.layout.preference_sync } + /** + * Updates the switch state. + * */ + internal fun setSwitchCheckedState(isChecked: Boolean) { + switchView?.isChecked = isChecked + } + override fun onBindViewHolder(holder: PreferenceViewHolder) { super.onBindViewHolder(holder) diff --git a/app/src/main/java/org/mozilla/fenix/settings/SyncPreferenceView.kt b/app/src/main/java/org/mozilla/fenix/settings/SyncPreferenceView.kt index b6e95d75cc..e117a1a11c 100644 --- a/app/src/main/java/org/mozilla/fenix/settings/SyncPreferenceView.kt +++ b/app/src/main/java/org/mozilla/fenix/settings/SyncPreferenceView.kt @@ -83,6 +83,7 @@ class SyncPreferenceView( setOnPreferenceChangeListener { _, newValue -> SyncEnginesStorage(context).setStatus(syncEngine, newValue as Boolean) + setSwitchCheckedState(newValue) true } } diff --git a/app/src/test/java/org/mozilla/fenix/settings/logins/SyncPreferenceViewTest.kt b/app/src/test/java/org/mozilla/fenix/settings/logins/SyncPreferenceViewTest.kt index 6e82593cec..643d298905 100644 --- a/app/src/test/java/org/mozilla/fenix/settings/logins/SyncPreferenceViewTest.kt +++ b/app/src/test/java/org/mozilla/fenix/settings/logins/SyncPreferenceViewTest.kt @@ -137,6 +137,7 @@ class SyncPreferenceViewTest { SyncEngine.Passwords to true ) every { anyConstructed().setStatus(any(), any()) } just Runs + every { syncPreference.setSwitchCheckedState(any()) } just Runs createView() @@ -155,6 +156,7 @@ class SyncPreferenceViewTest { SyncEngine.Passwords to false ) every { anyConstructed().setStatus(any(), any()) } just Runs + every { syncPreference.setSwitchCheckedState(any()) } just Runs createView()