567 Commits

Author SHA1 Message Date
Brad Ebinger
59a40691a5 Merge "Disable a phone number log for user build" 2017-03-09 21:39:00 +00:00
Hall Liu
6bb5110f2c Merge "Add further Connection-side APIs for RTT (part 2)" 2017-03-07 21:44:43 +00:00
Hall Liu
b64ac4c57a Add further Connection-side APIs for RTT (part 2)
Add methods and callbacks to facilitate local and remote RTT initiation
and termination in the middle of a call. Adds @hide Connection-side APIs
to communicate with the ConnectionService, as well as plumbing for
RemoteConnections.

Test: manual, through telecom testapps
Merged-In: Ia80604b7dff8586ff222dbccdbe55e91aab02178
Change-Id: Ia80604b7dff8586ff222dbccdbe55e91aab02178
2017-03-06 16:48:24 -08:00
Tyler Gunn
159f35c8e4 API review cleanups/changes.
- Change onCreateIncomingConnectionFailed/onCreateOutgoingConnectionFailed
to accept the connection mgr phone account as the first parameter.
- For the video APIs, pass the target SDK of the caller into along so
that the Telecom permission check can have fallback behavior for older API
versions.
- Add guidance for how UX should be shown in onShowIncomingCallUi API.
API guidance follows how the Dialer app shows its notification and full
screen UX.

Test: Manual, CTS.
Bug: 35767711
Bug: 35767096
Change-Id: Ib343f0eda1a4d067a38c553f33f140b4efcf3e48
2017-03-06 11:04:55 -08:00
youhei.x.miyoshi
b3cd7b51d3 Disable a phone number log for user build
A phone number is privacy data. Therefore, it should be prevented
from logging in user build.

Test: manual - checked log
Bug: 34582911
Change-Id: Id040653dbfd236250e7eb07c9c2e9587ded3d63f
2017-03-06 14:53:10 +09:00
Tyler Gunn
5a33057092 Merge "Support for showing self-managed calls in IncallService." 2017-03-01 20:32:56 +00:00
Hall Liu
07094df24a Add @hide to RttAudioMode IntDef
IntDefs apparently require an @hide annotation to avoid breaking CTS
tests. Adding it here.

Change-Id: Ifd748b55e68091132571df7e74fdb797bd6a83fc
Test: CTS
Fix: 35808951
2017-02-28 15:18:31 -08:00
Tyler Gunn
89e7a888be Merge "Fix videoStateToString for audio/paused state." 2017-02-27 02:55:25 +00:00
Tyler Gunn
1aee66f523 Fix videoStateToString for audio/paused state.
The videoStateToString method erroneously assumed that if the videostate
was Audio - Paused, that it was audio-only.  Simple logic error to fix.

Test: Added new unit tests.
Bug: 35645334
Change-Id: Ia5ae4d05284b70ad4ba86b8e5d2c53ee8e68a1fa
2017-02-21 19:22:21 -08:00
Hall Liu
95d5587d0a Introduce APIs for RTT calls (part 1)
Add signaling methods and data pipes for handling real-time text during
a call.

Change-Id: I876827c448252c5f786d7a4919c47891acb03877
Test: manual, through telecom testapps
2017-02-21 15:27:25 -08:00
Hall Liu
8f613fb4d6 Add extra key for app-specified outgoing call timeout
Bug: 34474757
Test: manual
Change-Id: Ia93d68d6a01308b0b93b88977daf983a0ed3a22c
2017-02-14 18:11:11 -08:00
Tyler Gunn
24e1833617 Support for showing self-managed calls in IncallService.
Also added new isInManagedCall TelecomManager API, used to determine if
there are ongoing managed calls only.

Test: Manual, cts
Bug: 34159263
Change-Id: Ib8020617607ccb433c2eee9b9d5a2c929665214b
2017-02-12 19:33:35 -08:00
Brad Ebinger
ed5c217fc0 Merge "Perform camera permission and app ops check when setting camera for VT." 2017-02-07 22:26:44 +00:00
Tyler Gunn
bf9c6fdb43 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
2017-02-06 14:49:03 -08:00
Tyler Gunn
d736a6b2c2 Merge "Self managed CS implementation." 2017-02-06 22:32:14 +00:00
Tyler Gunn
cd6ccfd23c Framework fixes to support VoLTE conf calls via RemoteConnectionServices.
Fixing some issues with the addExistingConnection and addConference APIs
on ConnectionService.  When a connection manager relays the addition of
an existing connection or a conference to Telecom, it will assign a new
ID to the new connection/conference.  Due to how RemoteCSes work, the
Connection/Conf will be added directly via TelephonyConnectionService and
also via the connection manager's connection service.  Because the ID
changes, we ended up adding these twice. Conferences weren't a problem in
the GSM conference case because the TElephonyConnectionService's
ConnectionServiceWrapper didn't know of the IDs for the children of the
conference.  However, due to how the existing connections work its not the
case for VoLTE conferences.  To mitigate this, I'm passing the original
connection/conference ID to the connection manager via extras (ugh) and
using this to ensure that when the new existing connection/conference is
added to telecom that the same ID is used.  This ensures that we can
properly de-dupe the requests from TelephonyConnectionService and the
connection manager.

Also, there was some missing code in RemoteConnectionService which would
cause it to not properly track existing connections.

Bug: 31464792
Change-Id: I436f4438fd000ea48ebea7ceb75105bd3f456e46
2017-02-06 12:31:53 -08:00
Tyler Gunn
44e019140e Self managed CS implementation.
Add required AIDL changes to pass along connection fails.

Test: Manual
Bug: 34159263
Merged-In: I0a24ff786b2867aa4e19ac79959df54a04983251
Change-Id: I0a24ff786b2867aa4e19ac79959df54a04983251
2017-02-06 16:20:12 +00:00
Brad Ebinger
d1ab15a1af Merge "Deprecate old TelecomManager actions" 2017-01-23 19:09:12 +00:00
Tyler Gunn
f50354363c Adding self-managed connection service APIs.
1. Adding new APIs for self-managed connection services.
2. Adding Telecom package-level documentation.

Test: Manual (unit, cts pending; this is just scaffolding for now)
Bug: 34159263
Change-Id: Ic226ec8bfcb2fbcc02fe802b47499e47aab17d0a
2017-01-18 14:44:43 -08:00
Brad Ebinger
23b1c6d061 Deprecate old TelecomManager actions
The ACTION_INCOMING_CALL and ACTION_NEW_UNKNOWN_CALL intents are
not used anymore and have been replaced with methods in
TelecomManager. This change marks them as deprecated.

Test: None
Bug: 33783690
Change-Id: I840b0ac202237cc43a0540fe64c832e119b33aa2
2017-01-12 13:10:40 -08:00
Christine Hallstrom
2830ce9a09 Add ability to set supported audio routes on phone accounts and connection
The set audio routes are used by Telecom to restrict where the audio may
be routed to. For example, an account can specify that calls may not be
routed over bluetooth headsets, which will prevent a new call from being
routed to this source.

This is a cherry-pick of abandoned ag/1521009.

Bug: 32958838
Change-Id: Idd5e4d38b157f11454f3d991385644f2f384596e
2016-12-13 17:48:50 -08:00
Brad Ebinger
90b6e78657 Merge "Readability improvements in Logging"
am: d51df736f6

Change-Id: If7bb6955d615b8369ac41d3bb8ba96aa0cc752d2
2016-11-17 19:29:17 +00:00
Brad Ebinger
0c3541be65 Readability improvements in Logging
We now truncate Session method paths and IDs based on the Logging level
to improve Session Logging readability in logcat. If another external
session is started off of an existing external Session, the preceding
histories are replaced with "..." so that the Session information is not
overwhelming.

Bug: 26571395
Test: Unit Tests and manual tests pass
Change-Id: I9ffda3d64f1072fa6228a82a86116a5e47d18c96
2016-11-16 11:05:15 -08:00
Tyler Gunn
8b58e73c48 Merge "Add CAPABILITY_SUPPORTS_VIDEO_CALLING to PhoneAccount."
am: 8223dc1ae9

Change-Id: Id8c6077d099f9ef943c09242acb22173b6628c1a
2016-11-14 18:08:11 +00:00
Tyler Gunn
58cbd7a9c7 Add CAPABILITY_SUPPORTS_VIDEO_CALLING to PhoneAccount.
Adding companion PhoneAccount capability which is used to indicate when a
PhoneAccount supports video calling.  That is, whether it can potentially
make video calls, but not necessarily at the current time.

This is an often requested OEM enhancement which is used to drive UX (e.g.
imagine a video calling icon showing up if the device supports video, but
only being enabled when the device is in range of a VT capable tower).

See bug for reference to design doc.

Merged-Id: I38379a3a1cf1be04c6136b89b93ee95193ee7b6f
Bug: 27328615
Test: Manual
Change-Id: I08fc18950e6d35a8a7df47ce37aa2326624b9fd3
2016-11-11 19:43:57 +00:00
Brad Ebinger
4d75bee99b Modify ConnectionServiceAdapter to include Session
Modifies the ConnectionServiceAdapter to include Session Information in
the AIDL interface so that external Sessions can be started in Telecom
from Telephony.

Test: Manual testing and Unit Tests pass
Bug: 26571395
Change-Id: I31bbfe433dd062a50bd05083e1a639dd4cd03403
2016-11-02 09:20:22 -07:00
Brad Ebinger
5beba8c4d1 Modify ConnectionServiceAdapter to include Session
Modifies the ConnectionServiceAdapter to include Session Information in
the AIDL interface so that external Sessions can be started in Telecom
from Telephony.

Test: Manual testing and Unit Tests pass
Bug: 26571395
Change-Id: I31bbfe433dd062a50bd05083e1a639dd4cd03403
2016-11-01 09:29:29 -07:00
Brad Ebinger
b32d4f8b5c Modify AIDLs to include Session.Info
Modifies the IConnectionService.aidl file to include Session.Info
information to pass from Telecom to Telephony, which is used to start
external Sessions in Telephony from Telecom.

Test: Manual testing and Unit Tests pass
Bug: 26571395
Change-Id: Ia09a0abfa13d5167542d4c67465ea9aa1930b58b
2016-10-28 12:14:24 -07:00
Brad Ebinger
3445f82907 Modify AIDLs to include Session.Info
Modifies the IConnectionService.aidl file to include Session.Info
information to pass from Telecom to Telephony, which is used to start
external Sessions in Telephony from Telecom.

Test: Manual testing and Unit Tests pass
Bug: 26571395
Change-Id: Ia09a0abfa13d5167542d4c67465ea9aa1930b58b
2016-10-27 16:11:18 -07:00
Brad Ebinger
9bec1a5095 Merge "Add support for starting external Sessions"
am: 4ce60695f9

Change-Id: I6957c8e2846d216f77f5f6337388e1fc296511de
2016-10-26 16:42:15 +00:00
Brad Ebinger
a0dc9765d3 Add support for starting external Sessions
This change adds support for parceling Session Information to be
transmitted over AIDLs and starting an external session in the external
process.

Test: Telecom Unit tests and new SessionManager Tests.
Bug: 26571395
Change-Id: Ie27ed88d4a8c344b34568025ddcf150fdcb38d62
2016-10-25 14:22:40 -07:00
Brad Ebinger
ce97bfbdb2 Switch on android.telecom.Log in Telecom
Move over the Runnable Class into android.telecom and turn on the
framework's usage in Telecom.
CP from: https://android-review.googlesource.com/#/c/287291/

Test: All Telecom unit tests pass. Manual Log testing has also been
confirmed to be working as it did before.
Bug: 26571395
Change-Id: If7e2036c746c5a953f3a77e2d625a423ce5bf8f3
(cherry picked from commit 9fbbd4052dee1dfa74b87502cec91cc51170d69d)
2016-10-20 23:18:26 +00:00
Brad Ebinger
37521b9ba5 Merge "Switch on android.telecom.Log in Telecom" 2016-10-20 22:53:39 +00:00
Brad Ebinger
b4ef12bba7 Merge "Adds registerSessionListener API to Log"
am: e3daed81eb

Change-Id: Ia42cba6a735170ce1aea653bd42b6f1182853819
2016-10-20 22:09:30 +00:00
Brad Ebinger
836efade0c Adds registerSessionListener API to Log
Adds the registerSessionListener API to android.telecom.Log to allow
callbacks to occur when a session has been fully completed.
CP from internal branch.

Test: Manual Testing
Bug: 26571395
Change-Id: I70ebd6f432768a5d7bd8f3a0997b8e0ef335bb35
2016-10-19 14:32:46 -07:00
Brad Ebinger
cedb97bfb6 Merge "Add support for new SessionManager and EventManager tests"
am: 42598f4a96

Change-Id: I9c629074ca39dfb06bd6b16217ba5e59a9e0a004
2016-10-18 21:30:57 +00:00
Brad Ebinger
be243f5b84 Merge "Transplant the Logging system from Telecom" am: cbb03d1ad3 am: 951dca8209
am: 0ab9a078e9

Change-Id: I79e6b2de4bf523036ed1d15debd142a1786249c5
2016-10-14 14:22:38 +00:00
Brad Ebinger
096d2829ed Add support for new SessionManager and EventManager tests
Test: Ran new unit tests
Bug: 26571395
Change-Id: I6d14d7c05b8fdc8dc1319a81f0e41f7bcd989b85
2016-10-13 15:26:58 -07:00
Brad Ebinger
4fb372fe16 Switch on android.telecom.Log in Telecom
Move over the Runnable Class into android.telecom and turn on the
framework's usage in Telecom.

Test: All Telecom unit tests pass. Manual Log testing has also been
confirmed to be working as it did before.
Bug: 26571395
Change-Id: If7e2036c746c5a953f3a77e2d625a423ce5bf8f3
2016-10-11 16:26:11 -07:00
Brad Ebinger
51b9834180 Transplant the Logging system from Telecom
This change is the preliminary transplant of the functionality from
Telecom into android.telecom. It is currently not being used
anywhere and is not hooked into Telecom yet. It will be after this
change is committed.

Test: Refactoring CL. Existing tests still pass
Bug: 26571395
Change-Id: I406975e686c6eaab7e31b1efa426b3406c8e90cf
2016-09-30 15:01:01 -07:00
Tyler Gunn
78e81ce277 Fix potential NPE in RemoteConnection. am: 9c2c583ad7
am: 16a2464291

Change-Id: I09c0719a180c58eb690f2eebffb65aa79d0e9f87
2016-09-21 20:11:29 +00:00
Cuihtlauac ALVARADO
0e5042e751 Merge "Fix parameter description" am: 750b523aa2 am: df5f3e6db8
am: b2a1ee15c9

Change-Id: I97356fde75e28e6074a819814353070a7e3327c0
2016-09-20 00:12:10 +00:00
Tyler Gunn
9c2c583ad7 Fix potential NPE in RemoteConnection.
When creating an instance of RemoteConnection, the code does not properly
handle the case where the video provider is null.  This could cause a
RemoteConnection.VideoProvider to be created for a non-existent binder.

Bug: 31372624
Change-Id: I990084e2d2d68cdf2dda426cb58ad68785b35422
2016-09-16 15:08:50 -07:00
Cuihtlauac ALVARADO
0b3b2a5f3b Fix parameter description
Correct parameter description text according to method name.

Change-Id: If6bd8254386a84efd338b58797c2c338ccb513b7
2016-09-13 14:49:41 +02:00
Tyler Gunn
6f657ee021 Add toString method for session event codes.
Used to get a human readable version of a call session event for logging.

Bug: 31199425
Change-Id: Idf024ec405f1d18ff2cfab7f814b2651d7d8f0a0
2016-09-02 09:55:25 -07:00
Hall Liu
4c01673a7b Merge "Rename PROPERTY_SHOW_CALLBACK_NUMBER" into nyc-mr1-dev 2016-08-31 17:38:54 +00:00
Hall Liu
25c7c4d100 Rename PROPERTY_SHOW_CALLBACK_NUMBER
This property actually indicates emergency callback mode.

Change-Id: I334cb5a702040768b879ca6189a9ab25237dd49d
Fix: 30005987
2016-08-30 13:41:02 -07:00
Tyler Gunn
e3222569c2 Update InCallService#onConnectionEvent comments.
am: 06f3fa66b7

Change-Id: I954dd7bd3079f33e5966a1998c4f676c98cbe0de
2016-08-29 21:45:04 +00:00
Tyler Gunn
06f3fa66b7 Update InCallService#onConnectionEvent comments.
Update comments to indicate the method is unused and to point developers
to the correct method.

Bug: 31056610
Change-Id: I5d1da69914e0fccd3cf3c504b68acbcf0c70c9c4
2016-08-25 09:26:15 -07:00
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