diff options
author | 2017-11-08 23:24:27 +0000 | |
---|---|---|
committer | 2017-11-08 23:24:27 +0000 | |
commit | 25bd139e8f0d4d1f86aa4c4ba0afa376ef0e893c (patch) | |
tree | c6c4586e10c17c8dbea0d6b2451c6800cc19fff7 | |
parent | a8d534bffa138744002875c972aa4b23f8c8ee3e (diff) | |
parent | 36521b89fe3af25b5891511e8c42eca6fdad52cd (diff) |
Merge "Remove ImsService Feature Interfaces" am: abfdf0e03d am: 61fb76d9a0
am: 36521b89fe
Change-Id: Ib0bc09870473c437639a4026835a0bc26e6c6b0d
6 files changed, 117 insertions, 238 deletions
diff --git a/config/compiled-classes-phone b/config/compiled-classes-phone index c91c932ed6c9..bc344d782674 100644 --- a/config/compiled-classes-phone +++ b/config/compiled-classes-phone @@ -3943,7 +3943,6 @@ android.telephony.VisualVoicemailSmsFilterSettings android.telephony.VoLteServiceState android.telephony.VoLteServiceState$1 android.telephony.gsm.GsmCellLocation -android.telephony.ims.feature.IMMTelFeature android.telephony.ims.stub.ImsConfigImplBase android.telephony.ims.stub.ImsEcbmImplBase android.telephony.ims.stub.ImsUtImplBase diff --git a/telephony/java/android/telephony/ims/feature/IMMTelFeature.java b/telephony/java/android/telephony/ims/feature/IMMTelFeature.java deleted file mode 100644 index d65e27ebbb51..000000000000 --- a/telephony/java/android/telephony/ims/feature/IMMTelFeature.java +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package android.telephony.ims.feature; - -import android.app.PendingIntent; -import android.os.Message; -import android.os.RemoteException; - -import com.android.ims.ImsCallProfile; -import com.android.ims.internal.IImsCallSession; -import com.android.ims.internal.IImsCallSessionListener; -import com.android.ims.internal.IImsConfig; -import com.android.ims.internal.IImsEcbm; -import com.android.ims.internal.IImsMultiEndpoint; -import com.android.ims.internal.IImsRegistrationListener; -import com.android.ims.internal.IImsUt; - -/** - * MMTel interface for an ImsService. When updating this interface, ensure that base implementations - * of your changes are also present in MMTelFeature for compatibility with older versions of the - * MMTel feature. - * @hide - */ - -public interface IMMTelFeature { - - /** - * Notifies the MMTel feature that you would like to start a session. This should always be - * done before making/receiving IMS calls. The IMS service will register the device to the - * operator's network with the credentials (from ISIM) periodically in order to receive calls - * from the operator's network. When the IMS service receives a new call, it will send out an - * intent with the provided action string. The intent contains a call ID extra - * {@link IImsCallSession#getCallId} and it can be used to take a call. - * - * @param incomingCallIntent When an incoming call is received, the IMS service will call - * {@link PendingIntent#send} to send back the intent to the caller with - * {@link #INCOMING_CALL_RESULT_CODE} as the result code and the intent to fill in the call ID; - * It cannot be null. - * @param listener To listen to IMS registration events; It cannot be null - * @return an integer (greater than 0) representing the session id associated with the session - * that has been started. - */ - int startSession(PendingIntent incomingCallIntent, IImsRegistrationListener listener) - throws RemoteException; - - /** - * End a previously started session using the associated sessionId. - * @param sessionId an integer (greater than 0) representing the ongoing session. See - * {@link #startSession}. - */ - void endSession(int sessionId) throws RemoteException; - - /** - * Checks if the IMS service has successfully registered to the IMS network with the specified - * service & call type. - * - * @param callServiceType a service type that is specified in {@link ImsCallProfile} - * {@link ImsCallProfile#SERVICE_TYPE_NORMAL} - * {@link ImsCallProfile#SERVICE_TYPE_EMERGENCY} - * @param callType a call type that is specified in {@link ImsCallProfile} - * {@link ImsCallProfile#CALL_TYPE_VOICE_N_VIDEO} - * {@link ImsCallProfile#CALL_TYPE_VOICE} - * {@link ImsCallProfile#CALL_TYPE_VT} - * {@link ImsCallProfile#CALL_TYPE_VS} - * @return true if the specified service id is connected to the IMS network; false otherwise - * @throws RemoteException - */ - boolean isConnected(int callServiceType, int callType) throws RemoteException; - - /** - * Checks if the specified IMS service is opened. - * - * @return true if the specified service id is opened; false otherwise - */ - boolean isOpened() throws RemoteException; - - /** - * Add a new registration listener for the client associated with the session Id. - * @param listener An implementation of IImsRegistrationListener. - */ - void addRegistrationListener(IImsRegistrationListener listener) - throws RemoteException; - - /** - * Remove a previously registered listener using {@link #addRegistrationListener} for the client - * associated with the session Id. - * @param listener A previously registered IImsRegistrationListener - */ - void removeRegistrationListener(IImsRegistrationListener listener) - throws RemoteException; - - /** - * Creates a {@link ImsCallProfile} from the service capabilities & IMS registration state. - * - * @param sessionId a session id which is obtained from {@link #startSession} - * @param callServiceType a service type that is specified in {@link ImsCallProfile} - * {@link ImsCallProfile#SERVICE_TYPE_NONE} - * {@link ImsCallProfile#SERVICE_TYPE_NORMAL} - * {@link ImsCallProfile#SERVICE_TYPE_EMERGENCY} - * @param callType a call type that is specified in {@link ImsCallProfile} - * {@link ImsCallProfile#CALL_TYPE_VOICE} - * {@link ImsCallProfile#CALL_TYPE_VT} - * {@link ImsCallProfile#CALL_TYPE_VT_TX} - * {@link ImsCallProfile#CALL_TYPE_VT_RX} - * {@link ImsCallProfile#CALL_TYPE_VT_NODIR} - * {@link ImsCallProfile#CALL_TYPE_VS} - * {@link ImsCallProfile#CALL_TYPE_VS_TX} - * {@link ImsCallProfile#CALL_TYPE_VS_RX} - * @return a {@link ImsCallProfile} object - */ - ImsCallProfile createCallProfile(int sessionId, int callServiceType, int callType) - throws RemoteException; - - /** - * Creates a {@link ImsCallSession} with the specified call profile. - * Use other methods, if applicable, instead of interacting with - * {@link ImsCallSession} directly. - * - * @param sessionId a session id which is obtained from {@link #startSession} - * @param profile a call profile to make the call - * @param listener An implementation of IImsCallSessionListener. - */ - IImsCallSession createCallSession(int sessionId, ImsCallProfile profile, - IImsCallSessionListener listener) throws RemoteException; - - /** - * Retrieves the call session associated with a pending call. - * - * @param sessionId a session id which is obtained from {@link #startSession} - * @param callId a call id to make the call - */ - IImsCallSession getPendingCallSession(int sessionId, String callId) throws RemoteException; - - /** - * @return The Ut interface for the supplementary service configuration. - */ - IImsUt getUtInterface() throws RemoteException; - - /** - * @return The config interface for IMS Configuration - */ - IImsConfig getConfigInterface() throws RemoteException; - - /** - * Signal the MMTelFeature to turn on IMS when it has been turned off using {@link #turnOffIms} - * @param sessionId a session id which is obtained from {@link #startSession} - */ - void turnOnIms() throws RemoteException; - - /** - * Signal the MMTelFeature to turn off IMS when it has been turned on using {@link #turnOnIms} - * @param sessionId a session id which is obtained from {@link #startSession} - */ - void turnOffIms() throws RemoteException; - - /** - * @return The Emergency call-back mode interface for emergency VoLTE calls that support it. - */ - IImsEcbm getEcbmInterface() throws RemoteException; - - /** - * Sets the current UI TTY mode for the MMTelFeature. - * @param uiTtyMode An integer containing the new UI TTY Mode. - * @param onComplete A {@link Message} to be used when the mode has been set. - * @throws RemoteException - */ - void setUiTTYMode(int uiTtyMode, Message onComplete) throws RemoteException; - - /** - * @return MultiEndpoint interface for DEP notifications - */ - IImsMultiEndpoint getMultiEndpointInterface() throws RemoteException; -} diff --git a/telephony/java/android/telephony/ims/feature/IRcsFeature.java b/telephony/java/android/telephony/ims/feature/IRcsFeature.java deleted file mode 100644 index e28e1b38dfcd..000000000000 --- a/telephony/java/android/telephony/ims/feature/IRcsFeature.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License - */ - -package android.telephony.ims.feature; - -/** - * Feature interface that provides access to RCS APIs. Currently empty until RCS support is added - * in the framework. - * @hide - */ - -public interface IRcsFeature { -} diff --git a/telephony/java/android/telephony/ims/feature/MMTelFeature.java b/telephony/java/android/telephony/ims/feature/MMTelFeature.java index a71f0bf0c7fd..758c379fcdd1 100644 --- a/telephony/java/android/telephony/ims/feature/MMTelFeature.java +++ b/telephony/java/android/telephony/ims/feature/MMTelFeature.java @@ -32,90 +32,183 @@ import java.util.ArrayList; import java.util.List; /** - * Base implementation, which implements all methods in IMMTelFeature. Any class wishing to use - * MMTelFeature should extend this class and implement all methods that the service supports. + * Base implementation for MMTel. + * Any class wishing to use MMTelFeature should extend this class and implement all methods that the + * service supports. * * @hide */ -public class MMTelFeature extends ImsFeature implements IMMTelFeature { - - @Override +public class MMTelFeature extends ImsFeature { + + /** + * Notifies the MMTel feature that you would like to start a session. This should always be + * done before making/receiving IMS calls. The IMS service will register the device to the + * operator's network with the credentials (from ISIM) periodically in order to receive calls + * from the operator's network. When the IMS service receives a new call, it will send out an + * intent with the provided action string. The intent contains a call ID extra + * {@link IImsCallSession#getCallId} and it can be used to take a call. + * + * @param incomingCallIntent When an incoming call is received, the IMS service will call + * {@link PendingIntent#send} to send back the intent to the caller with + * ImsManager#INCOMING_CALL_RESULT_CODE as the result code and the intent to fill in the call + * ID; It cannot be null. + * @param listener To listen to IMS registration events; It cannot be null + * @return an integer (greater than 0) representing the session id associated with the session + * that has been started. + */ public int startSession(PendingIntent incomingCallIntent, IImsRegistrationListener listener) { return 0; } - @Override + /** + * End a previously started session using the associated sessionId. + * @param sessionId an integer (greater than 0) representing the ongoing session. See + * {@link #startSession}. + */ public void endSession(int sessionId) { } - @Override + /** + * Checks if the IMS service has successfully registered to the IMS network with the specified + * service & call type. + * + * @param callSessionType a service type that is specified in {@link ImsCallProfile} + * {@link ImsCallProfile#SERVICE_TYPE_NORMAL} + * {@link ImsCallProfile#SERVICE_TYPE_EMERGENCY} + * @param callType a call type that is specified in {@link ImsCallProfile} + * {@link ImsCallProfile#CALL_TYPE_VOICE_N_VIDEO} + * {@link ImsCallProfile#CALL_TYPE_VOICE} + * {@link ImsCallProfile#CALL_TYPE_VT} + * {@link ImsCallProfile#CALL_TYPE_VS} + * @return true if the specified service id is connected to the IMS network; false otherwise + */ public boolean isConnected(int callSessionType, int callType) { return false; } - @Override + /** + * Checks if the specified IMS service is opened. + * + * @return true if the specified service id is opened; false otherwise + */ public boolean isOpened() { return false; } - @Override + /** + * Add a new registration listener for the client associated with the session Id. + * @param listener An implementation of IImsRegistrationListener. + */ public void addRegistrationListener(IImsRegistrationListener listener) { } - @Override + /** + * Remove a previously registered listener using {@link #addRegistrationListener} for the client + * associated with the session Id. + * @param listener A previously registered IImsRegistrationListener + */ public void removeRegistrationListener(IImsRegistrationListener listener) { } - @Override + /** + * Creates a {@link ImsCallProfile} from the service capabilities & IMS registration state. + * + * @param sessionId a session id which is obtained from {@link #startSession} + * @param callSessionType a service type that is specified in {@link ImsCallProfile} + * {@link ImsCallProfile#SERVICE_TYPE_NONE} + * {@link ImsCallProfile#SERVICE_TYPE_NORMAL} + * {@link ImsCallProfile#SERVICE_TYPE_EMERGENCY} + * @param callType a call type that is specified in {@link ImsCallProfile} + * {@link ImsCallProfile#CALL_TYPE_VOICE} + * {@link ImsCallProfile#CALL_TYPE_VT} + * {@link ImsCallProfile#CALL_TYPE_VT_TX} + * {@link ImsCallProfile#CALL_TYPE_VT_RX} + * {@link ImsCallProfile#CALL_TYPE_VT_NODIR} + * {@link ImsCallProfile#CALL_TYPE_VS} + * {@link ImsCallProfile#CALL_TYPE_VS_TX} + * {@link ImsCallProfile#CALL_TYPE_VS_RX} + * @return a {@link ImsCallProfile} object + */ public ImsCallProfile createCallProfile(int sessionId, int callSessionType, int callType) { return null; } - @Override + /** + * Creates a {@link ImsCallSession} with the specified call profile. + * Use other methods, if applicable, instead of interacting with + * {@link ImsCallSession} directly. + * + * @param sessionId a session id which is obtained from {@link #startSession} + * @param profile a call profile to make the call + * @param listener An implementation of IImsCallSessionListener. + */ public IImsCallSession createCallSession(int sessionId, ImsCallProfile profile, IImsCallSessionListener listener) { return null; } - @Override + /** + * Retrieves the call session associated with a pending call. + * + * @param sessionId a session id which is obtained from {@link #startSession} + * @param callId a call id to make the call + */ public IImsCallSession getPendingCallSession(int sessionId, String callId) { return null; } - @Override + /** + * @return The Ut interface for the supplementary service configuration. + */ public IImsUt getUtInterface() { return null; } - @Override + /** + * @return The config interface for IMS Configuration + */ public IImsConfig getConfigInterface() { return null; } - @Override + /** + * Signal the MMTelFeature to turn on IMS when it has been turned off using {@link #turnOffIms} + */ public void turnOnIms() { } - @Override + /** + * Signal the MMTelFeature to turn off IMS when it has been turned on using {@link #turnOnIms} + */ public void turnOffIms() { } - @Override + /** + * @return The Emergency call-back mode interface for emergency VoLTE calls that support it. + */ public IImsEcbm getEcbmInterface() { return null; } - @Override + /** + * Sets the current UI TTY mode for the MMTelFeature. + * @param uiTtyMode An integer containing the new UI TTY Mode. + * @param onComplete A {@link Message} to be used when the mode has been set. + */ public void setUiTTYMode(int uiTtyMode, Message onComplete) { } - @Override + /** + * @return MultiEndpoint interface for DEP notifications + */ public IImsMultiEndpoint getMultiEndpointInterface() { return null; } - @Override + /** + * {@inheritDoc} + */ public void onFeatureRemoved() { } diff --git a/telephony/java/android/telephony/ims/feature/RcsFeature.java b/telephony/java/android/telephony/ims/feature/RcsFeature.java index 9cddc1b934db..332cca3e5696 100644 --- a/telephony/java/android/telephony/ims/feature/RcsFeature.java +++ b/telephony/java/android/telephony/ims/feature/RcsFeature.java @@ -18,11 +18,11 @@ package android.telephony.ims.feature; /** * Base implementation of the RcsFeature APIs. Any ImsService wishing to support RCS should extend - * this class and provide implementations of the IRcsFeature methods that they support. + * this class and provide implementations of the RcsFeature methods that they support. * @hide */ -public class RcsFeature extends ImsFeature implements IRcsFeature { +public class RcsFeature extends ImsFeature { public RcsFeature() { super(); diff --git a/telephony/java/com/android/ims/internal/IImsServiceController.aidl b/telephony/java/com/android/ims/internal/IImsServiceController.aidl index bb06d7e085a7..f1e2262ee80c 100644 --- a/telephony/java/com/android/ims/internal/IImsServiceController.aidl +++ b/telephony/java/com/android/ims/internal/IImsServiceController.aidl @@ -31,7 +31,7 @@ import com.android.ims.internal.IImsUt; import android.os.Message; /** - * See ImsService and IMMTelFeature for more information. + * See ImsService and MMTelFeature for more information. * {@hide} */ interface IImsServiceController { |