Merge "Add Emergency Number Test Mode" am: 783400c390
am: 4c12798e56
Change-Id: I741e0a5899d9734bf35c50853cccb95211cb1d70
This commit is contained in:
@@ -6687,6 +6687,7 @@ package android.telephony.ims {
|
|||||||
method public int getServiceType();
|
method public int getServiceType();
|
||||||
method public static int getVideoStateFromCallType(int);
|
method public static int getVideoStateFromCallType(int);
|
||||||
method public static int getVideoStateFromImsCallProfile(android.telephony.ims.ImsCallProfile);
|
method public static int getVideoStateFromImsCallProfile(android.telephony.ims.ImsCallProfile);
|
||||||
|
method public boolean isEmergencyCallTesting();
|
||||||
method public boolean isVideoCall();
|
method public boolean isVideoCall();
|
||||||
method public boolean isVideoPaused();
|
method public boolean isVideoPaused();
|
||||||
method public static int presentationToOir(int);
|
method public static int presentationToOir(int);
|
||||||
@@ -6695,6 +6696,7 @@ package android.telephony.ims {
|
|||||||
method public void setCallExtraInt(String, int);
|
method public void setCallExtraInt(String, int);
|
||||||
method public void setCallRestrictCause(int);
|
method public void setCallRestrictCause(int);
|
||||||
method public void setEmergencyCallRouting(int);
|
method public void setEmergencyCallRouting(int);
|
||||||
|
method public void setEmergencyCallTesting(boolean);
|
||||||
method public void setEmergencyServiceCategories(int);
|
method public void setEmergencyServiceCategories(int);
|
||||||
method public void setEmergencyUrns(java.util.List<java.lang.String>);
|
method public void setEmergencyUrns(java.util.List<java.lang.String>);
|
||||||
method public void updateCallExtras(android.telephony.ims.ImsCallProfile);
|
method public void updateCallExtras(android.telephony.ims.ImsCallProfile);
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import android.telephony.Rlog;
|
|||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
@@ -176,6 +177,12 @@ public final class EmergencyNumber implements Parcelable, Comparable<EmergencyNu
|
|||||||
* Bit-field which indicates the number is from the platform-maintained database.
|
* Bit-field which indicates the number is from the platform-maintained database.
|
||||||
*/
|
*/
|
||||||
public static final int EMERGENCY_NUMBER_SOURCE_DATABASE = 1 << 4;
|
public static final int EMERGENCY_NUMBER_SOURCE_DATABASE = 1 << 4;
|
||||||
|
/**
|
||||||
|
* Bit-field which indicates the number is from test mode.
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public static final int EMERGENCY_NUMBER_SOURCE_TEST = 1 << 5;
|
||||||
/** Bit-field which indicates the number is from the modem config. */
|
/** Bit-field which indicates the number is from the modem config. */
|
||||||
public static final int EMERGENCY_NUMBER_SOURCE_MODEM_CONFIG =
|
public static final int EMERGENCY_NUMBER_SOURCE_MODEM_CONFIG =
|
||||||
EmergencyNumberSource.MODEM_CONFIG;
|
EmergencyNumberSource.MODEM_CONFIG;
|
||||||
@@ -326,6 +333,21 @@ public final class EmergencyNumber implements Parcelable, Comparable<EmergencyNu
|
|||||||
return mEmergencyServiceCategoryBitmask;
|
return mEmergencyServiceCategoryBitmask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the bitmask of emergency service categories of the emergency number for
|
||||||
|
* internal dialing.
|
||||||
|
*
|
||||||
|
* @return bitmask of the emergency service categories
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public @EmergencyServiceCategories int getEmergencyServiceCategoryBitmaskInternalDial() {
|
||||||
|
if (mEmergencyNumberSourceBitmask == EMERGENCY_NUMBER_SOURCE_DATABASE) {
|
||||||
|
return EMERGENCY_SERVICE_CATEGORY_UNSPECIFIED;
|
||||||
|
}
|
||||||
|
return mEmergencyServiceCategoryBitmask;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the emergency service categories of the emergency number.
|
* Returns the emergency service categories of the emergency number.
|
||||||
*
|
*
|
||||||
@@ -577,6 +599,7 @@ public final class EmergencyNumber implements Parcelable, Comparable<EmergencyNu
|
|||||||
emergencyNumberList.remove(i--);
|
emergencyNumberList.remove(i--);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Collections.sort(emergencyNumberList);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -613,6 +636,12 @@ public final class EmergencyNumber implements Parcelable, Comparable<EmergencyNu
|
|||||||
if (first.getEmergencyCallRouting() != second.getEmergencyCallRouting()) {
|
if (first.getEmergencyCallRouting() != second.getEmergencyCallRouting()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
// Never merge two numbers if one of them is from test mode but the other one is not;
|
||||||
|
// This supports to remove a number from the test mode.
|
||||||
|
if (first.isFromSources(EMERGENCY_NUMBER_SOURCE_TEST)
|
||||||
|
^ second.isFromSources(EMERGENCY_NUMBER_SOURCE_TEST)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -638,4 +667,13 @@ public final class EmergencyNumber implements Parcelable, Comparable<EmergencyNu
|
|||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Validate Emergency Number address that only allows '0'-'9', '*', or '#'
|
||||||
|
*
|
||||||
|
* @hide
|
||||||
|
*/
|
||||||
|
public static boolean validateEmergencyNumberAddress(String address) {
|
||||||
|
return address.matches("[0-9*#]+");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -347,6 +347,9 @@ public final class ImsCallProfile implements Parcelable {
|
|||||||
private @EmergencyCallRouting int mEmergencyCallRouting =
|
private @EmergencyCallRouting int mEmergencyCallRouting =
|
||||||
EmergencyNumber.EMERGENCY_CALL_ROUTING_UNKNOWN;
|
EmergencyNumber.EMERGENCY_CALL_ROUTING_UNKNOWN;
|
||||||
|
|
||||||
|
/** Indicates if the call is for testing purpose */
|
||||||
|
private boolean mEmergencyCallTesting = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extras associated with this {@link ImsCallProfile}.
|
* Extras associated with this {@link ImsCallProfile}.
|
||||||
* <p>
|
* <p>
|
||||||
@@ -534,9 +537,10 @@ public final class ImsCallProfile implements Parcelable {
|
|||||||
+ ", callType=" + mCallType
|
+ ", callType=" + mCallType
|
||||||
+ ", restrictCause=" + mRestrictCause
|
+ ", restrictCause=" + mRestrictCause
|
||||||
+ ", mediaProfile=" + mMediaProfile.toString()
|
+ ", mediaProfile=" + mMediaProfile.toString()
|
||||||
+ ", emergencyServiceCategories=" + mEmergencyCallRouting
|
+ ", emergencyServiceCategories=" + mEmergencyServiceCategories
|
||||||
+ ", emergencyUrns=" + mEmergencyUrns
|
+ ", emergencyUrns=" + mEmergencyUrns
|
||||||
+ ", emergencyCallRouting=" + mEmergencyCallRouting + " }";
|
+ ", emergencyCallRouting=" + mEmergencyCallRouting
|
||||||
|
+ ", emergencyCallTesting=" + mEmergencyCallTesting + " }";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -554,6 +558,7 @@ public final class ImsCallProfile implements Parcelable {
|
|||||||
out.writeInt(mEmergencyServiceCategories);
|
out.writeInt(mEmergencyServiceCategories);
|
||||||
out.writeStringList(mEmergencyUrns);
|
out.writeStringList(mEmergencyUrns);
|
||||||
out.writeInt(mEmergencyCallRouting);
|
out.writeInt(mEmergencyCallRouting);
|
||||||
|
out.writeBoolean(mEmergencyCallTesting);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void readFromParcel(Parcel in) {
|
private void readFromParcel(Parcel in) {
|
||||||
@@ -564,6 +569,7 @@ public final class ImsCallProfile implements Parcelable {
|
|||||||
mEmergencyServiceCategories = in.readInt();
|
mEmergencyServiceCategories = in.readInt();
|
||||||
mEmergencyUrns = in.createStringArrayList();
|
mEmergencyUrns = in.createStringArrayList();
|
||||||
mEmergencyCallRouting = in.readInt();
|
mEmergencyCallRouting = in.readInt();
|
||||||
|
mEmergencyCallTesting = in.readBoolean();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static final Creator<ImsCallProfile> CREATOR = new Creator<ImsCallProfile>() {
|
public static final Creator<ImsCallProfile> CREATOR = new Creator<ImsCallProfile>() {
|
||||||
@@ -784,9 +790,11 @@ public final class ImsCallProfile implements Parcelable {
|
|||||||
* @hide
|
* @hide
|
||||||
*/
|
*/
|
||||||
public void setEmergencyCallInfo(EmergencyNumber num) {
|
public void setEmergencyCallInfo(EmergencyNumber num) {
|
||||||
setEmergencyServiceCategories(num.getEmergencyServiceCategoryBitmask());
|
setEmergencyServiceCategories(num.getEmergencyServiceCategoryBitmaskInternalDial());
|
||||||
setEmergencyUrns(num.getEmergencyUrns());
|
setEmergencyUrns(num.getEmergencyUrns());
|
||||||
setEmergencyCallRouting(num.getEmergencyCallRouting());
|
setEmergencyCallRouting(num.getEmergencyCallRouting());
|
||||||
|
setEmergencyCallTesting(num.getEmergencyNumberSourceBitmask()
|
||||||
|
== EmergencyNumber.EMERGENCY_NUMBER_SOURCE_TEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -842,6 +850,15 @@ public final class ImsCallProfile implements Parcelable {
|
|||||||
mEmergencyCallRouting = emergencyCallRouting;
|
mEmergencyCallRouting = emergencyCallRouting;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set if this is for testing emergency call, only valid if {@link #getServiceType} returns
|
||||||
|
* {@link #SERVICE_TYPE_EMERGENCY}.
|
||||||
|
*/
|
||||||
|
@VisibleForTesting
|
||||||
|
public void setEmergencyCallTesting(boolean isTesting) {
|
||||||
|
mEmergencyCallTesting = isTesting;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the emergency service categories, only valid if {@link #getServiceType} returns
|
* Get the emergency service categories, only valid if {@link #getServiceType} returns
|
||||||
* {@link #SERVICE_TYPE_EMERGENCY}
|
* {@link #SERVICE_TYPE_EMERGENCY}
|
||||||
@@ -892,4 +909,11 @@ public final class ImsCallProfile implements Parcelable {
|
|||||||
public @EmergencyCallRouting int getEmergencyCallRouting() {
|
public @EmergencyCallRouting int getEmergencyCallRouting() {
|
||||||
return mEmergencyCallRouting;
|
return mEmergencyCallRouting;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get if the emergency call is for testing purpose.
|
||||||
|
*/
|
||||||
|
public boolean isEmergencyCallTesting() {
|
||||||
|
return mEmergencyCallTesting;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ import android.telephony.ServiceState;
|
|||||||
import android.telephony.SignalStrength;
|
import android.telephony.SignalStrength;
|
||||||
import android.telephony.TelephonyHistogram;
|
import android.telephony.TelephonyHistogram;
|
||||||
import android.telephony.VisualVoicemailSmsFilterSettings;
|
import android.telephony.VisualVoicemailSmsFilterSettings;
|
||||||
|
import android.telephony.emergency.EmergencyNumber;
|
||||||
import android.telephony.ims.aidl.IImsCapabilityCallback;
|
import android.telephony.ims.aidl.IImsCapabilityCallback;
|
||||||
import android.telephony.ims.aidl.IImsConfig;
|
import android.telephony.ims.aidl.IImsConfig;
|
||||||
import android.telephony.ims.aidl.IImsConfigCallback;
|
import android.telephony.ims.aidl.IImsConfigCallback;
|
||||||
@@ -1801,6 +1802,16 @@ interface ITelephony {
|
|||||||
*/
|
*/
|
||||||
int setImsProvisioningString(int subId, int key, String value);
|
int setImsProvisioningString(int subId, int key, String value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update Emergency Number List for Test Mode.
|
||||||
|
*/
|
||||||
|
void updateEmergencyNumberListTestMode(int action, in EmergencyNumber num);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the full emergency number list for Test Mode.
|
||||||
|
*/
|
||||||
|
List<String> getEmergencyNumberListTestMode();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enable or disable a logical modem stack associated with the slotIndex.
|
* Enable or disable a logical modem stack associated with the slotIndex.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user