From b97b16da9106fe5a5abd4aca71262790175595bb Mon Sep 17 00:00:00 2001 From: Meng Wang Date: Mon, 27 Jun 2016 16:26:33 -0700 Subject: [PATCH] WiFiCallingSettings: "Update Emergency Address" shouldn't be disabled. Bug: 29875773 Change-Id: I3a0277c865c12793ffd9039a9724a1a253b461c9 --- .../android/settings/WifiCallingSettings.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/WifiCallingSettings.java b/src/com/android/settings/WifiCallingSettings.java index d1464d32369..7484b84804c 100644 --- a/src/com/android/settings/WifiCallingSettings.java +++ b/src/com/android/settings/WifiCallingSettings.java @@ -96,12 +96,24 @@ public class WifiCallingSettings extends SettingsPreferenceFragment 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 @@ public class WifiCallingSettings extends SettingsPreferenceFragment 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 @@ public class WifiCallingSettings extends SettingsPreferenceFragment preferenceScreen.removePreference(mButtonWfcMode); preferenceScreen.removePreference(mUpdateAddress); } - preferenceScreen.setEnabled(mEditableWfcMode); } @Override