71 Commits

Author SHA1 Message Date
Tyler Gunn
b88b311463 Perform camera permission and app ops check when setting camera for VT.
When a calling InCallService attempts to use the setCamera API on the
VideoCall, Telecom will perform a permission check to ensure that the
caller has the correct camera permission and passes the app-ops camera
check.  A failure to set the camera will result in a callback via the
call session event API.

This got a little messy as the app ops package name needs to come from the
InCallService, and handler usage in the VideoProvider API means we had to
pass around the uid/pid of the caller, obtained before we trampoline onto
the handler.

Test: Unit tests added, manual testing performed.
Bug: 32747443
Change-Id: I555a04f9c3fb45e60bb811f64ba855ccf2e3b0e2
2016-11-09 10:19:23 -08: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
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
Tony Mak
23642330a7 Merge "Remove PROPERTY_WORK_CALL" into nyc-dev
am: 5ee420c0d5

* commit '5ee420c0d562e9ff55fe9bf03c746bc76fd40d5e':
  Remove PROPERTY_WORK_CALL

Change-Id: I17d204d01b2fc356fa6b70d4c5cd73f4b0a10d6c
2016-05-23 17:26:45 +00:00
Tony Mak
9ece303402 Remove PROPERTY_WORK_CALL
Bug: 28842878
Change-Id: I7fb28ec3b121f4546ea60d6b170c2c6d98ffcb8c
2016-05-20 19:56:08 +00:00
Tony Mak
2a63190228 Rename PROPERTY_WORK_CALL to PROPERTY_ENTERPRISE_CALL based on API review
am: 53b5df43b4

* commit '53b5df43b49b191e442c4d2c7b9a9cba3ebdcf92':
  Rename PROPERTY_WORK_CALL to PROPERTY_ENTERPRISE_CALL based on API review

Change-Id: I24a866a5947a20127f3b79e2e75ba0cf534b450c
2016-05-20 16:01:00 +00:00
Tony Mak
53b5df43b4 Rename PROPERTY_WORK_CALL to PROPERTY_ENTERPRISE_CALL based on API review
TODO: After updating all places that use the SDK, remove/hide the old API

Bug: 28842878

Change-Id: I131be644439080dd0507cd10d8bd6618246ee7ad
2016-05-20 15:39:38 +00: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 1bf206b766654ea9c4e9bc7a703a9d5f1d30ab72.
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
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
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
Santos Cordon
3c20d63373 Adding toStrings() to the API.
Bug: 16979045
Change-Id: Ibbe1bcea6ab7981f62e7fb4bbe35f71e881166bd
2016-02-25 16:12:35 -08:00
Sailesh Nepal
1bef339b88 Add new public API to allow call screening
This CL adds a new service that the default dialer can implement to
screen incoming calls.

If the service is implemented then Telecom uses it to decide if a call
should be shown to the user or rejected.

Note, I initially tried to simply extend InCallService instead of
creating a whole new service. The problem with this approach is that:
  - this breaks some in call services which show UI as soon as they are
    bound to
  - the in call service lifecycle is tightly coupled to adding and
    removing calls. Call screening happens before a call is added which
    makes it a bad fit to in call service
  - call screening is a function of only the default dialer's in call
    service but the existing code also binds to "controller" call
    services

For these reasons it seemed simpler to just create a new optional
service.

BUG: 22857261
Change-Id: I53f2ef93360e0af19b6ce45af21026be6cf3a7f3
2016-01-27 13:54:12 -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
Tony Mak
64ef34bc1a Merge "Add a new property PROPERTY_WORK_CALL" 2016-01-06 12:25:14 +00:00
Tyler Gunn
bd1bf125e4 Merge "Fix capability/property checking methods to handle multi-bit capabilities." 2016-01-04 16:33:37 +00:00
Tony Mak
a68dcce8c3 Add a new property PROPERTY_WORK_CALL
In our current design, in-call ui in parent user is used.
We need a way for Telecom to tell in-call ui that is the call a work
call or not show that we can have some UI changes to reflect it.

Bug: 26022174
Change-Id: I5f54371ddac14ffdb50359c2e792b9f24858bcb8
2015-12-19 02:49:27 +00: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
Tyler Gunn
584ba6c1d1 Remove dependency on android.telecom.Call in VideoCallImpl for testing.
VideoCallImpl had a depedency on android.telecom.Call, which was used
to get the current video state of a call when the user issues a
session modify request (we need to know what the video state was before
the request was sent).  This proved problematic for unit tests, as
android.telecom.Call is a final class and cannot be mocked.

These changes assume the VideoCallImpl will instead have a video state
property, which is updated by the Call whenever it changes.  This
removes the dependency on the Call, and makes it possible to unit test the
API.

Change-Id: Ie67255d68b23e32aa177b30ac6439632fad5cc27
2015-12-08 10:53:41 -08:00
Bryce Lee
5a0b7e9800 am 8bfa215a: am 3ef68803: am ad9a0efc: Merge "Add capability for a connection hand rejection text response." into cw-e-dev
* commit '8bfa215ab1ea29cc51ad38fbf4728542c8cb0aae':
  Add capability for a connection hand rejection text response.
2015-09-01 16:07:25 +00:00
Bryce Lee
8190168077 Add capability for a connection hand rejection text response.
Change-Id: Id90417736bed7ab8750144ccaf3c7b449ec832b8
2015-08-28 16:38:02 -07:00
Tyler Gunn
10397d377d am 393a93ab: am 7d4cf23f: am 9e191aa6: am a6562603: am 1e9bfc64: Fix incorrect android.telecom.Call.Details equality check.
* commit '393a93abaf8eb14a6b7efebcd7665484558161f8':
  Fix incorrect android.telecom.Call.Details equality check.
2015-08-19 23:13:40 +00:00
Tyler Gunn
a656260310 am 1e9bfc64: Fix incorrect android.telecom.Call.Details equality check.
* commit '1e9bfc6461d3fe5455c9d7a21414ec66695b5798':
  Fix incorrect android.telecom.Call.Details equality check.
2015-08-19 22:29:51 +00:00
Tyler Gunn
1e9bfc6461 Fix incorrect android.telecom.Call.Details equality check.
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
2015-08-19 20:52:13 +00:00
Yorke Lee
e886f63b2b Ensure that OnCannedTextResponsesChanged callback is fired
Bug: 22952515

Change-Id: Ic94db1dd2fc9d7db2259265b90be86617ed93971
2015-08-05 16:51:54 +00:00
Roshan Pius
f08a7ada3a am 8f596907: Merge "Change sequence of call removal from Phone\'s db." into mnc-dev
* commit '8f596907a5241badad821a6d3490eb2cd7dd23c5':
  Change sequence of call removal from Phone's db.
2015-07-08 22:08:46 +00:00
Roshan Pius
1ca6207a1e Change sequence of call removal from Phone's db.
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
2015-07-08 14:47:36 -07:00
Shriram Ganesh
ddf570e822 MWI,phantom call,Suppl services, error codes
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
2015-07-06 11:28:19 -07:00
Yorke Lee
be2a4a248c Fix typo in Call.Details.propertiesToString
Change-Id: I7bb52138912fddef20862f5f7a29a8ec2e0a1d66
2015-06-12 10:10:55 -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
32f2473160 More video related API fixes
android.telecom.Connection.VideoProvider
* onSetPauseImage takes Uri instead of String
* changeCallDataUsage -> setCallDataUsage
* add quality constants to changeVideoQuality() docs

android.telecom.InCallService.VideoCall
* setPauseImage takes Uri instea dof String

android.telecom.VideoProfile.VideoState
* Move constants to VideoProfile, prefix with STATE_

Bug: 21040387
Bug: 21066505
Change-Id: I764e72aced9d1e2d30d6d0cf0862100860d47c79
2015-05-12 16:45:14 -07:00
Tyler Gunn
4538216a31 Change sendSessionModifyRequest VideoProvider API signature.
Including a fromProfile in addition to the requestedProfile.

- Changed VideoCallImpl to generate the fromVideoProfile based on the
call's current videoState.  This ensures the InCall UI only needs to
pass in the new video profile; the VideoCall Impl already has enough
knowledge to generate the fromProfile.
  - Changed VideoCallImpl to track the current videoQuality, which forms
a part of the fromVideoProfile.

Bug: 20704229
Change-Id: I89f293f03a2b13fc8c1dcfd8a07ab8640d3950e0
2015-05-06 08:52:27 -07:00
Andrew Lee
2378ea76d4 Add Properties to Call.Details.
Moved some capabilities to properties which seemed appropriate.

Bug: 20160395
Change-Id: Iacef4365822e5c3e50f0c41a501bf295c22055f1
2015-04-30 17:21:10 -07:00
Andrew Lee
011728fc3a Add handler parameter for callbacks.
Bug: 20160491
Change-Id: I94639b06b8c97b6585e169d667a67ce328e716af
2015-04-30 15:24:50 -07:00
Etan Cohen
d7b4b81274 Merge commit '7595842' into merge2
Change-Id: I7e11e98e6d59562374195a8761d64a79dc0268e8
2015-04-24 13:56:35 -07:00
Santos Cordon
e3c507b79b Remove CallState and rename PRE_DIAL_WAIT
Bug: 20532827
Bug: 20532435
Change-Id: I5f0308c5cf4e4a9cf9020b4fe7fa5f3f8dee6e67
2015-04-23 14:44:19 -07:00
Yorke Lee
e661d9fb6f Make CAPABILITY_CAN_PAUSE_VIDEO public
Change-Id: If20f642a3d6bda886a68bb1e0ce459c38361a73c
2015-04-21 13:42:24 -07:00
Jay Shrauner
d01242946e Merge "Remove connection substate" 2015-04-16 23:06:05 +00:00
Andrew Lee
da80c870a8 Rename Call*Listener to Call*Callback.
Deprecate the existing Listener methods and interfaces so that they
can be replaced.

Bug: 20160491
Change-Id: I11c104c625b03751f3792fc4367883c18c6e2d54
2015-04-16 15:17:20 -07:00
Jay Shrauner
8f98843924 Remove connection substate
Bug:20300433
Change-Id: Ifefc08b5165de3e0b6ce92007e5f612879dcc4d9
2015-04-16 14:42:39 -07:00
Tyler Gunn
75958420f2 Support for multiple VideoCall.Listeners for a VideoCall.
The current code assumes that only a single instance of VideoCall will be
provided to the default system InCall UI.  Ideally multiple
InCallService implementations should be able to use the VideoCall APIs.
Note: it only really makes sense for a single InCallService to get/set
the video surfaces.

- Fixed bug in ParcelableCall which would cause a new instance of
VideoCallImpl to be created every time a call is updated from Telecom.
Added a flag to ParcelableCall to indicate whether the parcel includes a
change to the video provider information, which is used when unparceling
to determine whether to set/create the video call impl.
- Renamed "setVideoCallback" to "addVideocallback".
- Modified Connection.VideoProvider code to keep a list of Video callbacks
and fire off all of them when Video Provider changes occur.

Bug: 20092420
Change-Id: Ic16b6afe1b7532cc64d006c133adbae57946d97d
2015-04-16 16:37:25 +00:00
Vinit Deshpande
cb43ebb360 Merge "am b5e0cfb..557d2f5 from mirror-m-wireless-internal-release" 2015-04-16 02:36:30 +00:00
Jay Shrauner
1cf9b6bec1 DO NOT MERGE Make Telecom/InCallUI APIs public
Bug:20260870
Change-Id: Ie3a2db0685664f2f1ceea8f40b1249d01e9385b8
2015-04-15 14:42:24 -07:00
Andrew Lee
e268f4c28e DO NOT MERGE Suffix VT_LOCAL/REMOTE with BIDIRECTIONAL.
Bug: 20160395
Change-Id: Ib343fde5088f3a5823c73de6ab77564b4be0d12c
2015-04-15 13:08:21 -07:00
Jay Shrauner
55b97525f0 Make Telecom/InCallUI APIs public
Bug:20260870
Change-Id: Ie3a2db0685664f2f1ceea8f40b1249d01e9385b8
2015-04-15 12:03:48 -07:00
Jay Shrauner
193de667ed DO NOT MERGE Remove deprecated telecom APIs. Mark others final.
Bug:
Change-Id: I8a04903052a964f3997b5bb36730b8b200c8e472
2015-04-15 11:05:50 -07:00
Jay Shrauner
164a0acf53 Remove deprecated telecom APIs. Mark others final.
Bug:
Change-Id: I8a04903052a964f3997b5bb36730b8b200c8e472
2015-04-14 22:57:30 -07:00
Vinit Deshpande
80047faad9 am b5e0cfb..557d2f5 from mirror-m-wireless-internal-release
557d2f5 Merge "Add ConnectivityManager.reportNetworkConnectivity() API" into m-wireless-dev
ab5267a Fix onLost/onFound logic in isSettingsAndFilterComboAllowed
bfd17b7 Add ConnectivityManager.reportNetworkConnectivity() API
238e0f9 OBEX Over L2CAP + SDP search API for BT profiles
31a94f4 Add ConnectivityManager.getActiveNetwork(). Rework NetID allocation in ConnectivityService so registerNetworkAgent() can return the allocated NetID.
bf18bed Merge "Non-functional code cleanup of ConnectivityService." into m-wireless-dev
db8784e Merge "Cleanup of Video Call pause functionality." into m-wireless-dev
e75b9e3 Non-functional code cleanup of ConnectivityService.
e593d0a Onfound onlost feature.
0326f58 Merge "API for config app." into m-wireless-dev
e9b056f API for config app.
d5351e7 RTT framework interface update
582b868 Unhide Network.openConnection(URL, Proxy).
0d719ca Fix typos in ConnectivityManager documentation.

Change-Id: Ib4c88f6d7ad1b24227b032555c62a5804194384b
2015-04-14 16:15:02 -07:00