Fix cancel Radio button on confirmation auto-delete pop-up does not work correctly

Fix: 275801119
Test: atest HealthConnectControllerUITests
Change-Id: Id4269d3ba6e82f9e8194c998bfdff38ec592864e
diff --git a/apk/src/com/android/healthconnect/controller/autodelete/AutoDeleteFragment.kt b/apk/src/com/android/healthconnect/controller/autodelete/AutoDeleteFragment.kt
index b3c4d3e..364ff41 100644
--- a/apk/src/com/android/healthconnect/controller/autodelete/AutoDeleteFragment.kt
+++ b/apk/src/com/android/healthconnect/controller/autodelete/AutoDeleteFragment.kt
@@ -19,6 +19,7 @@
 import android.view.View
 import android.widget.Toast
 import androidx.fragment.app.activityViewModels
+import androidx.preference.Preference
 import androidx.preference.PreferenceGroup
 import com.android.healthconnect.controller.R
 import com.android.healthconnect.controller.autodelete.AutoDeleteConfirmationDialogFragment.Companion.AUTO_DELETE_CANCELLED_EVENT
@@ -26,6 +27,7 @@
 import com.android.healthconnect.controller.autodelete.AutoDeleteConfirmationDialogFragment.Companion.AUTO_DELETE_SAVED_EVENT
 import com.android.healthconnect.controller.autodelete.AutoDeleteConfirmationDialogFragment.Companion.NEW_AUTO_DELETE_RANGE_BUNDLE
 import com.android.healthconnect.controller.autodelete.AutoDeleteConfirmationDialogFragment.Companion.OLD_AUTO_DELETE_RANGE_BUNDLE
+import com.android.healthconnect.controller.autodelete.AutoDeleteRangePickerPreference.Companion.AUTO_DELETE_RANGE_PICKER_PREFERENCE_KEY
 import com.android.healthconnect.controller.autodelete.AutoDeleteRangePickerPreference.Companion.SET_TO_NEVER_EVENT
 import com.android.healthconnect.controller.shared.preference.HealthPreferenceFragment
 import com.android.healthconnect.controller.utils.logging.HealthConnectLogger
@@ -72,11 +74,22 @@
                     Toast.makeText(activity, R.string.default_error, Toast.LENGTH_LONG).show()
                 }
                 is AutoDeleteViewModel.AutoDeleteState.WithData -> {
-                    mAutoDeleteSection?.removeAll()
-                    val autoDeletePreference =
-                        AutoDeleteRangePickerPreference(
-                            requireContext(), childFragmentManager, state.autoDeleteRange, logger)
-                    mAutoDeleteSection?.addPreference(autoDeletePreference)
+                    if (mAutoDeleteSection?.findPreference<Preference>(
+                        AUTO_DELETE_RANGE_PICKER_PREFERENCE_KEY) == null) {
+                        val autoDeletePreference =
+                            AutoDeleteRangePickerPreference(
+                                requireContext(),
+                                childFragmentManager,
+                                state.autoDeleteRange,
+                                logger)
+                        mAutoDeleteSection?.addPreference(autoDeletePreference)
+                    } else {
+                        val autoDeletePreference =
+                            mAutoDeleteSection?.findPreference<Preference>(
+                                AUTO_DELETE_RANGE_PICKER_PREFERENCE_KEY)
+                                as AutoDeleteRangePickerPreference
+                        autoDeletePreference.updateAutoDeleteRange(state.autoDeleteRange)
+                    }
                 }
             }
         }
diff --git a/apk/src/com/android/healthconnect/controller/autodelete/AutoDeleteRangePickerPreference.kt b/apk/src/com/android/healthconnect/controller/autodelete/AutoDeleteRangePickerPreference.kt
index ebe4961..83bcb2e 100644
--- a/apk/src/com/android/healthconnect/controller/autodelete/AutoDeleteRangePickerPreference.kt
+++ b/apk/src/com/android/healthconnect/controller/autodelete/AutoDeleteRangePickerPreference.kt
@@ -41,12 +41,17 @@
 constructor(
     context: Context,
     private val childFragmentManager: FragmentManager,
-    private val autoDeleteRange: AutoDeleteRange,
+    private var autoDeleteRange: AutoDeleteRange,
     private val logger: HealthConnectLogger
 ) : Preference(context), RadioGroup.OnCheckedChangeListener {
 
     companion object {
         const val SET_TO_NEVER_EVENT = "SET_TO_NEVER_EVENT"
+        const val AUTO_DELETE_RANGE_PICKER_PREFERENCE_KEY = "auto_delete_range_picker"
+    }
+
+    init {
+        key = AUTO_DELETE_RANGE_PICKER_PREFERENCE_KEY
     }
 
     override fun onBindViewHolder(holder: PreferenceViewHolder?) {
@@ -139,4 +144,9 @@
     override fun onCheckedChanged(radioGroup: RadioGroup, checkedId: Int) {
         setToNeverOrAskConfirmation(checkedId)
     }
+
+    fun updateAutoDeleteRange(newAutoDeleteRange: AutoDeleteRange) {
+        autoDeleteRange = newAutoDeleteRange
+        notifyChanged()
+    }
 }