Commit Graph

8 Commits

Author SHA1 Message Date
Brad Ebinger
5b1883b5f1 Integrate new MMTel APIs into the framework
Performs the bulk of the work of:
1) Moving the old MMTel APIs to a hidden
.compat namespace to support older vendor
versions of the code.

2) Replace the compat MMTel APIs with the
new ImsService APIs and integrate them
into existing code.

This is one of two CLs, this CL
integrates the new APIs, the next CL
creates the compat layer in telephony
to translate the .compat APIs to the new
APIs to allow Telephony to work with
older versions of the API.

Before commit, the corresponding vendor
changes will have to be submitted as well.

Bug: 63987047
Test: Telephony Unit tests
Merged-In: Icc9ecfdad000f42399beeac142083e62962c12d3
Change-Id: Icc9ecfdad000f42399beeac142083e62962c12d3
2018-02-01 15:45:29 -08:00
Brad Ebinger
f0bc082a2c Integrate IMS Registration API
Integrates the new IMS Registration API into the framework
and add two APIs for feature parity.

1) Moves ImsRegistrationImplBase to the android.telephony.ims
namespace
2) Expose ImsRegistration AIDL in TelephonyManager as hidden
API.
3) Adds onVoicemailCountUpdate and
onSubscriberAssociatedUriChanged APIs for feature parity.

Bug: 63987047
Test: Telephony unit tests, manual IMS tests
Merged-In: I51a8ae5cf58b81708c21adc1b26a9eb59f6280fd
Change-Id: I51a8ae5cf58b81708c21adc1b26a9eb59f6280fd
2018-01-16 09:43:47 -08:00
Brad Ebinger
216b3ce485 Refactor ImsService to AIDL
The ImsService was originally designed as a flat
interface, all ImsFeatures would be forwarded
through ImsService. This has been refactored to
using AIDL interfaces for each feature, as it
is more straightforward.

Test: Manual, Telephony IMS Unit Tests
Change-Id: Ibe065ddec6f180eabda03cf06f842c642a11114f
2017-11-16 21:28:36 +00:00
Brad Ebinger
9a6369dbd5 Remove ImsService Feature Interfaces
The ImsService feature interfaces were designed
to support a flat ImsService AIDL. This is not
necessary anymore, so this interface is being
removed as part of prep for the new ImsService
definition.

Test: Manual
Change-Id: Iefbcd168441ce2547523cf3e6a99ab3de5f3f823
2017-11-07 11:05:51 -08:00
Brad Ebinger
13a64f078a Notify ImsService Status Correctly
Modifies ImsService to allow multiple status callbacks in
for one ImsFeature. This better handles one ImsFeature
for normal/emergency calling.

Bug: 38001858
Test: Unit Testing
Change-Id: I70ae6f5349aef75aa86d54fe37a3c32459ea3afa
2017-05-09 13:31:50 -07:00
Brad Ebinger
e63b35d0b2 Remove Session ID from ImsService APIs that do not need it.
Traditionally, to initiate a new call with the ImsService APIs,
you have to "open()" the interface, which returns a session ID.
This is not needed for querying other information, such as the
provisioning status of the ImsService slot.

Test: Manual
Change-Id: I155b291a49b9aa5ed9599f5a78b1e8d7ff9f8e1c
2017-02-17 14:50:48 -08:00
Brad Ebinger
1639c21be6 Adds @hide ImsService APIs
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)
Merged-In: Id3466c178384158c788ab1d708ab108bb95866fc
Change-Id: Id3466c178384158c788ab1d708ab108bb95866fc
2017-02-16 11:14:26 -08:00
Brad Ebinger
024aaf2388 Adding Dynamic ImsService Binding (1/3)
Adds support for dynamic ImsService Binding (change 1/3). Included
in this change:
- AIDLs for ImsServiceController
- ImsFeature/ImsServiceBase definitions
- KEY_CONFIG_IMS_PACKAGE_OVERRIDE CarrierConfig option

Test: Unit Tests in opt/telephony
Bug: 30290416
Change-Id: Ic4cb1d85a29681b08a6a525c588a72209862dcc3
2017-01-25 15:12:28 -08:00