Commit Graph

116 Commits

Author SHA1 Message Date
Tyler Gunn
b5ed860de7 Add connection events for indicated when a connection is remotely held.
Note: This is different than the existing EVENT_ON_HOLD_TONE_START
and EVENT_ON_HOLD_TONE_END events, which trigger playing a hold tone for
remotely held calls.  Those events also take into account whether the call
is foreground/background; it is left as a future exercise to clean that
up.

Bug: 30349182
Change-Id: I919365d243ae3b9fe56454c7a2b9d5805b2c03a2
2016-08-17 13:48:27 -07:00
Santos Cordon
1a7493008f Add short string methods for capabilities and properties.
Bug: 30411195
Change-Id: I3aa81da23b75986fab8570b8b36e56a36a660045
2016-07-26 17:42:38 -07:00
Hall Liu
9f332c7ffc Add PROPERTY_IS_DOWNGRADED_CONFERENCE
Change-Id: I490876b45dcfb0b0efa9604c9d666db485923391
Fix: 29806833
2016-07-14 15:37:37 -07:00
Tyler Gunn
c96b5e0873 Finalize MEP functionality.
1) Finish plumbing of PULLING_CALL state.
2) Add new disconnect cause used when maximum number of calls across
all devices has been reached.
3) Add PII mask for toString of ImsExternalCallState.

Bug: 29522023
Change-Id: I78a0a9f3c3d846cfc58a1c5bcc6f105027602cbc
2016-07-11 10:33:37 -07:00
Hall Liu
ee6e86b2bc Rename disable add call extra
Used to be DISABLE_ADD_CALL_DURING_VIDEO_CALL, now just
DISABLE_ADD_CALL. The meaning has also changed -- having the extra set
means that adding calls should be disabled no matter what.

Bug: 29047863
Change-Id: Icd8966492b264a9c64dc4880080a706032f0759c
2016-07-08 15:14:42 -07:00
Tyler Gunn
089e99ee4d Merge "Add missing setPulling() method in Connection." into nyc-mr1-dev 2016-06-30 06:20:42 +00:00
Tyler Gunn
c242ceb406 Add missing setPulling() method in Connection.
Change-Id: I89c720b2fa3d3e1304766ba3779410b233a04c6a
2016-06-29 22:35:45 -07:00
Tyler Gunn
9c0eb0bd46 API cleanups per API review.
1. removing deprecation for setExtras on Connection/Conference as these
have legitimate use-cases going forward.
2. Expanded documentation on Call.Callback class to clarify how it is
expected to be used.
3. Updated Callback#onConnectionEvent callback docs to clarify its usage.
4. Expanded Call#sendCallEvent docs to clarify expected namespacing of
call event keys and extras keys, as well as clarification about backwards
compatibility and expectations of ConnectionServices.
5. Standardized the "invoked" vs "notifies" language in the Conference
docs.
6. Clarified how Connection callbacks from Telecom should be implemented.
7. Added Bundle parameter expectations for pre-defined connection events.
8. Documented capabilities and properties toString methods.
9. Documented expectations for onCallEvent method.
10. Expanded documentation for sendConnectionEvent method to clarify
namespacing, use cases, etc.

Bug: 29759275
Bug: 29759954
Bug: 29759773
Change-Id: Ib8c983af4dbbfee68edb60937b268e2c1a9b5e64
2016-06-29 11:46:40 -07:00
Hall Liu
10208661cd Add disable add call during video call extra and carrier config key
Bug: 29047863

Change-Id: I977041ec72968bdccc69a706e27dd4b5ec336ba7
2016-06-27 17:19:59 -07:00
Tyler Gunn
7d633d3337 Add onConferenceSupportedChanged callback, carrier config.
Used to inform listeners when a connection can or cannot be part of a
conference.  Used to inform the conference controller so that it can
recalculate the conferencable connections.

Adding carrier config for carrier requirement.

Bug: 29059073
Change-Id: Iab028fd44d87c8dc2bbbe8bba7ba9ccdc223fe51
2016-06-27 10:49:04 -07:00
Tyler Gunn
4b6614e576 Add support for dropping fg video call on answer of audio call.
Adding two new carrier config options:
1. treat_downgraded_video_calls_as_video_calls_bool - when there is an ongoing
call which was previously a video call (or is currently video call), some
carriers require that this is treated as if it is a video call for
telephony logic such as in (2).
2. drop_video_call_when_answering_audio_call_bool - if the user is in an
active video call (see (1)) over wifi, and an incoming audio call comes in,
when this carrier config option is "TRUE", the video call will be dropped
when the audio call is answered.

Adding new connection extra to indicate to the dialer app that answering
a ringing call will cause the current active video call to drop.

Bug: 29275420
Change-Id: Ied5dbabc8ff09045ba41c5eba2136adad10db80e
2016-06-23 12:48:43 -07:00
Brad Ebinger
e93c91edc2 Merge \"Handle Concurrency issues in Connection\" into nyc-dev
am: df41725e53

Change-Id: I0332df9dc96086a3094dc4ab53573b5cf57f8730
2016-06-15 22:48:06 +00:00
Brad Ebinger
4fa6a01898 Handle Concurrency issues in Connection
Currently, there is a possibility of concurrent thread operations to the
Extras bundle in Conference/Connection. This can cause unexpected
behavior. We have added a lock on the Extras to prevent that from
occuring.

Bug: 29330310
Change-Id: Id63a9797c2f748120a3df8e3ce06c4ce3891c651
2016-06-15 20:53:25 +00:00
Brad Ebinger
a3d4baf43b Merge "Add EVENT_CALL_MERGE_FAILED Connection Event" into nyc-mr1-dev 2016-06-13 17:39:19 +00:00
Brad Ebinger
15847070b5 Adds CDMA Voice Privacy Property to Call
Adds the CDMA Enhanced Voice Privacy Property to a Call when it has been
enabled for the call by the network.

Bug: 26931679
Change-Id: I1f5b4a4fb22fe6aaaf0c424ef11925c6058c6e82
2016-06-03 13:34:07 -07:00
Brad Ebinger
2c1c164578 Add EVENT_CALL_MERGE_FAILED Connection Event
Currently, if a call merge failure occurs, we can not try again because
the merge button "gets stuck". This change adds a new Connection Event
that notifies the InCall UI to enable the merge button so that the user
can try again.

Bug: 28847375
Change-Id: I376f6ee446e135577a54aa36ff1dfc77af87261a
2016-05-31 11:09:02 -07:00
Tyler Gunn
071be6f42b Add removeExtras(String...) prototype per API review.
Per API review, adding a convenience prototype of the removeExtras method.

Bug: 28295516
Change-Id: Icc0e040516c06205540c5683bde16882a73a89d6
2016-05-10 14:52:33 -07:00
Tyler Gunn
2cbe2b5816 Un-@hide multi-endpoint APIs.
Bug: 28621640
This reverts commit 1bf206b766.
Change-Id: If8c85e4adeb017eec2b7e8199010deae2a920c6a
2016-05-06 03:07:45 +00:00
Tyler Gunn
1bf206b766 Hide multi-endpoint APIs.
Per feature council decision, the multi-endpoint APIs will be @hide for
the N release.

Bug: 28196918
Change-Id: Ia80b089bc754ce87ca208382eb79442b5265844d
2016-04-15 11:28:44 -07:00
Tyler Gunn
53befa2e0b Merge "Add missing null checks on Conference and Connection." into nyc-dev 2016-03-29 19:02:08 +00:00
Tyler Gunn
a8fb8aba7c Add missing null checks on Conference and Connection.
Also add missing bundle passing for Connection Events.

Bug: 27850430
Change-Id: I0f79635929cbe5da18b528b6c1119c7ce4d8e32b
2016-03-29 10:24:22 -07:00
Tyler Gunn
720c664401 Add connection properties to Connections.
- Per suggestion of API council, moving properties of a Connection from
CAPABILITIES_* to PROPERTIES_*.

Bug: 27458894
Change-Id: Icce921b03cda514a991646ed39a26559c7e91230
2016-03-24 20:20:11 -07:00
Tyler Gunn
dee56a8a79 Expand call/connection extras API.
Currently, connection extras are propagated up to Telecom as an
entire bundle.  This is not ideal, as any time a change is made to
the extras, the bundle needs to be fetched, changed, and then re-set on
the connection, where it is parceled to Telecom as a whole.

Using how extras on an Intent as inspiration, this CL adds separate
putExtras, putExtra, and removeExtra methods to allow manipulation of
the extras bundle without operating on it in its entirety.

This Cl also adds support for Calls modifying the extras bundle, with
changes propagated back down to ConnectionServices.

Bug: 27458894
Change-Id: I152340a3bca2dc03f170b06b172a6823410fb961
2016-03-23 16:06:34 -07:00
Hall Liu
712acbe13c Un-hide Connection#onReject(String) and its associated capability
The capability is CAPABILITY_CAN_SEND_RESPONSE_VIA_CONNECTION

Bug: 27501686
Change-Id: Id73bb99650ca8440a9f4e87bfe533a97c4d19778
2016-03-15 10:19:40 -07:00
Tyler Gunn
876dbfb476 Add API support for multi-endpoint.
This CL includes changes required to support multi-endpoint (see the
design doc linked off the bug).

Main changes include:
- support for indicating if a call/connection is "external" to the device.
- support for indicating if an external call can be pulled from the
remote device to the local device.
- API used to initiate a pull of a call external to the current device to
the current device.
- Made the "connection event" API public (was previously @hide); this will
be used to support passing some error events involving pulling calls to
the incall ui.
- Added new InCallService metadata which will be used to determine if an
InCallService wants to be informed of external calls.
- New disconnect causes which will be used to expose the fact that a
multi-endpoint call was answered elsewhere and that a call ended because
it was pulled to another device.
- New call log call types to indicate if calls were answered elsewhere
or pulled to another device.

Bug: 27458894
Change-Id: I423f64ff965b5e50194635a51868c327782db2a1
2016-03-14 23:26:34 +00:00
Tyler Gunn
bd1eb1f105 Add new ConnectionEvent API (hide) to send a notification to Telecom
Connection event used to inform Telecom that it should play or stop
the on hold tone. This is used to play or stop a tone when the peer
puts the current call on hold.

BUG=25357778
Change-Id: I2669f8f5062449784a712b9dd28e576326fcc679
2016-02-16 14:36:20 -08:00
Tyler Gunn
f97a009f76 Add capability to determine if downgrade to audio is denied.
By default we assume downgrade to audio is permitted; this capability
probides a means for a carrier to specifically deny that.

Bug: 22728624

Change-Id: I75e0a5b9e5ad2d970003a4691b6fc0ac0dcfe9e0
2016-01-19 15:59:34 -08:00
Tyler Gunn
014c711b0d Fix capability/property checking methods to handle multi-bit capabilities.
Some capabilities, such as CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL
are defined in terms of other capabilities; eg:
CAPABILITY_SUPPORTS_VT_LOCAL_RX | CAPABILITY_SUPPORTS_VT_LOCAL_TX

The current capability logic will return TRUE if checking for
CAPABILITY_SUPPORTS_VT_LOCAL_BIDIRECTIONAL and either of the TX or RX bits
is on; which is incorrect.  Yay cts tests for finding this.

Bug: 26272951
Change-Id: I55a5676674ee74e213deb3a07e226b04a37d10ee
2015-12-18 14:33:57 -08:00
Bryce Lee
842ec9c407 Merge "Add callback for connections to be notified when the ringer is silenced." into cw-e-dev am: 52bdf11583 am: b241487c16 am: 64e41590d2
am: 0ca7de9031

* commit '0ca7de90310034d118f21343a69a38ebc02dd0bc':
  Add callback for connections to be notified when the ringer is silenced.
2015-11-30 19:17:53 +00:00
Bryce Lee
cac50775b2 Add callback for connections to be notified when the ringer is silenced.
Bug: 25644529
Change-Id: Ie7dc9028cf6243d98b2d87ca4c8b3ffcd31e3676
2015-11-17 15:13:29 -08:00
Tyler Gunn
6b3db37f3c Merge "Support for Telecom Call IDs." 2015-09-17 17:00:04 +00:00
Tyler Gunn
f0500bd635 Support for Telecom Call IDs.
Add support for caching telecom call ID in connection and conference
classes.

Enhance connection service call ID generation:
For "existing calls", the connection service will try to use a call ID
of the format ClassName@ID
Where ClassName is the ComponentName of the connection service, and ID
is a unique incrementing ID for the connection service.

Bug: 23357902
Change-Id: I2284b018465e2b330fc8a3b556758e9f34a2daba
2015-09-01 10:59:48 -07:00
Bryce Lee
8190168077 Add capability for a connection hand rejection text response.
Change-Id: Id90417736bed7ab8750144ccaf3c7b449ec832b8
2015-08-28 16:38:02 -07:00
Yorke Lee
5346396ba2 Correctly hide setConnectionService
Bug: 22957023
Change-Id: Ia3bd74f2fcc9f9dd5c9298f4505c18ee652436be
2015-08-04 16:07:19 -07:00
Tyler Gunn
335ff2ec7a Add telecom extra keys required for DMR release.
Bug: 22848290
Change-Id: I3328234e3f07d83d0dbe5b61b959344b6cc5cc3f
2015-07-30 14:18:33 -07:00
Roshan Pius
e927ec02f5 Maintain call time across SRVCC (2/3).
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
2015-07-15 15:47:21 -07:00
Yorke Lee
e911c8d196 Standardize stateToString return values
Bug: 20303674
Change-Id: I884029614c8ce36120c1fc039ef33c0e6736ed5c
2015-07-14 11:39:36 -07:00
Anthony Lee
930d6b07e3 Merge "Add capability to indicate a conference will never have children." into mnc-dev 2015-07-02 18:33:53 +00:00
Santos Cordon
895d4b8f63 Telecom API council changes.
- adding more javadocs.
- fixing javadoc on isEnabled
- renaming to CONFIGURE_PHONE_ACCOUNT

Bug: 21573551
Change-Id: Ice035b8573a08ea18181a73c9e9a462520a934f1
2015-06-29 16:17:47 -07:00
Tyler Gunn
d409173570 Add capability to indicate a conference will never have children.
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
2015-06-29 09:15:37 -07:00
Sailesh Nepal
000d38ab3c Fix crash when doing conferencing over Wi-Fi
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
2015-06-21 10:25:13 -07:00
Tyler Gunn
84f381b4eb Correct issues with VideoProvider discovered via CTS tests.
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
2015-06-12 09:39:47 -07:00
Tyler Gunn
4e9bbaf043 Add support for specifying looper on VideoProviders.
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
2015-06-10 10:39:48 -07:00
Tyler Gunn
b674d069d8 Merge "Add API docs for RemoteConnection VideoProvider/Callback." into mnc-dev 2015-06-09 19:44:06 +00:00
Tyler Gunn
295f5d7777 Add API docs for RemoteConnection VideoProvider/Callback.
Bug: 21573551
Change-Id: I434d83fa84f9515634776820b2e6a8004cf693ee
2015-06-04 11:08:54 -07:00
Tyler Gunn
87b73f370e API Cleanup: Remove VideoState class.
- Remove VideoState class.
- Replace references to VideoState constants with VideoProfile equivalent.
- Push VideoState static methods into VideoProfile.

Bug: 21573551
Change-Id: I1bca02772b5b7d86643f612824b07faef7618725
2015-06-03 10:09:59 -07:00
Tyler Gunn
b702ef8a91 Cleanup Video API javadoc.
- Cleaned up documentation and added more details where possible.
- Also added cross references from the VideoProvider and VideoCall
APIs to make it more clear what the link is between the two.

Bug: 21520606
Change-Id: I0a79450d69841df5850061311a523b37688efc49
2015-05-29 11:51:53 -07:00
Santos Cordon
6b7f955c2d Add extras to Connections/Calls. (1/3)
Two major changes:
1) Add the notion of extras to a Connection.  These extras will be
parceled through to InCallService as Call.getExtras()
2) The previously existing Call.getExtras() has been renamed to
getIntentExtras(). This name better describes the fact that these
particular extras are from the original CALL or INCOMING_CALL intents.

Change-Id: I08c1baf4f08d54757f98012f0c08b423a707c53d
2015-05-28 09:43:00 -07:00
Yorke Lee
abfcfdc044 Make Conferenceable an abstract class
Bug: 21066017
Change-Id: Ibcbccfc7b1380e417b464aed9b968cbc0a6a1cc2
2015-05-13 20:48:19 -07:00
Yorke Lee
4af5935c71 Rename AudioState to CallAudioState
Deprecate AudioState class and make methods @SystemApi where
necessary to minimize impact to SystemApi
Replace usages of AudioState inside Telecom sub-systems
Fire both onCallAudioStateChanged and onAudioStateChanged callbacks
for backward compatibility
Support both setAudioState and setCallAudioState for all classes

Bug: 21040387
Bug: 21088300
Change-Id: I3ec7b3afdaa344c6d639d1c421f1842d67f7d0f7
2015-05-13 14:58:15 -07:00