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

Bug: 29875773
Change-Id: I3a0277c865c12793ffd9039a9724a1a253b461c9
This commit is contained in:
Meng Wang
2016-06-27 16:26:33 -07:00
parent 0aad74a387
commit b97b16da91

View File

@@ -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