[Settings] Expose @hide #setDataAllowedDuringVoiceCall and #isDataAllowedInVoiceCall as @SystemApi
Bug: 146107006
Test: make
Change-Id: Ib0e6bfa01db9cfabae7ebcce4548dc885e589144
Merged-In: Ib0e6bfa01db9cfabae7ebcce4548dc885e589144
diff --git a/api/system-current.txt b/api/system-current.txt
index 71e4fa4..74a9d56 100755
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -9601,6 +9601,7 @@
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isAnyRadioPoweredOn();
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isApplicationOnUicc(int);
method public boolean isCurrentSimOperator(@NonNull String, int, @Nullable String);
+ method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isDataAllowedInVoiceCall();
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isDataConnectionEnabled();
method public boolean isDataConnectivityPossible();
method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isDataEnabledForApn(int);
@@ -9639,6 +9640,7 @@
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setCarrierDataEnabled(boolean);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setCarrierRestrictionRules(@NonNull android.telephony.CarrierRestrictionRules);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataActivationState(int);
+ method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public boolean setDataAllowedDuringVoiceCall(boolean);
method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataEnabled(int, boolean);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataRoamingEnabled(boolean);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setMultiSimCarrierRestriction(boolean);
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index ffa0810..5fa3580 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -12408,6 +12408,7 @@
}
/**
+<<<<<<< HEAD
* Gets the voice call forwarding info {@link CallForwardingInfo}, given the call forward
* reason.
*
@@ -12593,15 +12594,21 @@
}
/**
- * Set allowing mobile data during voice call.
+ * Set allowing mobile data during voice call. This is used for allowing data on the non-default
+ * data SIM. When a voice call is placed on the non-default data SIM on DSDS devices, users will
+ * not be able to use mobile data. By calling this API, data will be temporarily enabled on the
+ * non-default data SIM during the life cycle of the voice call.
*
* @param allow {@code true} if allowing using data during voice call, {@code false} if
- * disallowed
+ * disallowed.
*
- * @return {@code false} if the setting is changed.
+ * @return {@code true} if operation is successful. otherwise {@code false}.
+ *
+ * @throws SecurityException if the caller doesn't have the permission.
*
* @hide
*/
+ @SystemApi
@RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
public boolean setDataAllowedDuringVoiceCall(boolean allow) {
try {
@@ -12610,6 +12617,7 @@
return service.setDataAllowedDuringVoiceCall(getSubId(), allow);
}
} catch (RemoteException ex) {
+ // This could happen if binder process crashes.
if (!isSystemProcess()) {
ex.rethrowAsRuntimeException();
}
@@ -12618,13 +12626,18 @@
}
/**
- * Check whether data is allowed during voice call. Note this is for dual sim device that
- * data might be disabled on non-default data subscription but explicitly turned on by settings.
+ * Check whether data is allowed during voice call. This is used for allowing data on the
+ * non-default data SIM. When a voice call is placed on the non-default data SIM on DSDS
+ * devices, users will not be able to use mobile data. By calling this API, data will be
+ * temporarily enabled on the non-default data SIM during the life cycle of the voice call.
*
* @return {@code true} if data is allowed during voice call.
*
+ * @throws SecurityException if the caller doesn't have the permission.
+ *
* @hide
*/
+ @SystemApi
@RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
public boolean isDataAllowedInVoiceCall() {
try {
@@ -12633,6 +12646,7 @@
return service.isDataAllowedInVoiceCall(getSubId());
}
} catch (RemoteException ex) {
+ // This could happen if binder process crashes.
if (!isSystemProcess()) {
ex.rethrowAsRuntimeException();
}