Update list preference value onStop

Instead of updating preference when the back button is clicked to make
sure the preference is updated when leaving the fragment.

Bug: 168266123
Test: Manual
Change-Id: Ib16e085ab1c037fdab68d02a7db4c756fde92a97
diff --git a/car-ui-lib/car-ui-lib/src/main/java/com/android/car/ui/preference/ListPreferenceFragment.java b/car-ui-lib/car-ui-lib/src/main/java/com/android/car/ui/preference/ListPreferenceFragment.java
index 348ec54..5a34dcd 100644
--- a/car-ui-lib/car-ui-lib/src/main/java/com/android/car/ui/preference/ListPreferenceFragment.java
+++ b/car-ui-lib/car-ui-lib/src/main/java/com/android/car/ui/preference/ListPreferenceFragment.java
@@ -55,17 +55,6 @@
     private ListPreference mPreference;
     private CarUiContentListItem mSelectedItem;
     private int mSelectedIndex = -1;
-    private final Toolbar.OnBackListener mOnBackListener = () -> {
-        if (mSelectedIndex >= 0 && mPreference != null) {
-            String entryValue = mPreference.getEntryValues()[mSelectedIndex].toString();
-
-            if (mPreference.callChangeListener(entryValue)) {
-                mPreference.setValue(entryValue);
-            }
-        }
-
-        return false;
-    };
 
     /**
      * Returns a new instance of {@link ListPreferenceFragment} for the {@link ListPreference} with
@@ -166,7 +155,6 @@
     @Override
     public void onStart() {
         super.onStart();
-        mToolbar.registerOnBackListener(mOnBackListener);
         Insets insets = CarUi.getInsets(getActivity());
         if (insets != null) {
             onCarUiInsetsChanged(insets);
@@ -176,7 +164,17 @@
     @Override
     public void onStop() {
         super.onStop();
-        mToolbar.unregisterOnBackListener(mOnBackListener);
+        updatePreference();
+    }
+
+    private void updatePreference() {
+        if (mSelectedIndex >= 0 && mPreference != null) {
+            String entryValue = mPreference.getEntryValues()[mSelectedIndex].toString();
+
+            if (mPreference.callChangeListener(entryValue)) {
+                mPreference.setValue(entryValue);
+            }
+        }
     }
 
     private ListPreference getListPreference() {
diff --git a/car-ui-lib/car-ui-lib/src/main/java/com/android/car/ui/preference/MultiSelectListPreferenceFragment.java b/car-ui-lib/car-ui-lib/src/main/java/com/android/car/ui/preference/MultiSelectListPreferenceFragment.java
index 1d4a3a2..44c5f43 100644
--- a/car-ui-lib/car-ui-lib/src/main/java/com/android/car/ui/preference/MultiSelectListPreferenceFragment.java
+++ b/car-ui-lib/car-ui-lib/src/main/java/com/android/car/ui/preference/MultiSelectListPreferenceFragment.java
@@ -55,13 +55,6 @@
     private CarUiMultiSelectListPreference mPreference;
     private Set<String> mNewValues;
     private ToolbarController mToolbar;
-    private final Toolbar.OnBackListener mOnBackListener = () -> {
-        if (mPreference.callChangeListener(mNewValues)) {
-            mPreference.setValues(mNewValues);
-        }
-
-        return false;
-    };
 
     /**
      * Returns a new instance of {@link MultiSelectListPreferenceFragment} for the {@link
@@ -161,7 +154,6 @@
     @Override
     public void onStart() {
         super.onStart();
-        mToolbar.registerOnBackListener(mOnBackListener);
         Insets insets = CarUi.getInsets(getActivity());
         if (insets != null) {
             onCarUiInsetsChanged(insets);
@@ -171,7 +163,13 @@
     @Override
     public void onStop() {
         super.onStop();
-        mToolbar.unregisterOnBackListener(mOnBackListener);
+        updatePreference();
+    }
+
+    private void updatePreference() {
+        if (mPreference.callChangeListener(mNewValues)) {
+            mPreference.setValues(mNewValues);
+        }
     }
 
     private CarUiMultiSelectListPreference getPreference() {