From 638f12a6c81125ba19fdbad9eadc7fd9bc176d64 Mon Sep 17 00:00:00 2001 From: Ting Yu Date: Wed, 26 Aug 2020 14:34:22 +0800 Subject: [PATCH] Fix Text of VoLTE setting cannot be updated when SIM state is changed Text of setting menu for VoLTE should be changed from "VoLTE" to "4G Calling" if "show_4g_for_lte_data_icon_bool" is true. However, it is not changed in the following steps. 1. Turn Use SIM off on Mobile Network Setting and close Mobile Network Setting screen. 2. Open Mobile Network Setting screen again and turn Use SIM on. Root cause is that the carrier config value is loaded only when SIM's subid is changed. So, remove checking subId so that the carrier config value is updated. Additional fix: Removed checking #isModeMatched in # onStart because "4G calling" Setting was grayed out. It needs to listen to call state change regardless of display status of the preference because Preference may be switched even after the screen is displayed. Test: manual Test: make RunSettingsRoboTests \ ROBOTEST_FILTER=Enhanced4gBasePreferenceControllerTest Bug: 196030198 Change-Id: Ibf4d17aa493f69a3f00e35ae0e9d1419bd9e0d77 Merged-In: Ibf4d17aa493f69a3f00e35ae0e9d1419bd9e0d77 --- .../telephony/Enhanced4gBasePreferenceController.java | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java b/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java index 78c4036ab73..d8c528bf71a 100644 --- a/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java +++ b/src/com/android/settings/network/telephony/Enhanced4gBasePreferenceController.java @@ -77,9 +77,6 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc mPhoneStateListener = new PhoneCallStateListener(); } - if (mSubId == subId) { - return this; - } mSubId = subId; final PersistableBundle carrierConfig = getCarrierConfigForSubId(subId); if (carrierConfig == null) { @@ -130,7 +127,7 @@ public class Enhanced4gBasePreferenceController extends TelephonyTogglePreferenc @Override public void onStart() { - if (!isModeMatched() || (mPhoneStateListener == null)) { + if (mPhoneStateListener == null) { return; } mPhoneStateListener.register(mContext, mSubId);