Merge "Add Emergency service categories in ImsCallProfile"

This commit is contained in:
Shuo Qian
2018-12-27 22:03:45 +00:00
committed by Gerrit Code Review
3 changed files with 80 additions and 2 deletions

View File

@@ -5873,6 +5873,7 @@ package android.telephony.ims {
method public android.os.Bundle getCallExtras(); method public android.os.Bundle getCallExtras();
method public int getCallType(); method public int getCallType();
method public static int getCallTypeFromVideoState(int); method public static int getCallTypeFromVideoState(int);
method public int getEmergencyServiceCategories();
method public android.telephony.ims.ImsStreamMediaProfile getMediaProfile(); method public android.telephony.ims.ImsStreamMediaProfile getMediaProfile();
method public int getRestrictCause(); method public int getRestrictCause();
method public int getServiceType(); method public int getServiceType();
@@ -5885,6 +5886,7 @@ package android.telephony.ims {
method public void setCallExtraBoolean(java.lang.String, boolean); method public void setCallExtraBoolean(java.lang.String, boolean);
method public void setCallExtraInt(java.lang.String, int); method public void setCallExtraInt(java.lang.String, int);
method public void setCallRestrictCause(int); method public void setCallRestrictCause(int);
method public void setEmergencyServiceCategories(int);
method public void updateCallExtras(android.telephony.ims.ImsCallProfile); method public void updateCallExtras(android.telephony.ims.ImsCallProfile);
method public void updateCallType(android.telephony.ims.ImsCallProfile); method public void updateCallType(android.telephony.ims.ImsCallProfile);
method public void updateMediaProfile(android.telephony.ims.ImsCallProfile); method public void updateMediaProfile(android.telephony.ims.ImsCallProfile);

View File

@@ -17,6 +17,7 @@
package android.telephony.emergency; package android.telephony.emergency;
import android.annotation.IntDef; import android.annotation.IntDef;
import android.annotation.NonNull;
import android.hardware.radio.V1_4.EmergencyNumberSource; import android.hardware.radio.V1_4.EmergencyNumberSource;
import android.hardware.radio.V1_4.EmergencyServiceCategory; import android.hardware.radio.V1_4.EmergencyServiceCategory;
import android.os.Parcel; import android.os.Parcel;
@@ -196,7 +197,7 @@ public final class EmergencyNumber implements Parcelable, Comparable<EmergencyNu
private final int mEmergencyNumberSourceBitmask; private final int mEmergencyNumberSourceBitmask;
/** @hide */ /** @hide */
public EmergencyNumber(String number, String countryIso, public EmergencyNumber(@NonNull String number, @NonNull String countryIso,
int emergencyServiceCategories, int emergencyServiceCategories,
int emergencyNumberSources) { int emergencyNumberSources) {
this.mNumber = number; this.mNumber = number;
@@ -403,7 +404,7 @@ public final class EmergencyNumber implements Parcelable, Comparable<EmergencyNu
* 0 if both have equal display priority. * 0 if both have equal display priority.
*/ */
@Override @Override
public int compareTo(EmergencyNumber emergencyNumber) { public int compareTo(@NonNull EmergencyNumber emergencyNumber) {
if (this.getDisplayPriorityScore() if (this.getDisplayPriorityScore()
> emergencyNumber.getDisplayPriorityScore()) { > emergencyNumber.getDisplayPriorityScore()) {
return -1; return -1;

View File

@@ -23,6 +23,8 @@ import android.os.Bundle;
import android.os.Parcel; import android.os.Parcel;
import android.os.Parcelable; import android.os.Parcelable;
import android.telecom.VideoProfile; import android.telecom.VideoProfile;
import android.telephony.emergency.EmergencyNumber;
import android.telephony.emergency.EmergencyNumber.EmergencyServiceCategories;
import android.util.Log; import android.util.Log;
import com.android.internal.telephony.PhoneConstants; import com.android.internal.telephony.PhoneConstants;
@@ -294,6 +296,28 @@ public final class ImsCallProfile implements Parcelable {
@UnsupportedAppUsage @UnsupportedAppUsage
public @CallRestrictCause int mRestrictCause = CALL_RESTRICT_CAUSE_NONE; public @CallRestrictCause int mRestrictCause = CALL_RESTRICT_CAUSE_NONE;
/**
* The emergency service categories, only valid if {@link #getServiceType} returns
* {@link #SERVICE_TYPE_EMERGENCY}
*
* If valid, the value is the bitwise-OR combination of the following constants:
* <ol>
* <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_UNSPECIFIED} </li>
* <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_POLICE} </li>
* <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_AMBULANCE} </li>
* <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_FIRE_BRIGADE} </li>
* <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_MARINE_GUARD} </li>
* <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_MOUNTAIN_RESCUE} </li>
* <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_MIEC} </li>
* <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_AIEC} </li>
* </ol>
*
* Reference: 3gpp 23.167, Section 6 - Functional description;
* 3gpp 22.101, Section 10 - Emergency Calls.
*/
private @EmergencyServiceCategories int mEmergencyServiceCategories =
EmergencyNumber.EMERGENCY_SERVICE_CATEGORY_UNSPECIFIED;
/** /**
* Extras associated with this {@link ImsCallProfile}. * Extras associated with this {@link ImsCallProfile}.
* <p> * <p>
@@ -495,6 +519,7 @@ public final class ImsCallProfile implements Parcelable {
out.writeInt(mCallType); out.writeInt(mCallType);
out.writeBundle(filteredExtras); out.writeBundle(filteredExtras);
out.writeParcelable(mMediaProfile, 0); out.writeParcelable(mMediaProfile, 0);
out.writeInt(mEmergencyServiceCategories);
} }
private void readFromParcel(Parcel in) { private void readFromParcel(Parcel in) {
@@ -502,6 +527,7 @@ public final class ImsCallProfile implements Parcelable {
mCallType = in.readInt(); mCallType = in.readInt();
mCallExtras = in.readBundle(); mCallExtras = in.readBundle();
mMediaProfile = in.readParcelable(ImsStreamMediaProfile.class.getClassLoader()); mMediaProfile = in.readParcelable(ImsStreamMediaProfile.class.getClassLoader());
mEmergencyServiceCategories = in.readInt();
} }
public static final Creator<ImsCallProfile> CREATOR = new Creator<ImsCallProfile>() { public static final Creator<ImsCallProfile> CREATOR = new Creator<ImsCallProfile>() {
@@ -710,4 +736,53 @@ public final class ImsCallProfile implements Parcelable {
private static boolean isVideoStateSet(int videoState, int videoStateToCheck) { private static boolean isVideoStateSet(int videoState, int videoStateToCheck) {
return (videoState & videoStateToCheck) == videoStateToCheck; return (videoState & videoStateToCheck) == videoStateToCheck;
} }
/**
* Set the emergency service categories. The set value is valid only if
* {@link #getServiceType} returns {@link #SERVICE_TYPE_EMERGENCY}
*
* If valid, the value is the bitwise-OR combination of the following constants:
* <ol>
* <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_UNSPECIFIED} </li>
* <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_POLICE} </li>
* <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_AMBULANCE} </li>
* <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_FIRE_BRIGADE} </li>
* <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_MARINE_GUARD} </li>
* <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_MOUNTAIN_RESCUE} </li>
* <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_MIEC} </li>
* <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_AIEC} </li>
* </ol>
*
* Reference: 3gpp 23.167, Section 6 - Functional description;
* 3gpp 22.101, Section 10 - Emergency Calls.
*/
public void setEmergencyServiceCategories(
@EmergencyServiceCategories int emergencyServiceCategories) {
mEmergencyServiceCategories = emergencyServiceCategories;
}
/**
* Get the emergency service categories, only valid if {@link #getServiceType} returns
* {@link #SERVICE_TYPE_EMERGENCY}
*
* @return the emergency service categories,
*
* If valid, the value is the bitwise-OR combination of the following constants:
* <ol>
* <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_UNSPECIFIED} </li>
* <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_POLICE} </li>
* <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_AMBULANCE} </li>
* <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_FIRE_BRIGADE} </li>
* <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_MARINE_GUARD} </li>
* <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_MOUNTAIN_RESCUE} </li>
* <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_MIEC} </li>
* <li>{@link EmergencyNumber#EMERGENCY_SERVICE_CATEGORY_AIEC} </li>
* </ol>
*
* Reference: 3gpp 23.167, Section 6 - Functional description;
* 3gpp 22.101, Section 10 - Emergency Calls.
*/
public @EmergencyServiceCategories int getEmergencyServiceCategories() {
return mEmergencyServiceCategories;
}
} }