Added mechanism to merge voice & baseline ServiceState objects.

Needed in the context of separate phones handling baseline connectivity
and voice connectivity (e.g. IMS).

Bug: 17627405
Change-Id: Ifb5a6ea11f6350090b989408e9eed80958d8558b
This commit is contained in:
Etan Cohen
2014-09-23 16:03:44 -07:00
parent 6e2bba7d34
commit dcc0736c43

View File

@@ -861,4 +861,23 @@ public class ServiceState implements Parcelable {
|| radioTechnology == RIL_RADIO_TECHNOLOGY_EVDO_B
|| radioTechnology == RIL_RADIO_TECHNOLOGY_EHRPD;
}
/**
* Returns a merged ServiceState consisting of the base SS with voice settings from the
* voice SS. The voice SS is only used if it is IN_SERVICE (otherwise the base SS is returned).
* @hide
* */
public static ServiceState mergeServiceStates(ServiceState baseSs, ServiceState voiceSs) {
if (voiceSs.mVoiceRegState != STATE_IN_SERVICE) {
return baseSs;
}
ServiceState newSs = new ServiceState(baseSs);
// voice overrides
newSs.mVoiceRegState = voiceSs.mVoiceRegState;
newSs.mIsEmergencyOnly = false; // only get here if voice is IN_SERVICE
return newSs;
}
}