The the android.telecom.Call.Details class provides its own equals
implementation. Recently added in M is to also check if the mExtras
and mIntentExtras are different. Unfortunately, Bundles do not implement
equals. As a result when Telecom calls are parceled and sent to the
InCallServices, this means that the internalUpdate method will always
assume that the Details of a call have changed, even if they have not.
This was causing a LOT of extra calls to onUpdate in the InCall UI (2x the
amount). Although there is still room for improvement in the number of
callbacks from Telecom, this fix prevents a pretty significant regression
on that front.
Bug: 23218195
Change-Id: I128e996faf60376ed3df1dc848a97c4a7b0482ee
The platform grants runtime permissions by default to apps on the
system image that provide core device use cases which a user expects
to work out-of-the-box. We are now adding a test to ensure that
OEMs cannot pregrant premissions on non approved components.
bug:23043018
Change-Id: Id76717cce0ee59678956bd0be347d3c045fe4c51
This CL adds the following permissions by default to the
SIM call manager:
- microphone
- phone
BUG: 22790160
Change-Id: Icaf1db6c6943b3ddbd16a946a81d1bfb734d761f
Indicates whether the phone account supports displaying a subject line
for incoming calls and sending a subject line for outgoing calls.
Supports the IMS Instant Lettering feature.
Bug: 22769741
Change-Id: I6d803dc288bfd6d4e356310a8d10d5468c5d4186
When an IMS conference call encounters an SRVCC event requiring a
fallback to GSM/CDMA, we need to maintain the call time for the
conference host across this fallback. So, adding a connectTime attribute
in the underlying conference host's connection object which can be used
to account for the call time from the now inactive conference call into
the new call created.
BUG: 21918593
Change-Id: I13e7ae6e31f004e798776c02ac7a6ac09a10f0bd
Since addAdapter is storing the proxy binder objects in the adapter set, we need
to compare the underlying binder objects when trying to remove the adapter
from the adapter set. This was resulting in adapters accumulating in adapter
set every time a RemoteService was created.
BUG: 22062692
Change-Id: Ib9cc25a8b95622a524ed5a07d3ef56673669cd27
Since the Call API's callbacks are now fired from handlers, they end up
changing the order in which the callbacks from the Phone and Call API's
are fired. To preserve the below ordering, we move the call removal from
Phone's db to after all the onCallDestoryedcallbacks have executed.
1. Call->onStateChanged
2. Call->onDetailsChanged
3. Call->onCallDestroyed
4. Phone->onCallRemoved
BUG: 22127504
Change-Id: Ice17f727decb516baabbe69adae598ebdf370094
When TelephonyConnection is created for an unknown connection,
the recalculation of conference participants have to be
retriggered. This is because, unless that TelephonyConnection is
added to ConnectionService, it cannot be added as part of a
conference call in CallsManager.
Change-Id: Ic9359104f02eddff655d84fd25f5c28c9158e5f4
1. IMS MWI Feature
- Add new API to update waiting
voice message count, for UI
propagation based on RFC 3842
2. phantom call support
Supplementary services
3. IMS : Incoming Call Barring
- Modified existing API to support
request like registration,activation,
deactivation,erasure,interogation.
4.Unsol supplementary service notification
- send unsol supplementary notification to UI
- add call history info
Miscellaneous
5. Ims: Originate conference call in DIALING state
6. IMS: Addition of Extras to ImsCallProfile
- Add EXTRA string definitions to ImsCallProfile
7. IMS: Definition of error code
- answered elsewhere
- FDN call failure
8.
- Propagate IMS supplementary services to telephony framework
- Introduce call forwarding history info.
Bug: 21725750
Squash of 2 earlier CLs:
Change-Id: I52a64e9a5df3479189f62921a01655a50fb386fc
Change-Id: Idc3a433785e84a3d683cbcfc7fb90f0b89dced12
Change-Id: I428ce3c6a043e43b86dea41622e0a828d8b45e53
Used to mark IMS conference calls so that it is possible to know that we
never expect child calls to be associated with the conference.
Bug: 21085329
Change-Id: I7e5c82622ed382e431d4156878c28b37421e1e35
The problem was that we were calling Connection.getAudioState
in the conferencing code. This led to a null pointer exception.
Fix was to add a null pointer check.
BUG: 21957102
Change-Id: Ibad0f6cc70a5bc4a30023beb857125802bc35cd4
Add hidden TelecomManager.setDefaultDialer for system apps
to set the default dialer and trigger the broadcast
Bug: 21846308
Change-Id: Ifdd30cd1323ab0157edf7fd966173b6c52df6ba0
While authoring the CTS tests I discovered a few issues with the
VideoProvider.
1. The VideoProvider's default handler should be on the main Looper,
similar to other Telecom components.
2. When calling IVideoCallbacks, the try/catch for RemoteExceptions was
around the for-loop which iterates over the various VideoCallbacks. If
one was to fail, the other VideoCallbacks would not be called.
3. The mVideoCallbacks hashmap should use a ConcurrentHashMap; in CTS
tests I ran into a few concurrency exceptions related to the various
InCallServices registering callbacks while other methods on the provider
were being called.
Bug: 21802841
Change-Id: Ib0d46daf03554309044e9efaa991a15cb2c4b46b
Added constructor for VideoProviders to allow creating instances where
the Looper is specified. This is required for creating
VideoProviderProxy instances within Telecom.
Bug: 20232310
Change-Id: Ieb31e499caca9d65ff4b52c287e030c0ceeeb6ee