Disable "Preferred Network Type" setting in call
When we are in a call and the user tries to change
the "Preferred Network Type", the modem may throw
an error. To prevent this, disable the UI option while
in a call.
Bug: 70937729
Test: Manual - incoming call in menu, enable world mode
Change-Id: I3f872c343986a6495d379ae8439938906ba3daab
diff --git a/src/com/android/phone/MobileNetworkSettings.java b/src/com/android/phone/MobileNetworkSettings.java
index 7a795ed..dcb0520 100644
--- a/src/com/android/phone/MobileNetworkSettings.java
+++ b/src/com/android/phone/MobileNetworkSettings.java
@@ -399,6 +399,7 @@
updateEnhanced4gLteState();
updateWiFiCallState();
updateVideoCallState();
+ updatePreferredNetworkType();
}
/**
@@ -1107,6 +1108,7 @@
}
updateEnhanced4gLteState();
+ updatePreferredNetworkType();
updateCallingCategory();
// Enable link to CMAS app settings depending on the value in config.xml.
@@ -1162,8 +1164,6 @@
R.string.enhanced_4g_lte_mode_title_variant :
R.string.enhanced_4g_lte_mode_title;
- mButtonPreferredNetworkMode.setEnabled(hasActiveSubscriptions);
- mButtonEnabledNetworks.setEnabled(hasActiveSubscriptions);
mButton4glte.setTitle(enhanced4glteModeTitleId);
mLteDataServicePref.setEnabled(hasActiveSubscriptions);
Preference ps;
@@ -1934,6 +1934,22 @@
}
}
+ private void updatePreferredNetworkType() {
+ boolean enabled = mTelephonyManager.getCallState(
+ mSubId) == TelephonyManager.CALL_STATE_IDLE
+ && hasActiveSubscriptions();
+ Log.i(LOG_TAG, "updatePreferredNetworkType: " + enabled);
+ // TODO: Disentangle enabled networks vs preferred network mode, it looks like
+ // both buttons are shown to the user as "Preferred network type" and the options change
+ // based on what looks like World mode.
+ if (mButtonEnabledNetworks != null) {
+ mButtonEnabledNetworks.setEnabled(enabled);
+ }
+ if (mButtonPreferredNetworkMode != null) {
+ mButtonPreferredNetworkMode.setEnabled(enabled);
+ }
+ }
+
private void updateCallingCategory() {
if (mCallingCategory == null) {
return;