summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jack Yu <jackyu@google.com> 2018-01-20 19:41:00 -0800
committer Jack Yu <jackyu@google.com> 2018-01-22 15:04:33 -0800
commit2a4d0c8d5023f9af752d80a1cce96f391845f02c (patch)
tree45f6bab6413e38426f9904660a03c50a7c54a0d3
parent7e3b1832c461b751e5170434bbb5545a8d6b6e58 (diff)
Combined flags of data service requests into one reason param
Made the API flexible for future expansion. The two boolean flag 'reasonShutdown' and 'isHandover' are merged into the 'reason' params. Test: Manual bug: 64132030 Change-Id: I29a0ca6a7c3b897910f3bb6076f44315adc91893
-rw-r--r--api/system-current.txt7
-rw-r--r--telephony/java/android/telephony/data/DataService.java81
-rw-r--r--telephony/java/android/telephony/data/IDataService.aidl5
3 files changed, 61 insertions, 32 deletions
diff --git a/api/system-current.txt b/api/system-current.txt
index 38b17379186d..85ff207a86fe 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -4143,18 +4143,21 @@ package android.telephony.data {
method public abstract android.telephony.data.DataService.DataServiceProvider createDataServiceProvider(int);
field public static final java.lang.String DATA_SERVICE_EXTRA_SLOT_ID = "android.telephony.data.extra.SLOT_ID";
field public static final java.lang.String DATA_SERVICE_INTERFACE = "android.telephony.data.DataService";
+ field public static final int REQUEST_REASON_HANDOVER = 3; // 0x3
+ field public static final int REQUEST_REASON_NORMAL = 1; // 0x1
+ field public static final int REQUEST_REASON_SHUTDOWN = 2; // 0x2
}
public class DataService.DataServiceProvider {
ctor public DataService.DataServiceProvider(int);
- method public void deactivateDataCall(int, boolean, boolean, android.telephony.data.DataServiceCallback);
+ method public void deactivateDataCall(int, int, android.telephony.data.DataServiceCallback);
method public void getDataCallList(android.telephony.data.DataServiceCallback);
method public final int getSlotId();
method public final void notifyDataCallListChanged(java.util.List<android.telephony.data.DataCallResponse>);
method protected void onDestroy();
method public void setDataProfile(java.util.List<android.telephony.data.DataProfile>, boolean, android.telephony.data.DataServiceCallback);
method public void setInitialAttachApn(android.telephony.data.DataProfile, boolean, android.telephony.data.DataServiceCallback);
- method public void setupDataCall(int, android.telephony.data.DataProfile, boolean, boolean, boolean, android.net.LinkProperties, android.telephony.data.DataServiceCallback);
+ method public void setupDataCall(int, android.telephony.data.DataProfile, boolean, boolean, int, android.net.LinkProperties, android.telephony.data.DataServiceCallback);
}
public class DataServiceCallback {
diff --git a/telephony/java/android/telephony/data/DataService.java b/telephony/java/android/telephony/data/DataService.java
index ea0817551369..fa19ea069044 100644
--- a/telephony/java/android/telephony/data/DataService.java
+++ b/telephony/java/android/telephony/data/DataService.java
@@ -17,6 +17,7 @@
package android.telephony.data;
import android.annotation.CallSuper;
+import android.annotation.IntDef;
import android.annotation.SystemApi;
import android.app.Service;
import android.content.Intent;
@@ -32,6 +33,8 @@ import android.telephony.Rlog;
import android.telephony.SubscriptionManager;
import android.util.SparseArray;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.List;
@@ -56,6 +59,33 @@ public abstract class DataService extends Service {
public static final String DATA_SERVICE_INTERFACE = "android.telephony.data.DataService";
public static final String DATA_SERVICE_EXTRA_SLOT_ID = "android.telephony.data.extra.SLOT_ID";
+ /** {@hide} */
+ @IntDef(prefix = "REQUEST_REASON_", value = {
+ REQUEST_REASON_NORMAL,
+ REQUEST_REASON_HANDOVER,
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface SetupDataReason {}
+
+ /** {@hide} */
+ @IntDef(prefix = "REQUEST_REASON_", value = {
+ REQUEST_REASON_NORMAL,
+ REQUEST_REASON_SHUTDOWN,
+ REQUEST_REASON_HANDOVER,
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface DeactivateDataReason {}
+
+
+ /** The reason of the data request is normal */
+ public static final int REQUEST_REASON_NORMAL = 1;
+
+ /** The reason of the data request is device shutdown */
+ public static final int REQUEST_REASON_SHUTDOWN = 2;
+
+ /** The reason of the data request is IWLAN handover */
+ public static final int REQUEST_REASON_HANDOVER = 3;
+
private static final int DATA_SERVICE_INTERNAL_REQUEST_INITIALIZE_SERVICE = 1;
private static final int DATA_SERVICE_REQUEST_SETUP_DATA_CALL = 2;
private static final int DATA_SERVICE_REQUEST_DEACTIVATE_DATA_CALL = 3;
@@ -110,13 +140,14 @@ public abstract class DataService extends Service {
* @param dataProfile Data profile used for data call setup. See {@link DataProfile}
* @param isRoaming True if the device is data roaming.
* @param allowRoaming True if data roaming is allowed by the user.
- * @param isHandover True if the request is for IWLAN handover.
- * @param linkProperties If {@code isHandover} is true, this is the link properties of the
- * existing data connection, otherwise null.
+ * @param reason The reason for data setup. Must be {@link #REQUEST_REASON_NORMAL} or
+ * {@link #REQUEST_REASON_HANDOVER}.
+ * @param linkProperties If {@code reason} is {@link #REQUEST_REASON_HANDOVER}, this is the
+ * link properties of the existing data connection, otherwise null.
* @param callback The result callback for this request.
*/
public void setupDataCall(int accessNetworkType, DataProfile dataProfile, boolean isRoaming,
- boolean allowRoaming, boolean isHandover,
+ boolean allowRoaming, @SetupDataReason int reason,
LinkProperties linkProperties, DataServiceCallback callback) {
// The default implementation is to return unsupported.
callback.onSetupDataCallComplete(DataServiceCallback.RESULT_ERROR_UNSUPPORTED, null);
@@ -128,12 +159,12 @@ public abstract class DataService extends Service {
* provided callback to notify the platform.
*
* @param cid Call id returned in the callback of {@link DataServiceProvider#setupDataCall(
- * int, DataProfile, boolean, boolean, boolean, LinkProperties, DataServiceCallback)}.
- * @param reasonRadioShutDown True if the deactivate request reason is device shut down.
- * @param isHandover True if the request is for IWLAN handover.
+ * int, DataProfile, boolean, boolean, int, LinkProperties, DataServiceCallback)}.
+ * @param reason The reason for data deactivation. Must be {@link #REQUEST_REASON_NORMAL},
+ * {@link #REQUEST_REASON_SHUTDOWN} or {@link #REQUEST_REASON_HANDOVER}.
* @param callback The result callback for this request.
*/
- public void deactivateDataCall(int cid, boolean reasonRadioShutDown, boolean isHandover,
+ public void deactivateDataCall(int cid, @DeactivateDataReason int reason,
DataServiceCallback callback) {
// The default implementation is to return unsupported.
callback.onDeactivateDataCallComplete(DataServiceCallback.RESULT_ERROR_UNSUPPORTED);
@@ -219,32 +250,29 @@ public abstract class DataService extends Service {
public final DataProfile dataProfile;
public final boolean isRoaming;
public final boolean allowRoaming;
- public final boolean isHandover;
+ public final int reason;
public final LinkProperties linkProperties;
public final IDataServiceCallback callback;
SetupDataCallRequest(int accessNetworkType, DataProfile dataProfile, boolean isRoaming,
- boolean allowRoaming, boolean isHandover,
- LinkProperties linkProperties, IDataServiceCallback callback) {
+ boolean allowRoaming, int reason, LinkProperties linkProperties,
+ IDataServiceCallback callback) {
this.accessNetworkType = accessNetworkType;
this.dataProfile = dataProfile;
this.isRoaming = isRoaming;
this.allowRoaming = allowRoaming;
this.linkProperties = linkProperties;
- this.isHandover = isHandover;
+ this.reason = reason;
this.callback = callback;
}
}
private static final class DeactivateDataCallRequest {
public final int cid;
- public final boolean reasonRadioShutDown;
- public final boolean isHandover;
+ public final int reason;
public final IDataServiceCallback callback;
- DeactivateDataCallRequest(int cid, boolean reasonRadioShutDown, boolean isHandover,
- IDataServiceCallback callback) {
+ DeactivateDataCallRequest(int cid, int reason, IDataServiceCallback callback) {
this.cid = cid;
- this.reasonRadioShutDown = reasonRadioShutDown;
- this.isHandover = isHandover;
+ this.reason = reason;
this.callback = callback;
}
}
@@ -311,7 +339,7 @@ public abstract class DataService extends Service {
SetupDataCallRequest setupDataCallRequest = (SetupDataCallRequest) message.obj;
service.setupDataCall(setupDataCallRequest.accessNetworkType,
setupDataCallRequest.dataProfile, setupDataCallRequest.isRoaming,
- setupDataCallRequest.allowRoaming, setupDataCallRequest.isHandover,
+ setupDataCallRequest.allowRoaming, setupDataCallRequest.reason,
setupDataCallRequest.linkProperties,
new DataServiceCallback(setupDataCallRequest.callback));
@@ -321,8 +349,7 @@ public abstract class DataService extends Service {
DeactivateDataCallRequest deactivateDataCallRequest =
(DeactivateDataCallRequest) message.obj;
service.deactivateDataCall(deactivateDataCallRequest.cid,
- deactivateDataCallRequest.reasonRadioShutDown,
- deactivateDataCallRequest.isHandover,
+ deactivateDataCallRequest.reason,
new DataServiceCallback(deactivateDataCallRequest.callback));
break;
case DATA_SERVICE_REQUEST_SET_INITIAL_ATTACH_APN:
@@ -370,7 +397,8 @@ public abstract class DataService extends Service {
}
}
- private DataService() {
+ /** @hide */
+ protected DataService() {
mHandlerThread = new HandlerThread(TAG);
mHandlerThread.start();
@@ -472,19 +500,18 @@ public abstract class DataService extends Service {
@Override
public void setupDataCall(int accessNetworkType, DataProfile dataProfile,
- boolean isRoaming, boolean allowRoaming, boolean isHandover,
+ boolean isRoaming, boolean allowRoaming, int reason,
LinkProperties linkProperties, IDataServiceCallback callback) {
mHandler.obtainMessage(DATA_SERVICE_REQUEST_SETUP_DATA_CALL, mSlotId, 0,
new SetupDataCallRequest(accessNetworkType, dataProfile, isRoaming,
- allowRoaming, isHandover, linkProperties, callback))
+ allowRoaming, reason, linkProperties, callback))
.sendToTarget();
}
@Override
- public void deactivateDataCall(int cid, boolean reasonRadioShutDown, boolean isHandover,
- IDataServiceCallback callback) {
+ public void deactivateDataCall(int cid, int reason, IDataServiceCallback callback) {
mHandler.obtainMessage(DATA_SERVICE_REQUEST_DEACTIVATE_DATA_CALL, mSlotId, 0,
- new DeactivateDataCallRequest(cid, reasonRadioShutDown, isHandover, callback))
+ new DeactivateDataCallRequest(cid, reason, callback))
.sendToTarget();
}
diff --git a/telephony/java/android/telephony/data/IDataService.aidl b/telephony/java/android/telephony/data/IDataService.aidl
index 4eaaa252da02..07720b69e45f 100644
--- a/telephony/java/android/telephony/data/IDataService.aidl
+++ b/telephony/java/android/telephony/data/IDataService.aidl
@@ -26,10 +26,9 @@ import android.telephony.data.IDataServiceCallback;
oneway interface IDataService
{
void setupDataCall(int accessNetwork, in DataProfile dataProfile, boolean isRoaming,
- boolean allowRoaming, boolean isHandover, in LinkProperties linkProperties,
+ boolean allowRoaming, int reason, in LinkProperties linkProperties,
IDataServiceCallback callback);
- void deactivateDataCall(int cid, boolean reasonRadioShutDown, boolean isHandover,
- IDataServiceCallback callback);
+ void deactivateDataCall(int cid, int reason, IDataServiceCallback callback);
void setInitialAttachApn(in DataProfile dataProfile, boolean isRoaming,
IDataServiceCallback callback);
void setDataProfile(in List<DataProfile> dps, boolean isRoaming, IDataServiceCallback callback);