Select or not Wi-Fi Calling preference as CarrierConfig

Some operators support Wi-Fi Calling only, not VoLTE.
They don't need "Cellular preferred" option.
In this case, set uneditalbe attribute for preferred preference.

Bug: 26299288
Change-Id: I58b44bbd85bb5ef436d32a5e34d7372532695b91
This commit is contained in:
Sungmin Choi
2015-12-23 14:24:52 +09:00
committed by Pavel Zhamaitsiak
parent 119d589ea5
commit 577add865a

View File

@@ -23,9 +23,11 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.IntentFilter; import android.content.IntentFilter;
import android.os.Bundle; import android.os.Bundle;
import android.os.PersistableBundle;
import android.preference.ListPreference; import android.preference.ListPreference;
import android.preference.Preference; import android.preference.Preference;
import android.preference.PreferenceScreen; import android.preference.PreferenceScreen;
import android.telephony.CarrierConfigManager;
import android.telephony.PhoneStateListener; import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import android.util.Log; import android.util.Log;
@@ -58,6 +60,7 @@ public class WifiCallingSettings extends SettingsPreferenceFragment
private TextView mEmptyView; private TextView mEmptyView;
private boolean mValidListener = false; private boolean mValidListener = false;
private boolean mEditableWfcMode = true;
private final PhoneStateListener mPhoneStateListener = new PhoneStateListener() { private final PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
/* /*
@@ -161,6 +164,15 @@ public class WifiCallingSettings extends SettingsPreferenceFragment
mIntentFilter = new IntentFilter(); mIntentFilter = new IntentFilter();
mIntentFilter.addAction(ImsManager.ACTION_IMS_REGISTRATION_ERROR); mIntentFilter.addAction(ImsManager.ACTION_IMS_REGISTRATION_ERROR);
CarrierConfigManager configManager = (CarrierConfigManager)
getSystemService(Context.CARRIER_CONFIG_SERVICE);
if (configManager != null) {
PersistableBundle b = configManager.getConfig();
if (b != null) {
mEditableWfcMode = b.getBoolean(CarrierConfigManager.KEY_EDITABLE_WFC_MODE_BOOL);
}
}
} }
@Override @Override
@@ -240,6 +252,7 @@ public class WifiCallingSettings extends SettingsPreferenceFragment
} else { } else {
preferenceScreen.removePreference(mButtonWfcMode); preferenceScreen.removePreference(mButtonWfcMode);
} }
preferenceScreen.setEnabled(mEditableWfcMode);
} }
@Override @Override