Adds @hide ImsService API implementations to be used for the new dynamic ImsResolver. 1) ImsService - The main class that all vendor ImsServices will implement. ImsServices that implement this method must return their implementations of MMTelFeature when onCreateMMTelFeature is called. The base ImsService class also relays all method calls through itself as a proxy. So, when Telephony calls a method, the ImsService figures out which MMTelFeature should be called (by slot) and then calls that feature's method implementation. 2) MMTelFeature/RcsFeature - Implements the I*Feature interfaces, which are used on both sides of the interface. The vendor implemented ImsService must implement all methods provided in the I*Feature interface in their implementation of *Feature that they return to the ImsService. 3) ImsServiceProxy[Compat] - The Proxy interface in telephony that will be called in ImsManager. When a method in this class is called, it will call the respective AIDL function: Telephony -> IImsServiceController AIDL -> vendor ImsService -> vendor ImsFeature implementation. ImsServiceProxyCompat is there to provide backwards compatibility with older ImsServices that do not use the new ImsService implementations. It implements all of the methods that are defined in the new I*Feature interfaces and translates them to the old ImsService AIDL calls. Test: Adds Unit Tests (see frameworks/opt/telephony) Change-Id: Id3466c178384158c788ab1d708ab108bb95866fc
25 lines
845 B
Plaintext
25 lines
845 B
Plaintext
/*
|
|
* 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 com.android.ims.internal;
|
|
|
|
/**
|
|
* Interface from ImsFeature in the ImsService to ImsServiceController.
|
|
* {@hide}
|
|
*/
|
|
oneway interface IImsFeatureStatusCallback {
|
|
void notifyImsFeatureStatus(int featureStatus);
|
|
} |