Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 30f4803c authored by Joonhun Shin's avatar Joonhun Shin Committed by Android (Google) Code Review
Browse files

Merge "Enforce map the telephony features with APIs in ImsMmTelManager,...

Merge "Enforce map the telephony features with APIs in ImsMmTelManager, ImsRcsManager, ProvisioningManager, RcsUceAdapter, SipDelegateManager" into main
parents 0b99b38c 7bcbdff0
Loading
Loading
Loading
Loading
+38 −0
Original line number Diff line number Diff line
@@ -779,6 +779,8 @@ public class ImsMmTelManager implements RegistrationManager {
     * @see android.telephony.CarrierConfigManager#KEY_CARRIER_VOLTE_AVAILABLE_BOOL
     * @throws IllegalArgumentException if the subscription associated with this operation is not
     * active (SIM is not inserted, ESIM inactive) or invalid.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @return true if the user's setting for advanced calling is enabled, false otherwise.
     */
    @SuppressAutoDoc // No support for device / profile owner or carrier privileges (b/72967236).
@@ -827,6 +829,8 @@ public class ImsMmTelManager implements RegistrationManager {
     * @see #isAdvancedCallingSettingEnabled()
     * @throws IllegalArgumentException if the subscription associated with this operation is not
     * active (SIM is not inserted, ESIM inactive) or invalid.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @hide
     */
    @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE)
@@ -865,6 +869,8 @@ public class ImsMmTelManager implements RegistrationManager {
     * @param capability The IMS MmTel capability to query.
     * @return {@code true} if the MmTel IMS capability is capable for this subscription, false
     *         otherwise.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @hide
     */
    @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
@@ -893,6 +899,8 @@ public class ImsMmTelManager implements RegistrationManager {
     * @param capability The IMS MmTel capability to query.
     * @return {@code true} if the MmTel IMS capability is available for this subscription, false
     *         otherwise.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @hide
     */
    @SystemApi
@@ -986,6 +994,8 @@ public class ImsMmTelManager implements RegistrationManager {
     *
     * @throws IllegalArgumentException if the subscription associated with this operation is not
     * active (SIM is not inserted, ESIM inactive) or invalid.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @return true if the user’s “Video Calling” setting is currently enabled.
     */
    @RequiresPermission(anyOf = {
@@ -1017,6 +1027,8 @@ public class ImsMmTelManager implements RegistrationManager {
     *
     * @throws IllegalArgumentException if the subscription associated with this operation is not
     * active (SIM is not inserted, ESIM inactive) or invalid.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @see #isVtSettingEnabled()
     * @hide
     */
@@ -1060,6 +1072,8 @@ public class ImsMmTelManager implements RegistrationManager {
     *
     * @throws IllegalArgumentException if the subscription associated with this operation is not
     * active (SIM is not inserted, ESIM inactive) or invalid.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     */
    @SuppressAutoDoc // No support for device / profile owner or carrier privileges (b/72967236).
    @RequiresPermission(anyOf = {
@@ -1090,6 +1104,8 @@ public class ImsMmTelManager implements RegistrationManager {
     *
     * @throws IllegalArgumentException if the subscription associated with this operation is not
     * active (SIM is not inserted, ESIM inactive) or invalid.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @param isEnabled true if the user's setting for Voice over WiFi is enabled, false otherwise=
     * @see #isVoWiFiSettingEnabled()
     * @hide
@@ -1148,6 +1164,8 @@ public class ImsMmTelManager implements RegistrationManager {
     *
     * @throws ImsException if the IMS service associated with this subscription is not available or
     * the IMS service is not available.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @return true if the user's setting for Voice over Cross SIM is enabled and false if it is not
     */
    @SuppressAutoDoc // No support for device / profile owner or carrier privileges (b/72967236).
@@ -1192,6 +1210,8 @@ public class ImsMmTelManager implements RegistrationManager {
     * </ul>
     * @throws ImsException if the IMS service associated with this subscription is not available or
     * the IMS service is not available.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @param isEnabled true if the user's setting for Voice over Cross SIM is enabled,
     *                 false otherwise
     * @see #isCrossSimCallingEnabled()
@@ -1233,6 +1253,8 @@ public class ImsMmTelManager implements RegistrationManager {
     *
     * @throws IllegalArgumentException if the subscription associated with this operation is not
     * active (SIM is not inserted, ESIM inactive) or invalid.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @return true if the user's setting for Voice over WiFi while roaming is enabled, false
     * if disabled.
     */
@@ -1267,6 +1289,8 @@ public class ImsMmTelManager implements RegistrationManager {
     *     false otherwise.
     * @throws IllegalArgumentException if the subscription associated with this operation is not
     * active (SIM is not inserted, ESIM inactive) or invalid.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @see #isVoWiFiRoamingSettingEnabled()
     * @hide
     */
@@ -1304,6 +1328,8 @@ public class ImsMmTelManager implements RegistrationManager {
     * - {@link #WIFI_MODE_WIFI_PREFERRED}
     * @throws IllegalArgumentException if the subscription associated with this operation is not
     * active (SIM is not inserted, ESIM inactive) or invalid.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @see #setVoWiFiSettingEnabled(boolean)
     * @hide
     */
@@ -1347,6 +1373,8 @@ public class ImsMmTelManager implements RegistrationManager {
     *
     * @throws IllegalArgumentException if the subscription associated with this operation is not
     * active (SIM is not inserted, ESIM inactive) or invalid.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @return The Voice over WiFi Mode preference set by the user, which can be one of the
     * following:
     * - {@link #WIFI_MODE_WIFI_ONLY}
@@ -1386,6 +1414,8 @@ public class ImsMmTelManager implements RegistrationManager {
     * - {@link #WIFI_MODE_WIFI_PREFERRED}
     * @throws IllegalArgumentException if the subscription associated with this operation is not
     * active (SIM is not inserted, ESIM inactive) or invalid.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @see #getVoWiFiModeSetting()
     * @hide
     */
@@ -1422,6 +1452,8 @@ public class ImsMmTelManager implements RegistrationManager {
     *     - {@link #WIFI_MODE_WIFI_PREFERRED}
     * @throws IllegalArgumentException if the subscription associated with this operation is not
     * active (SIM is not inserted, ESIM inactive) or invalid.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @see #setVoWiFiRoamingSettingEnabled(boolean)
     * @hide
     */
@@ -1458,6 +1490,8 @@ public class ImsMmTelManager implements RegistrationManager {
     *     - {@link #WIFI_MODE_WIFI_PREFERRED}
     * @throws IllegalArgumentException if the subscription associated with this operation is not
     * active (SIM is not inserted, ESIM inactive) or invalid.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @see #getVoWiFiRoamingModeSetting()
     * @hide
     */
@@ -1492,6 +1526,8 @@ public class ImsMmTelManager implements RegistrationManager {
     * settings.
     * @throws IllegalArgumentException if the subscription associated with this operation is not
     * active (SIM is not inserted, ESIM inactive) or invalid.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @param isEnabled if true RTT should be enabled during calls made on this subscription.
     * @hide
     */
@@ -1535,6 +1571,8 @@ public class ImsMmTelManager implements RegistrationManager {
     *
     * @throws IllegalArgumentException if the subscription associated with this operation is not
     * active (SIM is not inserted, ESIM inactive) or invalid.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @see android.telephony.CarrierConfigManager#KEY_CARRIER_VOLTE_TTY_SUPPORTED_BOOL
     */
    @SuppressAutoDoc // No support for device / profile owner or carrier privileges (b/72967236).
+16 −0
Original line number Diff line number Diff line
@@ -250,6 +250,8 @@ public class ImsRcsManager {
     * the {@code ImsService} associated with the subscription is not available. This can happen if
     * the service crashed, for example. See {@link ImsException#getCode()} for a more detailed
     * reason.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     */
    @RequiresPermission(Manifest.permission.READ_PRECISE_PHONE_STATE)
    public void registerImsRegistrationCallback(
@@ -294,6 +296,8 @@ public class ImsRcsManager {
     * @param c The {@link RegistrationManager.RegistrationCallback} to be removed.
     * @see android.telephony.SubscriptionManager.OnSubscriptionsChangedListener
     * @see #registerImsRegistrationCallback(Executor, RegistrationCallback)
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     */
    @RequiresPermission(Manifest.permission.READ_PRECISE_PHONE_STATE)
    public void unregisterImsRegistrationCallback(
@@ -329,6 +333,8 @@ public class ImsRcsManager {
     * following: {@link RegistrationManager#REGISTRATION_STATE_NOT_REGISTERED},
     * {@link RegistrationManager#REGISTRATION_STATE_REGISTERING}, or
     * {@link RegistrationManager#REGISTRATION_STATE_REGISTERED}.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     */
    @RequiresPermission(Manifest.permission.READ_PRECISE_PHONE_STATE)
    public void getRegistrationState(@NonNull @CallbackExecutor Executor executor,
@@ -378,6 +384,8 @@ public class ImsRcsManager {
     * {@see AccessNetworkConstants#TRANSPORT_TYPE_WWAN},
     * {@see AccessNetworkConstants#TRANSPORT_TYPE_WLAN}, or
     * {@see AccessNetworkConstants#TRANSPORT_TYPE_INVALID}.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     */
    @RequiresPermission(Manifest.permission.READ_PRECISE_PHONE_STATE)
    public void getRegistrationTransportType(@NonNull @CallbackExecutor Executor executor,
@@ -435,6 +443,8 @@ public class ImsRcsManager {
     * {@link ImsRcsManager} is valid, but the ImsService associated with the subscription is not
     * available. This can happen if the ImsService has crashed, for example, or if the subscription
     * becomes inactive. See {@link ImsException#getCode()} for more information on the error codes.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @hide
     */
    @SystemApi
@@ -479,6 +489,8 @@ public class ImsRcsManager {
     * @see #addOnAvailabilityChangedListener(Executor, OnAvailabilityChangedListener)
     * @throws ImsException if the IMS service is not available when calling this method.
     * See {@link ImsException#getCode()} for more information on the error codes.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @hide
     */
    @SystemApi
@@ -525,6 +537,8 @@ public class ImsRcsManager {
     * @see android.telephony.CarrierConfigManager.Ims#KEY_ENABLE_PRESENCE_CAPABILITY_EXCHANGE_BOOL
     * @throws ImsException if the IMS service is not available when calling this method.
     * See {@link ImsException#getCode()} for more information on the error codes.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @hide
     */
    @SystemApi
@@ -563,6 +577,8 @@ public class ImsRcsManager {
     * @see #isCapable(int, int)
     * @throws ImsException if the IMS service is not available when calling this method.
     * See {@link ImsException#getCode()} for more information on the error codes.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @hide
     */
    @SystemApi
+56 −2
Original line number Diff line number Diff line
@@ -1300,8 +1300,10 @@ public class ProvisioningManager {
     * @param executor The executor that the callback methods will be called on.
     * @param callback The callback instance being registered.
     * @throws ImsException if the subscription associated with this callback is
     * valid, but the {@link ImsService the service crashed, for example. See
     * valid, but the service crashed, for example. See
     * {@link ImsException#getCode()} for a more detailed reason.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     */
    @RequiresPermission(Manifest.permission.READ_PRECISE_PHONE_STATE)
    public void registerFeatureProvisioningChangedCallback(
@@ -1327,6 +1329,8 @@ public class ProvisioningManager {
     *
     * @param callback The existing {@link FeatureProvisioningCallback} to be removed.
     * @see #registerFeatureProvisioningChangedCallback(Executor, FeatureProvisioningCallback)
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     */
    public void unregisterFeatureProvisioningChangedCallback(
            @NonNull FeatureProvisioningCallback callback) {
@@ -1347,6 +1351,8 @@ public class ProvisioningManager {
     * @return an integer value for the provided key, or
     * {@link ImsConfigImplBase#CONFIG_RESULT_UNKNOWN} if the key doesn't exist.
     * @throws IllegalArgumentException if the key provided was invalid.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @hide
     */
    @SystemApi
@@ -1369,6 +1375,8 @@ public class ProvisioningManager {
     * @return a String value for the provided key, {@code null} if the key doesn't exist, or
     * {@link StringResultError} if there was an error getting the value for the provided key.
     * @throws IllegalArgumentException if the key provided was invalid.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @hide
     */
    @SystemApi
@@ -1392,6 +1400,8 @@ public class ProvisioningManager {
     * @param key An integer that represents the provisioning key, which is defined by the OEM.
     * @param value a integer value for the provided key.
     * @return the result of setting the configuration value.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @hide
     *
     * Note: For compatibility purposes, the integer values [0 - 99] used in
@@ -1420,6 +1430,8 @@ public class ProvisioningManager {
     *     should be appropriately namespaced to avoid collision.
     * @param value a String value for the provided key.
     * @return the result of setting the configuration value.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     * @hide
     */
    @SystemApi
@@ -1451,6 +1463,9 @@ public class ProvisioningManager {
     *
     * @see CarrierConfigManager.Ims#KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE
     * @param isProvisioned true if the device is provisioned for UT over IMS, false otherwise.
     *
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     */
    @WorkerThread
    @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE)
@@ -1485,6 +1500,9 @@ public class ProvisioningManager {
     * @return true if the device is provisioned for the capability or does not require
     * provisioning, false if the capability does require provisioning and has not been
     * provisioned yet.
     *
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     */
    @WorkerThread
    @RequiresPermission(Manifest.permission.READ_PRECISE_PHONE_STATE)
@@ -1509,6 +1527,9 @@ public class ProvisioningManager {
     * @return true if the device is provisioned for the capability or does not require
     * provisioning, false if the capability does require provisioning and has not been
     * provisioned yet.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     *
     * @deprecated Use {@link #getRcsProvisioningStatusForCapability(int, int)} instead,
     * as this only retrieves provisioning information for
     * {@link ImsRegistrationImplBase#REGISTRATION_TECH_LTE}
@@ -1546,6 +1567,9 @@ public class ProvisioningManager {
     * @return true if the device is provisioned for the capability or does not require
     * provisioning, false if the capability does require provisioning and has not been
     * provisioned yet.
     *
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     */
    @WorkerThread
    @RequiresPermission(Manifest.permission.READ_PRECISE_PHONE_STATE)
@@ -1577,6 +1601,9 @@ public class ProvisioningManager {
     * @see CarrierConfigManager#KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL
     * @param isProvisioned true if the device is provisioned for the RCS capability specified,
     *                      false otherwise.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     *
     * @deprecated Use {@link #setRcsProvisioningStatusForCapability(int, int, boolean)} instead,
     * as this method only sets provisioning information for
     * {@link ImsRegistrationImplBase#REGISTRATION_TECH_LTE}
@@ -1615,6 +1642,9 @@ public class ProvisioningManager {
     * @see CarrierConfigManager.Ims#KEY_RCS_REQUIRES_PROVISIONING_BUNDLE
     * @param isProvisioned true if the device is provisioned for the RCS capability specified,
     *                      false otherwise.
     *
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     */
    @WorkerThread
    @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE)
@@ -1644,6 +1674,9 @@ public class ProvisioningManager {
     * @return true if provisioning is required for the MMTEL capability and IMS
     * registration technology specified, false if it is not required or if the device does not
     * support IMS.
     *
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     */
    @RequiresPermission(Manifest.permission.READ_PRECISE_PHONE_STATE)
    public boolean isProvisioningRequiredForCapability(
@@ -1672,6 +1705,9 @@ public class ProvisioningManager {
     * @return true if provisioning is required for the RCS capability and IMS
     * registration technology specified, false if it is not required or if the device does not
     * support IMS.
     *
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS}.
     */
    @RequiresPermission(Manifest.permission.READ_PRECISE_PHONE_STATE)
    public boolean isRcsProvisioningRequiredForCapability(
@@ -1700,10 +1736,14 @@ public class ProvisioningManager {
     * @param config The XML file to be read. ASCII/UTF8 encoded text if not compressed.
     * @param isCompressed The XML file is compressed in gzip format and must be decompressed
     *         before being read.
     *
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION}.
     * @hide
     */
    @SystemApi
    @RequiresPermission(Manifest.permission.MODIFY_PHONE_STATE)
    @RequiresFeature(PackageManager.FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION)
    public void notifyRcsAutoConfigurationReceived(@NonNull byte[] config, boolean isCompressed) {
        if (config == null) {
            throw new IllegalArgumentException("Must include a non-null config XML file.");
@@ -1714,7 +1754,6 @@ public class ProvisioningManager {
        } catch (RemoteException e) {
            throw e.rethrowAsRuntimeException();
        }

    }

    /**
@@ -1787,10 +1826,14 @@ public class ProvisioningManager {
     * When the IMS/RCS service receives the RCS client configuration, it will detect
     * the change in the configuration, and trigger the auto-configuration as needed.
     * @param rcc RCS client configuration {@link RcsClientConfiguration}
     *
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION}.
     * @hide
     */
    @SystemApi
    @RequiresPermission(Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION)
    @RequiresFeature(PackageManager.FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION)
    public void setRcsClientConfiguration(
            @NonNull RcsClientConfiguration rcc) throws ImsException {
        try {
@@ -1826,6 +1869,7 @@ public class ProvisioningManager {
    @RequiresPermission(anyOf = {
            Manifest.permission.READ_PRIVILEGED_PHONE_STATE,
            Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION})
    @RequiresFeature(PackageManager.FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION)
    public boolean isRcsVolteSingleRegistrationCapable() throws ImsException {
        try {
            return getITelephony().isRcsVolteSingleRegistrationCapable(mSubId);
@@ -1870,12 +1914,15 @@ public class ProvisioningManager {
    * params (See {@link #setRcsClientConfiguration}) and re register the
    * callback.
    * See {@link ImsException#getCode()} for a more detailed reason.
    * @throws UnsupportedOperationException If the device does not have
    *          {@link PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION}.
    * @hide
    */
    @SystemApi
    @RequiresPermission(anyOf = {
            Manifest.permission.READ_PRIVILEGED_PHONE_STATE,
            Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION})
    @RequiresFeature(PackageManager.FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION)
    public void registerRcsProvisioningCallback(
            @NonNull @CallbackExecutor Executor executor,
            @NonNull RcsProvisioningCallback callback) throws ImsException {
@@ -1908,12 +1955,15 @@ public class ProvisioningManager {
     * @see #registerRcsProvisioningCallback(Executor, RcsProvisioningCallback)
     * @throws IllegalArgumentException if the subscription associated with
     * this callback is invalid.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION}.
     * @hide
     */
    @SystemApi
    @RequiresPermission(anyOf = {
            Manifest.permission.READ_PRIVILEGED_PHONE_STATE,
            Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION})
    @RequiresFeature(PackageManager.FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION)
    public void unregisterRcsProvisioningCallback(
            @NonNull RcsProvisioningCallback callback) {
        try {
@@ -1935,10 +1985,14 @@ public class ProvisioningManager {
     * {@link RcsProvisioningCallback#onConfigurationReset}, then
     * {@link RcsProvisioningCallback#onConfigurationChanged} when the new
     * RCS configuration is received and notified by {@link #notifyRcsAutoConfigurationReceived}
     *
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION}.
     * @hide
     */
    @SystemApi
    @RequiresPermission(Manifest.permission.PERFORM_IMS_SINGLE_REGISTRATION)
    @RequiresFeature(PackageManager.FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION)
    public void triggerRcsReconfiguration() {
        try {
            getITelephony().triggerRcsReconfiguration(mSubId);
+17 −0

File changed.

Preview size limit exceeded, changes collapsed.

+5 −0
Original line number Diff line number Diff line
@@ -525,6 +525,8 @@ public class SipDelegateManager {
     * @param callback The callback instance being registered.
     * @throws ImsException in the case that the callback can not be registered.
     * See {@link ImsException#getCode} for more information on when this is called.
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION}.
     */
    @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
    public void registerSipDialogStateCallback(@NonNull Executor executor,
@@ -557,6 +559,9 @@ public class SipDelegateManager {
     * {@link android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE}
     *
     * @param callback The callback instance to be unregistered.
     *
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION}.
     */
    @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE)
    public void unregisterSipDialogStateCallback(@NonNull SipDialogStateCallback callback)