From 86f4ed16f3c3d9e6be77bdf41169b173265a81d2 Mon Sep 17 00:00:00 2001 From: Chaohui Wang Date: Tue, 11 Jun 2024 14:00:04 +0800 Subject: [PATCH] Fix preferred apn not selected when back from edit When back from edit page, preferred apn and apn list will both refresh, if apn list refresh happens later, it will clear the preferred apn. Saved the latest preferred apn into mPreferredApnKey to fix. Bug: 257316932 Test: manual Change-Id: I62f9cbd5847b7edb834c815cdecc089e0764a8c7 --- src/com/android/settings/network/apn/ApnSettings.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/com/android/settings/network/apn/ApnSettings.java b/src/com/android/settings/network/apn/ApnSettings.java index 5249eb27f22..2debba1d99a 100644 --- a/src/com/android/settings/network/apn/ApnSettings.java +++ b/src/com/android/settings/network/apn/ApnSettings.java @@ -99,6 +99,8 @@ public class ApnSettings extends RestrictedSettingsFragment private UserManager mUserManager; private int mSubId; private PreferredApnRepository mPreferredApnRepository; + @Nullable + private String mPreferredApnKey; private String mMvnoType; private String mMvnoMatchData; @@ -175,6 +177,7 @@ public class ApnSettings extends RestrictedSettingsFragment }); mPreferredApnRepository.collectPreferredApn(viewLifecycleOwner, (preferredApn) -> { + mPreferredApnKey = preferredApn; final PreferenceGroup apnPreferenceList = findPreference(APN_LIST); for (int i = 0; i < apnPreferenceList.getPreferenceCount(); i++) { ApnPreference apnPreference = (ApnPreference) apnPreferenceList.getPreference(i); @@ -259,6 +262,7 @@ public class ApnSettings extends RestrictedSettingsFragment ((type == null) || type.contains(ApnSetting.TYPE_DEFAULT_STRING)); pref.setDefaultSelectable(defaultSelectable); if (defaultSelectable) { + pref.setIsChecked(key.equals(mPreferredApnKey)); apnList.add(pref); } else { mmsApnList.add(pref);