diff options
| -rwxr-xr-x | api/system-current.txt | 37 | ||||
| -rw-r--r-- | api/test-current.txt | 37 | ||||
| -rw-r--r-- | core/java/android/app/SystemServiceRegistry.java | 8 | ||||
| -rw-r--r-- | core/java/android/content/Context.java | 2 | ||||
| -rw-r--r-- | telephony/java/android/telephony/ImsManager.java | 10 | ||||
| -rw-r--r-- | telephony/java/android/telephony/ims/ImsRcsManager.java | 34 | ||||
| -rw-r--r-- | telephony/java/android/telephony/ims/aidl/IImsRcsController.aidl | 6 | ||||
| -rw-r--r-- | telephony/java/android/telephony/ims/feature/RcsFeature.java | 19 |
8 files changed, 120 insertions, 33 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index a41564e37cc3..b0c359151c0d 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -1539,6 +1539,7 @@ package android.content { field public static final String STATS_MANAGER = "stats"; field public static final String STATUS_BAR_SERVICE = "statusbar"; field public static final String SYSTEM_UPDATE_SERVICE = "system_update"; + field public static final String TELEPHONY_IMS_SERVICE = "telephony_ims"; field public static final String TELEPHONY_REGISTRY_SERVICE = "telephony_registry"; field public static final String VR_SERVICE = "vrmanager"; field @Deprecated public static final String WIFI_RTT_SERVICE = "rttmanager"; @@ -9546,6 +9547,11 @@ package android.telephony.ims { field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ims.ImsExternalCallState> CREATOR; } + public class ImsManager { + method @NonNull public android.telephony.ims.ImsMmTelManager getImsMmTelManager(int); + method @NonNull public android.telephony.ims.ImsRcsManager getImsRcsManager(int); + } + public class ImsMmTelManager implements android.telephony.ims.RegistrationManager { method @NonNull public static android.telephony.ims.ImsMmTelManager createForSubscriptionId(int); method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getFeatureState(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>) throws android.telephony.ims.ImsException; @@ -9589,6 +9595,22 @@ package android.telephony.ims { ctor @Deprecated public ImsMmTelManager.RegistrationCallback(); } + public class ImsRcsManager implements android.telephony.ims.RegistrationManager { + method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getRegistrationState(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>); + method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getRegistrationTransportType(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>); + method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isAvailable(int) throws android.telephony.ims.ImsException; + method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public boolean isCapable(int, int) throws android.telephony.ims.ImsException; + method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerImsRegistrationCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.RegistrationManager.RegistrationCallback) throws android.telephony.ims.ImsException; + method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerRcsAvailabilityCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.ImsRcsManager.AvailabilityCallback) throws android.telephony.ims.ImsException; + method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void unregisterImsRegistrationCallback(@NonNull android.telephony.ims.RegistrationManager.RegistrationCallback); + method @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void unregisterRcsAvailabilityCallback(@NonNull android.telephony.ims.ImsRcsManager.AvailabilityCallback) throws android.telephony.ims.ImsException; + } + + public static class ImsRcsManager.AvailabilityCallback { + ctor public ImsRcsManager.AvailabilityCallback(); + method public void onAvailabilityChanged(@NonNull android.telephony.ims.feature.RcsFeature.RcsImsCapabilities); + } + public final class ImsReasonInfo implements android.os.Parcelable { field public static final String EXTRA_MSG_SERVICE_NOT_AUTHORIZED = "Forbidden. Not Authorized for Service"; } @@ -9950,9 +9972,22 @@ package android.telephony.ims.feature { public class RcsFeature extends android.telephony.ims.feature.ImsFeature { ctor public RcsFeature(); - method public void changeEnabledCapabilities(android.telephony.ims.feature.CapabilityChangeRequest, android.telephony.ims.feature.ImsFeature.CapabilityCallbackProxy); + method public void changeEnabledCapabilities(@NonNull android.telephony.ims.feature.CapabilityChangeRequest, @NonNull android.telephony.ims.feature.ImsFeature.CapabilityCallbackProxy); + method public final void notifyCapabilitiesStatusChanged(@NonNull android.telephony.ims.feature.RcsFeature.RcsImsCapabilities); method public void onFeatureReady(); method public void onFeatureRemoved(); + method public boolean queryCapabilityConfiguration(int, int); + method @NonNull public final android.telephony.ims.feature.RcsFeature.RcsImsCapabilities queryCapabilityStatus(); + } + + public static class RcsFeature.RcsImsCapabilities extends android.telephony.ims.feature.ImsFeature.Capabilities { + ctor public RcsFeature.RcsImsCapabilities(int); + method public void addCapabilities(int); + method public boolean isCapable(int); + method public void removeCapabilities(int); + field public static final int CAPABILITY_TYPE_NONE = 0; // 0x0 + field public static final int CAPABILITY_TYPE_OPTIONS_UCE = 1; // 0x1 + field public static final int CAPABILITY_TYPE_PRESENCE_UCE = 2; // 0x2 } } diff --git a/api/test-current.txt b/api/test-current.txt index b5cd479b4e97..44498dd16b87 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -653,6 +653,7 @@ package android.content { field public static final String PERMISSION_SERVICE = "permission"; field public static final String ROLLBACK_SERVICE = "rollback"; field public static final String STATUS_BAR_SERVICE = "statusbar"; + field public static final String TELEPHONY_IMS_SERVICE = "telephony_ims"; field public static final String TEST_NETWORK_SERVICE = "test_network"; } @@ -3269,6 +3270,11 @@ package android.telephony.ims { field @NonNull public static final android.os.Parcelable.Creator<android.telephony.ims.ImsExternalCallState> CREATOR; } + public class ImsManager { + method @NonNull public android.telephony.ims.ImsMmTelManager getImsMmTelManager(int); + method @NonNull public android.telephony.ims.ImsRcsManager getImsRcsManager(int); + } + public class ImsMmTelManager implements android.telephony.ims.RegistrationManager { method @NonNull public static android.telephony.ims.ImsMmTelManager createForSubscriptionId(int); method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void getFeatureState(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>) throws android.telephony.ims.ImsException; @@ -3312,6 +3318,22 @@ package android.telephony.ims { ctor @Deprecated public ImsMmTelManager.RegistrationCallback(); } + public class ImsRcsManager implements android.telephony.ims.RegistrationManager { + method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void getRegistrationState(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>); + method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void getRegistrationTransportType(@NonNull java.util.concurrent.Executor, @NonNull java.util.function.Consumer<java.lang.Integer>); + method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public boolean isAvailable(int) throws android.telephony.ims.ImsException; + method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public boolean isCapable(int, int) throws android.telephony.ims.ImsException; + method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void registerImsRegistrationCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.RegistrationManager.RegistrationCallback) throws android.telephony.ims.ImsException; + method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void registerRcsAvailabilityCallback(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.ims.ImsRcsManager.AvailabilityCallback) throws android.telephony.ims.ImsException; + method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void unregisterImsRegistrationCallback(@NonNull android.telephony.ims.RegistrationManager.RegistrationCallback); + method @RequiresPermission("android.permission.READ_PRIVILEGED_PHONE_STATE") public void unregisterRcsAvailabilityCallback(@NonNull android.telephony.ims.ImsRcsManager.AvailabilityCallback) throws android.telephony.ims.ImsException; + } + + public static class ImsRcsManager.AvailabilityCallback { + ctor public ImsRcsManager.AvailabilityCallback(); + method public void onAvailabilityChanged(@NonNull android.telephony.ims.feature.RcsFeature.RcsImsCapabilities); + } + public class ImsService extends android.app.Service { ctor public ImsService(); method public android.telephony.ims.feature.MmTelFeature createMmTelFeature(int); @@ -3669,9 +3691,22 @@ package android.telephony.ims.feature { public class RcsFeature extends android.telephony.ims.feature.ImsFeature { ctor public RcsFeature(); - method public void changeEnabledCapabilities(android.telephony.ims.feature.CapabilityChangeRequest, android.telephony.ims.feature.ImsFeature.CapabilityCallbackProxy); + method public void changeEnabledCapabilities(@NonNull android.telephony.ims.feature.CapabilityChangeRequest, @NonNull android.telephony.ims.feature.ImsFeature.CapabilityCallbackProxy); + method public final void notifyCapabilitiesStatusChanged(@NonNull android.telephony.ims.feature.RcsFeature.RcsImsCapabilities); method public void onFeatureReady(); method public void onFeatureRemoved(); + method public boolean queryCapabilityConfiguration(int, int); + method @NonNull public final android.telephony.ims.feature.RcsFeature.RcsImsCapabilities queryCapabilityStatus(); + } + + public static class RcsFeature.RcsImsCapabilities extends android.telephony.ims.feature.ImsFeature.Capabilities { + ctor public RcsFeature.RcsImsCapabilities(int); + method public void addCapabilities(int); + method public boolean isCapable(int); + method public void removeCapabilities(int); + field public static final int CAPABILITY_TYPE_NONE = 0; // 0x0 + field public static final int CAPABILITY_TYPE_OPTIONS_UCE = 1; // 0x1 + field public static final int CAPABILITY_TYPE_PRESENCE_UCE = 2; // 0x2 } } diff --git a/core/java/android/app/SystemServiceRegistry.java b/core/java/android/app/SystemServiceRegistry.java index d8ccc6244775..c56e8d86bfa3 100644 --- a/core/java/android/app/SystemServiceRegistry.java +++ b/core/java/android/app/SystemServiceRegistry.java @@ -1245,6 +1245,14 @@ final class SystemServiceRegistry { return new TimeZoneDetector(); }}); + registerService(Context.TELEPHONY_IMS_SERVICE, android.telephony.ims.ImsManager.class, + new CachedServiceFetcher<android.telephony.ims.ImsManager>() { + @Override + public android.telephony.ims.ImsManager createService(ContextImpl ctx) { + return new android.telephony.ims.ImsManager(ctx.getOuterContext()); + } + }); + registerService(Context.PERMISSION_SERVICE, PermissionManager.class, new CachedServiceFetcher<PermissionManager>() { @Override diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java index 20860531d51d..39a711524cf3 100644 --- a/core/java/android/content/Context.java +++ b/core/java/android/content/Context.java @@ -4821,6 +4821,8 @@ public abstract class Context { * {@link android.telephony.ims.ImsManager}. * @hide */ + @SystemApi + @TestApi public static final String TELEPHONY_IMS_SERVICE = "telephony_ims"; /** diff --git a/telephony/java/android/telephony/ImsManager.java b/telephony/java/android/telephony/ImsManager.java index 02d8be3ccfd5..39af34c0e0f0 100644 --- a/telephony/java/android/telephony/ImsManager.java +++ b/telephony/java/android/telephony/ImsManager.java @@ -16,7 +16,10 @@ package android.telephony.ims; +import android.annotation.NonNull; +import android.annotation.SystemApi; import android.annotation.SystemService; +import android.annotation.TestApi; import android.content.Context; import android.telephony.SubscriptionManager; @@ -25,12 +28,15 @@ import android.telephony.SubscriptionManager; * * @hide */ +@SystemApi +@TestApi @SystemService(Context.TELEPHONY_IMS_SERVICE) public class ImsManager { private Context mContext; - public ImsManager(Context context) { + /** @hide */ + public ImsManager(@NonNull Context context) { mContext = context; } @@ -41,6 +47,7 @@ public class ImsManager { * @throws IllegalArgumentException if the subscription is invalid. * @return a ImsRcsManager instance with the specific subscription ID. */ + @NonNull public ImsRcsManager getImsRcsManager(int subscriptionId) { if (!SubscriptionManager.isValidSubscriptionId(subscriptionId)) { throw new IllegalArgumentException("Invalid subscription ID: " + subscriptionId); @@ -56,6 +63,7 @@ public class ImsManager { * @throws IllegalArgumentException if the subscription is invalid. * @return a ImsMmTelManager instance with the specific subscription ID. */ + @NonNull public ImsMmTelManager getImsMmTelManager(int subscriptionId) { if (!SubscriptionManager.isValidSubscriptionId(subscriptionId)) { throw new IllegalArgumentException("Invalid subscription ID: " + subscriptionId); diff --git a/telephony/java/android/telephony/ims/ImsRcsManager.java b/telephony/java/android/telephony/ims/ImsRcsManager.java index 21707b0d7cfd..0c8dba664b0a 100644 --- a/telephony/java/android/telephony/ims/ImsRcsManager.java +++ b/telephony/java/android/telephony/ims/ImsRcsManager.java @@ -20,6 +20,8 @@ import android.Manifest; import android.annotation.CallbackExecutor; import android.annotation.NonNull; import android.annotation.RequiresPermission; +import android.annotation.SystemApi; +import android.annotation.TestApi; import android.content.Context; import android.os.Binder; import android.os.IBinder; @@ -30,6 +32,7 @@ import android.telephony.ims.aidl.IImsCapabilityCallback; import android.telephony.ims.aidl.IImsRcsController; import android.telephony.ims.feature.ImsFeature; import android.telephony.ims.feature.RcsFeature; +import android.telephony.ims.stub.ImsRegistrationImplBase; import android.util.Log; import java.util.concurrent.Executor; @@ -42,6 +45,8 @@ import java.util.function.Consumer; * Use {@link ImsManager#getImsRcsManager(int)} to create an instance of this manager. * @hide */ +@SystemApi +@TestApi public class ImsRcsManager implements RegistrationManager { private static final String TAG = "ImsRcsManager"; @@ -101,7 +106,7 @@ public class ImsRcsManager implements RegistrationManager { * * @param capabilities The new availability of the capabilities. */ - public void onAvailabilityChanged(RcsFeature.RcsImsCapabilities capabilities) { + public void onAvailabilityChanged(@NonNull RcsFeature.RcsImsCapabilities capabilities) { } /**@hide*/ @@ -138,6 +143,7 @@ public class ImsRcsManager implements RegistrationManager { /**{@inheritDoc}*/ @Override + @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void registerImsRegistrationCallback( @NonNull @CallbackExecutor Executor executor, @NonNull RegistrationCallback c) @@ -155,6 +161,7 @@ public class ImsRcsManager implements RegistrationManager { /**{@inheritDoc}*/ @Override + @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void unregisterImsRegistrationCallback( @NonNull RegistrationManager.RegistrationCallback c) { if (c == null) { @@ -166,6 +173,7 @@ public class ImsRcsManager implements RegistrationManager { /**{@inheritDoc}*/ @Override + @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getRegistrationState(@NonNull @CallbackExecutor Executor executor, @NonNull @ImsRegistrationState Consumer<Integer> stateCallback) { if (stateCallback == null) { @@ -180,6 +188,7 @@ public class ImsRcsManager implements RegistrationManager { /**{@inheritDoc}*/ @Override + @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public void getRegistrationTransportType(@NonNull @CallbackExecutor Executor executor, @NonNull @AccessNetworkConstants.TransportType Consumer<Integer> transportTypeCallback) { @@ -215,7 +224,7 @@ public class ImsRcsManager implements RegistrationManager { * becomes inactive. See {@link ImsException#getCode()} for more information on the error codes. */ @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) - public void registerRcsAvailabilityCallback(@CallbackExecutor Executor executor, + public void registerRcsAvailabilityCallback(@NonNull @CallbackExecutor Executor executor, @NonNull AvailabilityCallback c) throws ImsException { if (c == null) { throw new IllegalArgumentException("Must include a non-null AvailabilityCallback."); @@ -227,13 +236,13 @@ public class ImsRcsManager implements RegistrationManager { IImsRcsController imsRcsController = getIImsRcsController(); if (imsRcsController == null) { Log.e(TAG, "Register availability callback: IImsRcsController is null"); - throw new ImsException("Can not find remote IMS service", + throw new ImsException("Cannot find remote IMS service", ImsException.CODE_ERROR_SERVICE_UNAVAILABLE); } c.setExecutor(executor); try { - imsRcsController.registerRcsAvailabilityCallback(c.getBinder()); + imsRcsController.registerRcsAvailabilityCallback(mSubId, c.getBinder()); } catch (RemoteException e) { Log.e(TAG, "Error calling IImsRcsController#registerRcsAvailabilityCallback", e); throw new ImsException("Remote IMS Service is not available", @@ -263,12 +272,12 @@ public class ImsRcsManager implements RegistrationManager { IImsRcsController imsRcsController = getIImsRcsController(); if (imsRcsController == null) { Log.e(TAG, "Unregister availability callback: IImsRcsController is null"); - throw new ImsException("Can not find remote IMS service", + throw new ImsException("Cannot find remote IMS service", ImsException.CODE_ERROR_SERVICE_UNAVAILABLE); } try { - imsRcsController.unregisterRcsAvailabilityCallback(c.getBinder()); + imsRcsController.unregisterRcsAvailabilityCallback(mSubId, c.getBinder()); } catch (RemoteException e) { Log.e(TAG, "Error calling IImsRcsController#unregisterRcsAvailabilityCallback", e); throw new ImsException("Remote IMS Service is not available", @@ -283,6 +292,9 @@ public class ImsRcsManager implements RegistrationManager { * RCS capabilities provided over-the-top by applications. * * @param capability The RCS capability to query. + * @param radioTech The radio tech that this capability failed for, defined as + * {@link ImsRegistrationImplBase#REGISTRATION_TECH_LTE} or + * {@link ImsRegistrationImplBase#REGISTRATION_TECH_IWLAN}. * @return true if the RCS capability is capable for this subscription, false otherwise. This * does not necessarily mean that we are registered for IMS and the capability is available, but * rather the subscription is capable of this service over IMS. @@ -293,17 +305,17 @@ public class ImsRcsManager implements RegistrationManager { * See {@link ImsException#getCode()} for more information on the error codes. */ @RequiresPermission(Manifest.permission.READ_PRIVILEGED_PHONE_STATE) - public boolean isCapable(@RcsFeature.RcsImsCapabilities.RcsImsCapabilityFlag int capability) - throws ImsException { + public boolean isCapable(@RcsFeature.RcsImsCapabilities.RcsImsCapabilityFlag int capability, + @ImsRegistrationImplBase.ImsRegistrationTech int radioTech) throws ImsException { IImsRcsController imsRcsController = getIImsRcsController(); if (imsRcsController == null) { Log.e(TAG, "isCapable: IImsRcsController is null"); - throw new ImsException("Can not find remote IMS service", + throw new ImsException("Cannot find remote IMS service", ImsException.CODE_ERROR_SERVICE_UNAVAILABLE); } try { - return imsRcsController.isCapable(mSubId, capability); + return imsRcsController.isCapable(mSubId, capability, radioTech); } catch (RemoteException e) { Log.e(TAG, "Error calling IImsRcsController#isCapable", e); throw new ImsException("Remote IMS Service is not available", @@ -332,7 +344,7 @@ public class ImsRcsManager implements RegistrationManager { IImsRcsController imsRcsController = getIImsRcsController(); if (imsRcsController == null) { Log.e(TAG, "isAvailable: IImsRcsController is null"); - throw new ImsException("Can not find remote IMS service", + throw new ImsException("Cannot find remote IMS service", ImsException.CODE_ERROR_SERVICE_UNAVAILABLE); } diff --git a/telephony/java/android/telephony/ims/aidl/IImsRcsController.aidl b/telephony/java/android/telephony/ims/aidl/IImsRcsController.aidl index b379bd0cd748..e81bac0f6764 100644 --- a/telephony/java/android/telephony/ims/aidl/IImsRcsController.aidl +++ b/telephony/java/android/telephony/ims/aidl/IImsRcsController.aidl @@ -26,9 +26,9 @@ import android.telephony.ims.aidl.IRcsUceControllerCallback; * {@hide} */ interface IImsRcsController { - void registerRcsAvailabilityCallback(IImsCapabilityCallback c); - void unregisterRcsAvailabilityCallback(IImsCapabilityCallback c); - boolean isCapable(int subId, int capability); + void registerRcsAvailabilityCallback(int subId, IImsCapabilityCallback c); + void unregisterRcsAvailabilityCallback(int subId, IImsCapabilityCallback c); + boolean isCapable(int subId, int capability, int radioTech); boolean isAvailable(int subId, int capability); // ImsUceAdapter specific diff --git a/telephony/java/android/telephony/ims/feature/RcsFeature.java b/telephony/java/android/telephony/ims/feature/RcsFeature.java index e96d082ca953..501e0e8fa22c 100644 --- a/telephony/java/android/telephony/ims/feature/RcsFeature.java +++ b/telephony/java/android/telephony/ims/feature/RcsFeature.java @@ -193,7 +193,6 @@ public class RcsFeature extends ImsFeature { * of the capability and notify the capability status as true using * {@link #notifyCapabilitiesStatusChanged(RcsImsCapabilities)}. This will signal to the * framework that the capability is available for usage. - * @hide */ public static class RcsImsCapabilities extends Capabilities { /** @hide*/ @@ -207,7 +206,6 @@ public class RcsFeature extends ImsFeature { /** * Undefined capability type for initialization - * @hide */ public static final int CAPABILITY_TYPE_NONE = 0; @@ -215,7 +213,6 @@ public class RcsFeature extends ImsFeature { * This carrier supports User Capability Exchange using SIP OPTIONS as defined by the * framework. If set, the RcsFeature should support capability exchange using SIP OPTIONS. * If not set, this RcsFeature should not service capability requests. - * @hide */ public static final int CAPABILITY_TYPE_OPTIONS_UCE = 1 << 0; @@ -224,33 +221,27 @@ public class RcsFeature extends ImsFeature { * framework. If set, the RcsFeature should support capability exchange using a presence * server. If not set, this RcsFeature should not publish capabilities or service capability * requests using presence. - * @hide */ public static final int CAPABILITY_TYPE_PRESENCE_UCE = 1 << 1; - /**@hide*/ public RcsImsCapabilities(@RcsImsCapabilityFlag int capabilities) { super(capabilities); } - /**@hide*/ private RcsImsCapabilities(Capabilities c) { super(c.getMask()); } - /**@hide*/ @Override public void addCapabilities(@RcsImsCapabilityFlag int capabilities) { super.addCapabilities(capabilities); } - /**@hide*/ @Override public void removeCapabilities(@RcsImsCapabilityFlag int capabilities) { super.removeCapabilities(capabilities); } - /**@hide*/ @Override public boolean isCapable(@RcsImsCapabilityFlag int capabilities) { return super.isCapable(capabilities); @@ -295,10 +286,9 @@ public class RcsFeature extends ImsFeature { * set, the {@link RcsFeature} has brought up the capability and is ready for framework * requests. To change the status of the capabilities * {@link #notifyCapabilitiesStatusChanged(RcsImsCapabilities)} should be called. - * @hide */ @Override - public final RcsImsCapabilities queryCapabilityStatus() { + public @NonNull final RcsImsCapabilities queryCapabilityStatus() { return new RcsImsCapabilities(super.queryCapabilityStatus()); } @@ -306,7 +296,6 @@ public class RcsFeature extends ImsFeature { * Notify the framework that the capabilities status has changed. If a capability is enabled, * this signals to the framework that the capability has been initialized and is ready. * Call {@link #queryCapabilityStatus()} to return the current capability status. - * @hide */ public final void notifyCapabilitiesStatusChanged(@NonNull RcsImsCapabilities c) { if (c == null) { @@ -321,7 +310,6 @@ public class RcsFeature extends ImsFeature { * {@link #changeEnabledCapabilities(CapabilityChangeRequest, CapabilityCallbackProxy)} to * enable or disable capability A, this method should return the correct configuration for * capability A afterwards (until it has changed). - * @hide */ public boolean queryCapabilityConfiguration( @RcsImsCapabilities.RcsImsCapabilityFlag int capability, @@ -343,11 +331,10 @@ public class RcsFeature extends ImsFeature { * If for some reason one or more of these capabilities can not be enabled/disabled, * {@link CapabilityCallbackProxy#onChangeCapabilityConfigurationError(int, int, int)} should * be called for each capability change that resulted in an error. - * @hide */ @Override - public void changeEnabledCapabilities(CapabilityChangeRequest request, - CapabilityCallbackProxy c) { + public void changeEnabledCapabilities(@NonNull CapabilityChangeRequest request, + @NonNull CapabilityCallbackProxy c) { // Base Implementation - Override to provide functionality } |