summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xapi/system-current.txt7
-rw-r--r--non-updatable-api/system-current.txt7
-rw-r--r--telephony/api/system-current.txt7
-rw-r--r--telephony/java/android/telephony/data/DataCallResponse.java72
4 files changed, 90 insertions, 3 deletions
diff --git a/api/system-current.txt b/api/system-current.txt
index 79fea6b9fc8d..6d13582bb49d 100755
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -11401,6 +11401,7 @@ package android.telephony.data {
method public int getCause();
method @NonNull public java.util.List<java.net.InetAddress> getDnsAddresses();
method @NonNull public java.util.List<java.net.InetAddress> getGatewayAddresses();
+ method public int getHandoverFailureMode();
method public int getId();
method @NonNull public String getInterfaceName();
method public int getLinkStatus();
@@ -11412,6 +11413,11 @@ package android.telephony.data {
method public int getSuggestedRetryTime();
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.telephony.data.DataCallResponse> CREATOR;
+ field public static final int HANDOVER_FAILURE_MODE_DO_FALLBACK = 2; // 0x2
+ field public static final int HANDOVER_FAILURE_MODE_LEGACY = 1; // 0x1
+ field public static final int HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_HANDOVER = 3; // 0x3
+ field public static final int HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_SETUP_NORMAL = 4; // 0x4
+ field public static final int HANDOVER_FAILURE_MODE_UNKNOWN = 0; // 0x0
field public static final int LINK_STATUS_ACTIVE = 2; // 0x2
field public static final int LINK_STATUS_DORMANT = 1; // 0x1
field public static final int LINK_STATUS_INACTIVE = 0; // 0x0
@@ -11425,6 +11431,7 @@ package android.telephony.data {
method @NonNull public android.telephony.data.DataCallResponse.Builder setCause(int);
method @NonNull public android.telephony.data.DataCallResponse.Builder setDnsAddresses(@NonNull java.util.List<java.net.InetAddress>);
method @NonNull public android.telephony.data.DataCallResponse.Builder setGatewayAddresses(@NonNull java.util.List<java.net.InetAddress>);
+ method @NonNull public android.telephony.data.DataCallResponse.Builder setHandoverFailureMode(int);
method @NonNull public android.telephony.data.DataCallResponse.Builder setId(int);
method @NonNull public android.telephony.data.DataCallResponse.Builder setInterfaceName(@NonNull String);
method @NonNull public android.telephony.data.DataCallResponse.Builder setLinkStatus(int);
diff --git a/non-updatable-api/system-current.txt b/non-updatable-api/system-current.txt
index 62a93b7d0ab6..419d40185655 100644
--- a/non-updatable-api/system-current.txt
+++ b/non-updatable-api/system-current.txt
@@ -10283,6 +10283,7 @@ package android.telephony.data {
method public int getCause();
method @NonNull public java.util.List<java.net.InetAddress> getDnsAddresses();
method @NonNull public java.util.List<java.net.InetAddress> getGatewayAddresses();
+ method public int getHandoverFailureMode();
method public int getId();
method @NonNull public String getInterfaceName();
method public int getLinkStatus();
@@ -10294,6 +10295,11 @@ package android.telephony.data {
method public int getSuggestedRetryTime();
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.telephony.data.DataCallResponse> CREATOR;
+ field public static final int HANDOVER_FAILURE_MODE_DO_FALLBACK = 2; // 0x2
+ field public static final int HANDOVER_FAILURE_MODE_LEGACY = 1; // 0x1
+ field public static final int HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_HANDOVER = 3; // 0x3
+ field public static final int HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_SETUP_NORMAL = 4; // 0x4
+ field public static final int HANDOVER_FAILURE_MODE_UNKNOWN = 0; // 0x0
field public static final int LINK_STATUS_ACTIVE = 2; // 0x2
field public static final int LINK_STATUS_DORMANT = 1; // 0x1
field public static final int LINK_STATUS_INACTIVE = 0; // 0x0
@@ -10307,6 +10313,7 @@ package android.telephony.data {
method @NonNull public android.telephony.data.DataCallResponse.Builder setCause(int);
method @NonNull public android.telephony.data.DataCallResponse.Builder setDnsAddresses(@NonNull java.util.List<java.net.InetAddress>);
method @NonNull public android.telephony.data.DataCallResponse.Builder setGatewayAddresses(@NonNull java.util.List<java.net.InetAddress>);
+ method @NonNull public android.telephony.data.DataCallResponse.Builder setHandoverFailureMode(int);
method @NonNull public android.telephony.data.DataCallResponse.Builder setId(int);
method @NonNull public android.telephony.data.DataCallResponse.Builder setInterfaceName(@NonNull String);
method @NonNull public android.telephony.data.DataCallResponse.Builder setLinkStatus(int);
diff --git a/telephony/api/system-current.txt b/telephony/api/system-current.txt
index d95e7a616081..ac88560dbbd9 100644
--- a/telephony/api/system-current.txt
+++ b/telephony/api/system-current.txt
@@ -873,6 +873,7 @@ package android.telephony.data {
method public int getCause();
method @NonNull public java.util.List<java.net.InetAddress> getDnsAddresses();
method @NonNull public java.util.List<java.net.InetAddress> getGatewayAddresses();
+ method public int getHandoverFailureMode();
method public int getId();
method @NonNull public String getInterfaceName();
method public int getLinkStatus();
@@ -884,6 +885,11 @@ package android.telephony.data {
method public int getSuggestedRetryTime();
method public void writeToParcel(android.os.Parcel, int);
field @NonNull public static final android.os.Parcelable.Creator<android.telephony.data.DataCallResponse> CREATOR;
+ field public static final int HANDOVER_FAILURE_MODE_DO_FALLBACK = 2; // 0x2
+ field public static final int HANDOVER_FAILURE_MODE_LEGACY = 1; // 0x1
+ field public static final int HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_HANDOVER = 3; // 0x3
+ field public static final int HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_SETUP_NORMAL = 4; // 0x4
+ field public static final int HANDOVER_FAILURE_MODE_UNKNOWN = 0; // 0x0
field public static final int LINK_STATUS_ACTIVE = 2; // 0x2
field public static final int LINK_STATUS_DORMANT = 1; // 0x1
field public static final int LINK_STATUS_INACTIVE = 0; // 0x0
@@ -897,6 +903,7 @@ package android.telephony.data {
method @NonNull public android.telephony.data.DataCallResponse.Builder setCause(int);
method @NonNull public android.telephony.data.DataCallResponse.Builder setDnsAddresses(@NonNull java.util.List<java.net.InetAddress>);
method @NonNull public android.telephony.data.DataCallResponse.Builder setGatewayAddresses(@NonNull java.util.List<java.net.InetAddress>);
+ method @NonNull public android.telephony.data.DataCallResponse.Builder setHandoverFailureMode(int);
method @NonNull public android.telephony.data.DataCallResponse.Builder setId(int);
method @NonNull public android.telephony.data.DataCallResponse.Builder setInterfaceName(@NonNull String);
method @NonNull public android.telephony.data.DataCallResponse.Builder setLinkStatus(int);
diff --git a/telephony/java/android/telephony/data/DataCallResponse.java b/telephony/java/android/telephony/data/DataCallResponse.java
index 242c2e979571..5ead8decdb63 100644
--- a/telephony/java/android/telephony/data/DataCallResponse.java
+++ b/telephony/java/android/telephony/data/DataCallResponse.java
@@ -67,6 +67,47 @@ public final class DataCallResponse implements Parcelable {
/** Indicates the data connection is active with physical link up. */
public static final int LINK_STATUS_ACTIVE = 2;
+ /** {@hide} */
+ @IntDef(prefix = "HANDOVER_FAILURE_MODE_", value = {
+ HANDOVER_FAILURE_MODE_LEGACY,
+ HANDOVER_FAILURE_MODE_DO_FALLBACK,
+ HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_HANDOVER,
+ HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_SETUP_NORMAL
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface HandoverFailureMode {}
+
+ /**
+ * Data handover failure mode is unknown.
+ */
+ public static final int HANDOVER_FAILURE_MODE_UNKNOWN = 0;
+
+ /**
+ * Perform fallback to the source data transport on data handover failure using
+ * the legacy logic, which is fallback if the fail cause is
+ * {@link DataFailCause#HANDOFF_PREFERENCE_CHANGED}.
+ */
+ public static final int HANDOVER_FAILURE_MODE_LEGACY = 1;
+
+ /**
+ * Perform fallback to the source data transport on data handover failure.
+ */
+ public static final int HANDOVER_FAILURE_MODE_DO_FALLBACK = 2;
+
+ /**
+ * Do not perform fallback to the source data transport on data handover failure.
+ * Frameworks should keep retrying handover by sending
+ * {@link DataService#REQUEST_REASON_HANDOVER} request to the underlying {@link DataService}.
+ */
+ public static final int HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_HANDOVER = 3;
+
+ /**
+ * Do not perform fallback to the source transport on data handover failure.
+ * Frameworks should retry setup a new data connection by sending
+ * {@link DataService#REQUEST_REASON_NORMAL} request to the underlying {@link DataService}.
+ */
+ public static final int HANDOVER_FAILURE_MODE_NO_FALLBACK_RETRY_SETUP_NORMAL = 4;
+
private final @DataFailureCause int mCause;
private final int mSuggestedRetryTime;
private final int mId;
@@ -80,6 +121,7 @@ public final class DataCallResponse implements Parcelable {
private final int mMtu;
private final int mMtuV4;
private final int mMtuV6;
+ private final @HandoverFailureMode int mHandoverFailureMode;
/**
* @param cause Data call fail cause. {@link DataFailCause#NONE} indicates no error.
@@ -126,14 +168,15 @@ public final class DataCallResponse implements Parcelable {
mPcscfAddresses = (pcscfAddresses == null)
? new ArrayList<>() : new ArrayList<>(pcscfAddresses);
mMtu = mMtuV4 = mMtuV6 = mtu;
+ mHandoverFailureMode = HANDOVER_FAILURE_MODE_LEGACY;
}
- /** @hide */
private DataCallResponse(@DataFailureCause int cause, int suggestedRetryTime, int id,
@LinkStatus int linkStatus, @ProtocolType int protocolType,
@Nullable String interfaceName, @Nullable List<LinkAddress> addresses,
@Nullable List<InetAddress> dnsAddresses, @Nullable List<InetAddress> gatewayAddresses,
- @Nullable List<InetAddress> pcscfAddresses, int mtu, int mtuV4, int mtuV6) {
+ @Nullable List<InetAddress> pcscfAddresses, int mtu, int mtuV4, int mtuV6,
+ @HandoverFailureMode int handoverFailureMode) {
mCause = cause;
mSuggestedRetryTime = suggestedRetryTime;
mId = id;
@@ -151,6 +194,7 @@ public final class DataCallResponse implements Parcelable {
mMtu = mtu;
mMtuV4 = mtuV4;
mMtuV6 = mtuV6;
+ mHandoverFailureMode = handoverFailureMode;
}
/** @hide */
@@ -173,6 +217,7 @@ public final class DataCallResponse implements Parcelable {
mMtu = source.readInt();
mMtuV4 = source.readInt();
mMtuV6 = source.readInt();
+ mHandoverFailureMode = source.readInt();
}
/**
@@ -262,6 +307,13 @@ public final class DataCallResponse implements Parcelable {
return mMtuV6;
}
+ /**
+ * @return The data handover failure mode.
+ */
+ public @HandoverFailureMode int getHandoverFailureMode() {
+ return mHandoverFailureMode;
+ }
+
@NonNull
@Override
public String toString() {
@@ -339,6 +391,7 @@ public final class DataCallResponse implements Parcelable {
dest.writeInt(mMtu);
dest.writeInt(mMtuV4);
dest.writeInt(mMtuV6);
+ dest.writeInt(mHandoverFailureMode);
}
public static final @android.annotation.NonNull Parcelable.Creator<DataCallResponse> CREATOR =
@@ -395,6 +448,8 @@ public final class DataCallResponse implements Parcelable {
private int mMtuV6;
+ private @HandoverFailureMode int mHandoverFailureMode = HANDOVER_FAILURE_MODE_LEGACY;
+
/**
* Default constructor for Builder.
*/
@@ -553,6 +608,17 @@ public final class DataCallResponse implements Parcelable {
}
/**
+ * Set data handover failure mode for the data call response.
+ *
+ * @param failureMode Handover failure mode.
+ * @return The same instance of the builder.
+ */
+ public @NonNull Builder setHandoverFailureMode(@HandoverFailureMode int failureMode) {
+ mHandoverFailureMode = failureMode;
+ return this;
+ }
+
+ /**
* Build the DataCallResponse.
*
* @return the DataCallResponse object.
@@ -560,7 +626,7 @@ public final class DataCallResponse implements Parcelable {
public @NonNull DataCallResponse build() {
return new DataCallResponse(mCause, mSuggestedRetryTime, mId, mLinkStatus,
mProtocolType, mInterfaceName, mAddresses, mDnsAddresses, mGatewayAddresses,
- mPcscfAddresses, mMtu, mMtuV4, mMtuV6);
+ mPcscfAddresses, mMtu, mMtuV4, mMtuV6, mHandoverFailureMode);
}
}
}