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