WiFiCallingSettings: "Update Emergency Address" shouldn't be disabled.

Bug: 29875773
Change-Id: I3a0277c865c12793ffd9039a9724a1a253b461c9
diff --git a/src/com/android/settings/WifiCallingSettings.java b/src/com/android/settings/WifiCallingSettings.java
index d1464d3..7484b84 100644
--- a/src/com/android/settings/WifiCallingSettings.java
+++ b/src/com/android/settings/WifiCallingSettings.java
@@ -96,12 +96,24 @@
 
             Preference pref = getPreferenceScreen().findPreference(BUTTON_WFC_MODE);
             if (pref != null) {
-                pref.setEnabled(isWfcEnabled
+                pref.setEnabled(isWfcEnabled && getEditableWfcMode(activity)
                         && (state == TelephonyManager.CALL_STATE_IDLE));
             }
         }
     };
 
+    private static boolean getEditableWfcMode(Context context) {
+        CarrierConfigManager configManager = (CarrierConfigManager)
+                context.getSystemService(Context.CARRIER_CONFIG_SERVICE);
+        if (configManager != null) {
+            PersistableBundle b = configManager.getConfig();
+            if (b != null) {
+                return b.getBoolean(CarrierConfigManager.KEY_EDITABLE_WFC_MODE_BOOL);
+            }
+        }
+        return true;
+    }
+
     private final OnPreferenceClickListener mUpdateAddressListener =
             new OnPreferenceClickListener() {
                 /*
@@ -346,7 +358,7 @@
 
     private void updateButtonWfcMode(Context context, boolean wfcEnabled, int wfcMode) {
         mButtonWfcMode.setSummary(getWfcModeSummary(context, wfcMode));
-        mButtonWfcMode.setEnabled(wfcEnabled);
+        mButtonWfcMode.setEnabled(wfcEnabled && mEditableWfcMode);
 
         final PreferenceScreen preferenceScreen = getPreferenceScreen();
         boolean updateAddressEnabled = (getCarrierActivityIntent(context) != null);
@@ -361,7 +373,6 @@
             preferenceScreen.removePreference(mButtonWfcMode);
             preferenceScreen.removePreference(mUpdateAddress);
         }
-        preferenceScreen.setEnabled(mEditableWfcMode);
     }
 
     @Override