Merge "Import translations. DO NOT MERGE" into oc-mr1-dev
diff --git a/src/com/android/phone/MobileNetworkSettings.java b/src/com/android/phone/MobileNetworkSettings.java
index d9725d4..0290546 100644
--- a/src/com/android/phone/MobileNetworkSettings.java
+++ b/src/com/android/phone/MobileNetworkSettings.java
@@ -256,9 +256,18 @@
@Override
public void onCallStateChanged(int state, String incomingNumber) {
if (DBG) log("PhoneStateListener.onCallStateChanged: state=" + state);
- boolean enabled = (state == TelephonyManager.CALL_STATE_IDLE) &&
- ImsManager.isNonTtyOrTtyOnVolteEnabled
- (getActivity().getApplicationContext());
+
+ Activity activity = getActivity();
+ if (activity == null) {
+ return;
+ }
+
+ int subId = mPhone != null
+ ? mPhone.getSubId() : SubscriptionManager.INVALID_SUBSCRIPTION_ID;
+ PersistableBundle carrierConfig =
+ PhoneGlobals.getInstance().getCarrierConfigForSubId(subId);
+ boolean enabled = is4gLtePrefEnabled(activity.getApplicationContext(),
+ carrierConfig);
Preference pref = getPreferenceScreen().findPreference(BUTTON_4G_LTE_KEY);
if (pref != null) pref.setEnabled(enabled && hasActiveSubscriptions());
@@ -1014,12 +1023,8 @@
* but you do need to remember that this all needs to work when subscriptions
* change dynamically such as when hot swapping sims.
*/
- boolean canChange4glte =
- (mTelephonyManager.getCallState() == TelephonyManager.CALL_STATE_IDLE)
- && ImsManager.isNonTtyOrTtyOnVolteEnabled(
- activity.getApplicationContext())
- && carrierConfig.getBoolean(
- CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL);
+ boolean canChange4glte = is4gLtePrefEnabled(activity.getApplicationContext(),
+ carrierConfig);
boolean useVariant4glteTitle = carrierConfig.getBoolean(
CarrierConfigManager.KEY_ENHANCED_4G_LTE_TITLE_VARIANT_BOOL);
int enhanced4glteModeTitleId = useVariant4glteTitle ?
@@ -1225,6 +1230,13 @@
return true;
}
+ private boolean is4gLtePrefEnabled(Context context, PersistableBundle carrierConfig) {
+ return (mTelephonyManager.getCallState() == TelephonyManager.CALL_STATE_IDLE)
+ && ImsManager.isNonTtyOrTtyOnVolteEnabled(context)
+ && carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_EDITABLE_ENHANCED_4G_LTE_BOOL);
+ }
+
private class MyHandler extends Handler {
static final int MESSAGE_SET_PREFERRED_NETWORK_TYPE = 0;