From d3602b12eefbeafd6b8ecbf25d0b54d850265466 Mon Sep 17 00:00:00 2001 From: Jack Yu Date: Tue, 8 Jun 2021 10:56:09 -0700 Subject: [PATCH] Added service temporarily unavailable support Added a mechanism for underlying data service to report service temporarily unavailable. In this case, frameworks uses the configured retry timer to retry establishing data connection again. Fix: 184122463 Test: atest DataConnectionTest Change-Id: I57705b720b6438d8f9f0076f83decc1c17782f6b --- telephony/java/android/telephony/DataFailCause.java | 8 ++++++++ .../java/android/telephony/data/DataServiceCallback.java | 5 +++++ 2 files changed, 13 insertions(+) diff --git a/telephony/java/android/telephony/DataFailCause.java b/telephony/java/android/telephony/DataFailCause.java index 4d5b6ace39abd..88efe1f6a4a7f 100644 --- a/telephony/java/android/telephony/DataFailCause.java +++ b/telephony/java/android/telephony/DataFailCause.java @@ -1069,6 +1069,13 @@ public final class DataFailCause { */ public static final int NO_DEFAULT_DATA = 0x10008; + /** + * Data service is temporarily unavailable. + * + * @hide + */ + public static final int SERVICE_TEMPORARILY_UNAVAILABLE = 0x10009; + private static final Map sFailCauseMap; static { sFailCauseMap = new HashMap<>(); @@ -1500,6 +1507,7 @@ public final class DataFailCause { sFailCauseMap.put(HANDOVER_FAILED, "HANDOVER_FAILED"); sFailCauseMap.put(DUPLICATE_CID, "DUPLICATE_CID"); sFailCauseMap.put(NO_DEFAULT_DATA, "NO_DEFAULT_DATA"); + sFailCauseMap.put(SERVICE_TEMPORARILY_UNAVAILABLE, "SERVICE_TEMPORARILY_UNAVAILABLE"); } private DataFailCause() { diff --git a/telephony/java/android/telephony/data/DataServiceCallback.java b/telephony/java/android/telephony/data/DataServiceCallback.java index 363e47a6d2424..d0827159b98d4 100644 --- a/telephony/java/android/telephony/data/DataServiceCallback.java +++ b/telephony/java/android/telephony/data/DataServiceCallback.java @@ -63,6 +63,11 @@ public class DataServiceCallback { public static final int RESULT_ERROR_BUSY = 3; /** Request sent in illegal state */ public static final int RESULT_ERROR_ILLEGAL_STATE = 4; + /** + * Service is temporarily unavailable. Frameworks should retry the request again. + * @hide + */ + public static final int RESULT_ERROR_TEMPORARILY_UNAVAILABLE = 5; private final IDataServiceCallback mCallback;