Two things:
1. The writeToParcel and readFromParcel in the ImsCallProfile never
worked; they were not parceling the Bundle properly.
2. Ensuring on writeToParcel that invalid Bundle contents are removed and
not sent across a Binder interface.
The existing Bundle.filterValues method accomplishes this by ensuring only
primitive types and android.* namespace parcelables are included in the
Bundle. We use this to ensure that when the ImsCallProfile instances cross
the binder call boundary, package-local Parcelables don't cause the
Bundle to be invalidated when unmarshaled in a place where the
pacakge-local parcelable is not available.
Test: Manual, also wrote new unit tests
Bug: 65562929
Change-Id: Iea982d14a053414b9a4daba998c021c61902119d
Adds the ERROR return state for bool provisioning values
so that we can throw an Exception in some cases.
Bug: 64540800
Test: Manual
Merged-In: Id412c0be939da6240a66a942730fd18badabb6c6
Change-Id: I0b79837c694d245999031ec65783857e114b7c75
Adds the ERROR return state for bool provisioning values
so that we can throw an Exception in some cases.
Bug: 64540800
Test: Manual
Change-Id: I0b79837c694d245999031ec65783857e114b7c75
Some carriers use sendrecv to indicate a call in a conference is active,
and sendonly to indicate that the remote party has held the call.
Adding support for these status values.
This ensures that remotely held calls for these carriers are set to held.
Test: Manual
Bug: 33272103
Change-Id: I4a950c4e143d5ac396b30569dbda0b1cf4e92a3e
A bad behaving service was causing the IMS registration
callbacks to block indefinetly waiting for the callback
binder implementation in another process to finish. Since
we update the IMS registration in a loop, we were never getting
to the updates for the other processes.
This change moves the AIDL definition to oneway. Since these
are callback AIDLs, the caller doesn't need to wait
for the callbacks to return before sending the others.
Bug: 63137625
Test: Manual
Merged-In: I0e049166ddf3604d312748b63a94fa6ebe77c29d
Change-Id: Id39b6b70aa20bb9986bf293abe2f9e683da4252e
Adds a method to check whether or not the ImsConfig
binder has died.
Bug: 62723694
Test: maual, follow bug procedure
Merged-In: I0ecd6a43d4375d3ac4d7d54b3d437832c0221f05
Change-Id: I9df6533e7e7dc69487cea50fada6c89599b031a3
Adding the callSessionMayHandover API that allows
for the lower layers to indicate that the call session
may handover based on actions taken by the user/UI
layer.
The API provides current and target RAT information
pertaining to the possible handover.
Bug: 62489988
Test: Manual
Change-Id: I006462ce5688bb99a94d5135574fb2c17878685a
A bad behaving service was causing the IMS registration
callbacks to block indefinetly waiting for the callback
binder implementation in another process to finish. Since
we update the IMS registration in a loop, we were never getting
to the updates for the other processes.
This change moves the AIDL definition to oneway. Since these
are callback AIDLs, the caller doesn't need to wait
for the callbacks to return before sending the others.
Bug: 63137625
Test: Manual
Change-Id: Id39b6b70aa20bb9986bf293abe2f9e683da4252e
Adds a method to check whether or not the ImsConfig
binder has died.
Bug: 62723694
Test: maual, follow bug procedure
Change-Id: I9df6533e7e7dc69487cea50fada6c89599b031a3
Adding the callSessionMayHandover API that allows
for the lower layers to indicate that the call session
may handover based on actions taken by the user/UI
layer.
The API provides current and target RAT information
pertaining to the possible handover.
Bug: 62489988
Test: Manual
Change-Id: I006462ce5688bb99a94d5135574fb2c17878685a
Test: Following scenarios for VoLTE and CS call and
verified the cause sent in PreciseCallState.
1) Conference call merge
2) Conference call, one remote party ends the call
3) Conference call, all remote parties end the call
4) Conference call, hangup locally
5) Normal call and hangup locally
6) Normal call and remote party ends the call
Bug: 38225047
Change-Id: I36edb0cbff4b130b0942a46dc6c15a7d842789c2
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
Merged-In: I70ae6f5349aef75aa86d54fe37a3c32459ea3afa
Change-Id: I70ae6f5349aef75aa86d54fe37a3c32459ea3afa
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
Merged-In: I70ae6f5349aef75aa86d54fe37a3c32459ea3afa
Change-Id: I70ae6f5349aef75aa86d54fe37a3c32459ea3afa
This change introduces "base classes" of the AIDL interfaces that are
implemented in vendor provided ImsServices. This allows for new APIs
to be added to the AIDL files, along with stub implementation of those
AIDLs in the base classes. By extending from the base class, older
implementations of the AIDL interfaces will not need to be updated
when the interface changes.
This change also moves some of the com.android.ims classes from
frameworks/opt/net/ims to frameworks/base. Any class that will be
used in the new unbundled ImsService system will need to be in
the framework, as opposed to the optional library that they are
in now.
Bug: 30290416
Test: Manual
Change-Id: I4a186d8e910d6d4f711e983ec8d717fc5cbdefab
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
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
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
Changing "setCamera" prototype to include the uid.
Test: Unit test, manual test.
Bug: 32747443
Merged-In: I7e6eb617d724972b0fcbd2f9a27f5c3ee91efd2d
Change-Id: I7e6eb617d724972b0fcbd2f9a27f5c3ee91efd2d