Merge "Change to append subId to network selection related sharedPreferences." into lmp-mr1-dev
diff --git a/src/com/android/phone/CallFeaturesSetting.java b/src/com/android/phone/CallFeaturesSetting.java
index a97f5d0..eae9bfc 100644
--- a/src/com/android/phone/CallFeaturesSetting.java
+++ b/src/com/android/phone/CallFeaturesSetting.java
@@ -708,6 +708,9 @@
}
}
+ /**
+ * TODO: Refactor to make it easier to understand what's done in the different stages.
+ */
private void saveVoiceMailAndForwardingNumber(
String key, VoicemailProviderSettings newSettings) {
if (DBG) log("saveVoiceMailAndForwardingNumber: " + newSettings.toString());
@@ -715,8 +718,9 @@
mNewVMNumber = (mNewVMNumber == null) ? "" : mNewVMNumber;
mNewFwdSettings = newSettings.getForwardingSettings();
- // No fwd settings on CDMA
- if (mPhone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA) {
+ // No fwd settings on CDMA.
+ boolean isCdma = mPhone.getPhoneType() == PhoneConstants.PHONE_TYPE_CDMA;
+ if (isCdma) {
if (DBG) log("ignoring forwarding setting since this is CDMA phone");
mNewFwdSettings = VoicemailProviderSettings.NO_FORWARDING;
}
@@ -732,7 +736,9 @@
mVMChangeCompletedSuccessfully = false;
mFwdChangesRequireRollback = false;
mVMOrFwdSetError = 0;
- if (!key.equals(mPreviousVMProviderKey)) {
+
+ // Don't read call forwarding settings if CDMA. Call forwarding is not supported by CDMA.
+ if (!key.equals(mPreviousVMProviderKey) && !isCdma) {
mReadingSettingsForDefaultProvider =
mPreviousVMProviderKey.equals(VoicemailProviderListPreference.DEFAULT_KEY);
if (DBG) log("Reading current forwarding settings");
@@ -813,7 +819,7 @@
if (mReadingSettingsForDefaultProvider) {
VoicemailProviderSettingsUtil.save(mPhone.getContext(),
VoicemailProviderListPreference.DEFAULT_KEY,
- new VoicemailProviderSettings(this.mOldVmNumber, mForwardingReadResults));
+ new VoicemailProviderSettings(mOldVmNumber, mForwardingReadResults));
mReadingSettingsForDefaultProvider = false;
}
saveVoiceMailAndForwardingNumberStage2();
@@ -825,8 +831,7 @@
mExpectedChangeResultReasons = new HashSet<Integer>();
}
- // Called after we are done saving the previous forwarding settings if
- // we needed.
+ // Called after we are done saving the previous forwarding settings if we needed.
private void saveVoiceMailAndForwardingNumberStage2() {
mForwardingChangeResults = null;
mVoicemailChangeResult = null;
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 268cf25..9eb0b0b 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -2234,6 +2234,24 @@
&& mTelephonySharedPreferences.getBoolean(PREF_ENABLE_VIDEO_CALLING, true);
}
+ /**
+ * Returns the unique device ID of phone, for example, the IMEI for
+ * GSM and the MEID for CDMA phones. Return null if device ID is not available.
+ *
+ * <p>Requires Permission:
+ * {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
+ */
+ @Override
+ public String getDeviceId() {
+ enforceReadPermission();
+ final Phone phone = PhoneFactory.getPhone(0);
+ if (phone != null) {
+ return phone.getDeviceId();
+ } else {
+ return null;
+ }
+ }
+
/*
* {@hide}
* Returns the IMS Registration Status
diff --git a/src/com/android/services/telephony/TelephonyGlobals.java b/src/com/android/services/telephony/TelephonyGlobals.java
index 11c3c64..02ef639 100644
--- a/src/com/android/services/telephony/TelephonyGlobals.java
+++ b/src/com/android/services/telephony/TelephonyGlobals.java
@@ -21,6 +21,9 @@
import com.android.internal.telephony.Phone;
import com.android.internal.telephony.PhoneFactory;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* Singleton entry point for the telephony-services app. Initializes ongoing systems relating to
* PSTN calls. This is started when the device starts and will be restarted automatically
@@ -36,7 +39,8 @@
/** The application context. */
private final Context mContext;
- private TtyManager mTtyManager;
+ // For supporting MSIM phone, change Phone and TtyManager as 1 to 1
+ private List<TtyManager> mTtyManagers = new ArrayList<>();
/**
* Persists the specified parameters.
@@ -55,10 +59,10 @@
}
public void onCreate() {
- // TODO: Make this work with Multi-SIM devices
- Phone phone = PhoneFactory.getDefaultPhone();
- if (phone != null) {
- mTtyManager = new TtyManager(mContext, phone);
+ // Make this work with Multi-SIM devices
+ Phone[] phones = PhoneFactory.getPhones();
+ for (Phone phone : phones) {
+ mTtyManagers.add(new TtyManager(mContext, phone));
}
TelecomAccountRegistry.getInstance(mContext).setupOnBoot();
diff --git a/src/com/android/services/telephony/TtyManager.java b/src/com/android/services/telephony/TtyManager.java
index 6c8a495..a3aeeb2 100644
--- a/src/com/android/services/telephony/TtyManager.java
+++ b/src/com/android/services/telephony/TtyManager.java
@@ -122,13 +122,12 @@
private static int telecomModeToPhoneMode(int telecomMode) {
switch (telecomMode) {
+ // AT command only has 0 and 1, so mapping VCO
+ // and HCO to FULL
case TelecomManager.TTY_MODE_FULL:
- return Phone.TTY_MODE_FULL;
case TelecomManager.TTY_MODE_VCO:
- return Phone.TTY_MODE_VCO;
case TelecomManager.TTY_MODE_HCO:
- return Phone.TTY_MODE_HCO;
- case TelecomManager.TTY_MODE_OFF:
+ return Phone.TTY_MODE_FULL;
default:
return Phone.TTY_MODE_OFF;
}