Merge "Add Setting API to set/get enriched calling with call composer user option"

This commit is contained in:
Shuo Qian
2021-01-07 18:32:44 +00:00
committed by Gerrit Code Review
3 changed files with 84 additions and 0 deletions

View File

@@ -41017,6 +41017,7 @@ package android.telephony {
method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public boolean doesSwitchMultiSimConfigTriggerReboot();
method public int getActiveModemCount();
method @RequiresPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) public java.util.List<android.telephony.CellInfo> getAllCellInfo();
method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public int getCallComposerStatus();
method public int getCallState();
method public int getCardIdForDefaultEuicc();
method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) @WorkerThread public android.os.PersistableBundle getCarrierConfig();
@@ -41111,6 +41112,7 @@ package android.telephony {
method @Deprecated public String sendEnvelopeWithStatus(String);
method @RequiresPermission(android.Manifest.permission.CALL_PHONE) public void sendUssdRequest(String, android.telephony.TelephonyManager.UssdResponseCallback, android.os.Handler);
method public void sendVisualVoicemailSms(String, int, String, android.app.PendingIntent);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setCallComposerStatus(int);
method @Deprecated @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataEnabled(boolean);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void setDataEnabledForReason(int, boolean);
method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public int setForbiddenPlmns(@NonNull java.util.List<java.lang.String>);
@@ -41145,6 +41147,8 @@ package android.telephony {
field public static final int APPTYPE_USIM = 2; // 0x2
field public static final int AUTHTYPE_EAP_AKA = 129; // 0x81
field public static final int AUTHTYPE_EAP_SIM = 128; // 0x80
field public static final int CALL_COMPOSER_STATUS_OFF = 0; // 0x0
field public static final int CALL_COMPOSER_STATUS_ON = 1; // 0x1
field public static final int CALL_STATE_IDLE = 0; // 0x0
field public static final int CALL_STATE_OFFHOOK = 2; // 0x2
field public static final int CALL_STATE_RINGING = 1; // 0x1

View File

@@ -8679,6 +8679,77 @@ public class TelephonyManager {
return Collections.EMPTY_LIST;
}
/**
* Call composer status OFF from user setting.
*/
public static final int CALL_COMPOSER_STATUS_OFF = 0;
/**
* Call composer status ON from user setting.
*/
public static final int CALL_COMPOSER_STATUS_ON = 1;
/** @hide */
@IntDef(prefix = {"CALL_COMPOSER_STATUS_"},
value = {
CALL_COMPOSER_STATUS_ON,
CALL_COMPOSER_STATUS_OFF,
})
public @interface CallComposerStatus {}
/**
* Set the user-set status for enriched calling with call composer.
*
* @param status user-set status for enriched calling with call composer;
* it must be a value of either {@link #CALL_COMPOSER_STATUS_ON}
* or {@link #CALL_COMPOSER_STATUS_OFF}.
*
* <p>If this object has been created with {@link #createForSubscriptionId}, applies to the
* given subId. Otherwise, applies to {@link SubscriptionManager#getDefaultSubscriptionId()}
*
* @throws IllegalArgumentException if requested state is invalid.
* @throws SecurityException if the caller does not have the permission.
*/
@RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE)
public void setCallComposerStatus(@CallComposerStatus int status) {
if (status != CALL_COMPOSER_STATUS_ON && status != CALL_COMPOSER_STATUS_OFF) {
throw new IllegalArgumentException("requested status is invalid");
}
try {
ITelephony telephony = getITelephony();
if (telephony != null) {
telephony.setCallComposerStatus(getSubId(), status);
}
} catch (RemoteException ex) {
Log.e(TAG, "Error calling ITelephony#setCallComposerStatus", ex);
ex.rethrowFromSystemServer();
}
}
/**
* Get the user-set status for enriched calling with call composer.
*
* <p>If this object has been created with {@link #createForSubscriptionId}, applies to the
* given subId. Otherwise, applies to {@link SubscriptionManager#getDefaultSubscriptionId()}
*
* @throws SecurityException if the caller does not have the permission.
*
* @return the user-set status for enriched calling with call composer either
* {@link #CALL_COMPOSER_STATUS_ON} or {@link #CALL_COMPOSER_STATUS_OFF}.
*/
@RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
public @CallComposerStatus int getCallComposerStatus() {
try {
ITelephony telephony = getITelephony();
if (telephony != null) {
return telephony.getCallComposerStatus(getSubId());
}
} catch (RemoteException ex) {
Log.e(TAG, "Error calling ITelephony#getCallComposerStatus", ex);
ex.rethrowFromSystemServer();
}
return CALL_COMPOSER_STATUS_OFF;
}
/** @hide */
@SystemApi

View File

@@ -128,6 +128,15 @@ interface ITelephony {
*/
boolean isRadioOnForSubscriberWithFeature(int subId, String callingPackage, String callingFeatureId);
/**
* Set the user-set status for enriched calling with call composer.
*/
void setCallComposerStatus(int subId, int status);
/**
* Get the user-set status for enriched calling with call composer.
*/
int getCallComposerStatus(int subId);
/**
* Supply a pin to unlock the SIM for particular subId.