Merge "[RCS] Add IMS service into system service registry"
am: 6a1d13f58e
Change-Id: I028b8a9db476858805e267ad942841ea7af1c7e0
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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";
|
||||
|
||||
/**
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user