Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 494bf5ef authored by sqian's avatar sqian
Browse files

Add Emergency service categories in ImsCallProfile

Bug: 112657134
Test: Treehugger
Change-Id: I5376140e8fceca7c0e2c9bae4a849005d2108760
parent fbc5842d
Loading
Loading
Loading
Loading
+2 −0
Original line number Original line Diff line number Diff line
@@ -6188,6 +6188,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();
@@ -6200,6 +6201,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);
+3 −2
Original line number Original line Diff line number Diff line
@@ -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;
+75 −0
Original line number Original line Diff line number Diff line
@@ -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;
    }
}
}