History log of /packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
60da84f041f92f5d4ae503720c51f0b68d604221 25-May-2017 Tyler Gunn <tgunn@google.com> Merge "Add ability to set parent at the same time as adding a connection." into oc-dev
7658171d6d496686263d0fc9da55a0ed7a61f818 09-May-2017 Tyler Gunn <tgunn@google.com> Add ability to set parent at the same time as adding a connection.

This is used when adding the children of IMS conferences to prevent jank
in the UI.

Test: Manual
Bug: 37581781
Change-Id: I5effdcfaa51fcdf85155ab6bedffdb20270cccb5
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
ddb03e1387a09f9c7da624b064bf4f5b90ed478c 12-May-2017 Tyler Gunn <tgunn@google.com> Call "createConnectionComplete" callback in Telecom.

When done creating a connection in Telecom, call createConnectionComplete.
Note: Checks the serviceinterface for null since in the case of a
"null connection" from the ConnectionService we'll be unbound by
the time we get here.

Test: Manual
Bug: 33272455
Change-Id: Ic23f6ad65d49d2a8c70ac4d35d53feb0dd5e34bb
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
60d66a2801e3823154c1b0de9567afa3c1b50fbc 03-Apr-2017 Tyler Gunn <tgunn@google.com> Revert "Disable a phone number log for user build" am: 46bc3fd58a am: 64b7f379f1 am: 487621a791
am: 8f1b2f9035

This was reverted in AOSP/Master. It should be CPed into oc-dev as
it cleans up some ERROR log messages.

Test: Manual
Merged-In: Ie26430981b13344f57252edb6dfbcb4cc95b8706
Change-Id: Ie26430981b13344f57252edb6dfbcb4cc95b8706
(cherry picked from commit 27f750d3a30f48866ac8c8e9cb998a85fde986b9)
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
ca766d28471cc41d9ef33682a41edd1f99448d42 08-Mar-2017 Tyler Gunn <tgunn@google.com> Self-Managed Incoming Call Disambiguation UX.

- Handle auto-disconnect of foreground call when answering a self-managed
call.
- Enforce restriction that the PhoneAccount associated with a self-managed
CS must have a label which is the app's name.
- Ensure self-managed phone accounts can't be registered with
call provider, connection manager, or sim sub capabilities.
- Add "incoming call" UX which is shown when a new incoming call from a
self-managed CS comes in and there is an existing call for another CS.

Test: Unit, manual
Bug: 34159263
Merged-In: I371be9baa6f56c77aa83349977c0131f0e319047
Change-Id: I371be9baa6f56c77aa83349977c0131f0e319047
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
9a03fe2e1894d4a3968a78af2b2ecff26f594105 10-Mar-2017 Brad Ebinger <breadley@google.com> Merge "Disable a phone number log for user build" am: 18f843be39 am: 2092b19393
am: 74595d6091

Change-Id: I2c6466e3ae4d4d80805b4d479263baaeb271cf4c
fac1dba0e2c508afe197994ec831adf6229cee86 12-Dec-2016 guobing.x.xiong <guobing.x.xiong@sonymobile.com> 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: Ia8cd47f1e50019a1eff18362195308e3dd38881b
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
b8b5a6976b44f92494971672ca3c1e6a71974d54 15-Feb-2017 Hall Liu <hallliu@google.com> Implement mid-call RTT initiation and teardown

Adds functionality to testapps and to framework to allow for local and
remote initiation and disconnection of RTT.

Test: manual
Merged-In: I0e8248b495a7d3750c840591f1fa5388b34a32e2
Change-Id: I0e8248b495a7d3750c840591f1fa5388b34a32e2
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
1edf04a086db22869f0858536eb68bbdf5736ece 07-Mar-2017 Tyler Gunn <tgunn@google.com> API review cleanups. am: 115c06ee64 am: aa59fe7535
am: 124b43d958

Change-Id: I9203a225f2c320f370343c5431d586ae87747156
115c06ee64e209cda99abdc1fbd23fd65aa6da47 02-Mar-2017 Tyler Gunn <tgunn@google.com> API review cleanups.

- Modify the video call permission check to use the API version of the
caller to determine whether to use the API26
SESSION_EVENT_CAMERA_PERMISSION_ERROR event. If the caller is using an
older API, use the more generic SESSION_EVENT_CAMERA_FAILURE.
- Update the sample Self Managed calling app to use the incoming call UX
guidance specified in the Javadocs.
- Fix bug in InCallController which could cause InCallService to see
self-managed connections.

Test: Manual
Bug: 35767096
Bug: 35767711
Change-Id: I3e5e2b84eb026eec37f884029bb77d446a04e255
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
aeece4ec4184b76e0ac2e8a012af05638ad866f6 15-Feb-2017 Hall Liu <hallliu@google.com> Implement mid-call RTT initiation and teardown

Adds functionality to testapps and to framework to allow for local and
remote initiation and disconnection of RTT.

Test: manual
Change-Id: I0e8248b495a7d3750c840591f1fa5388b34a32e2
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
c30d20f0a2ba6b0c32d7a8463133f8ff830a49d0 24-Feb-2017 Brad Ebinger <breadley@google.com> Merge "Don't Ignore new extras in ConnectionRequest" am: 23a0c7ab64 am: 06aa51657b
am: 837874b017

Change-Id: I055b8a12477893cbeb684afef0927907367774a2
6b0b6031da009bd85713aaa223a86d9b9ff83db3 24-Feb-2017 Brad Ebinger <breadley@google.com> Don't Ignore new extras in ConnectionRequest

The current code ignores the new extras that are added in
createConnection#onSuccess. This change modifies the
ConnectionRequest to include those extras.

This was causing a test failure on internal Telecom
unit tests.

Test: Telecom Unit Tests
Change-Id: I2fc739d374a4355176a50dd6a7ab081e2673c0f9
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
86f417aa84995ffba44ea98b32d5ba4ee338aa6f 22-Feb-2017 Hall Liu <hallliu@google.com> Add support for RTT calls (part 1) am: dd68bc36a3 am: 399f7e50b0
am: 1d36154ab9

Change-Id: Id768015a354c9a3428b4c817507d058df6ea15f7
dd68bc36a3278557b1c4d9183ed9e3dee077eb20 26-Jan-2017 Hall Liu <hallliu@google.com> Add support for RTT calls (part 1)

Adds logic for handling RTT call initiation and communication with the
InCallService and the ConnectionService and includes changes to the
testapps that exercise this functionality. This change handles RTT
initiation from the beginning of a call.

Change-Id: I3d713b662a100b2e0ad817b92005f044bcc60c62
Test: manual, through testapps
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
a2b067eacbd9ee7210cb0887a6b26068990d82ff 14-Feb-2017 mike dooley <mdooley@google.com> Fixing bug with setting the emergency call time.

This cl fixes a bug that caused the connection request extras
to be overwritten when the last emergency call time was added to
the extras. It also updates the unit test to detect this problem.
It also adds the emergency call time to the call intent extras
instead of to the call extras directly (the unit test was failing
without this change).

This bug causes incoming wifi calls to be missed after an outgoing
emergency call.

Test: updated BasicCallTest and manual testing

Bug: 35323451
Change-Id: I15759daac53d6f6dad53e16e065427944fe3944f
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
9517c960762f1ac4a3c558ff834fa1ace69f1e39 26-Jan-2017 Tyler Gunn <tgunn@google.com> Self Managed CS implementation.

Implementation for self-managed connection service APIs.

Add ability for self-managed CS to:
- register a phone account and have it be auto-enabled.
- add ability for self-managed calls, ensuring only self-manage calls
can be added.

Add implementations for new isXCallPermitted APIs.
Filter self-managed calls from InCallServices.
Ensure self managed connection creation doesn't use emergency call CS.
Add ability to set audio route from self-managed connection
Overhaul some of the CallsManager getCallsWithState methods to support
other use cases for self-managed calls (also use steams/filters.. Ooo aah)

Test: Manual
Bug: 34159263
Merged-In: I3131fd48ee5c5aa36c0e88992fa51879af07d495
Change-Id: I3131fd48ee5c5aa36c0e88992fa51879af07d495
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
afb17686fc097aae2e12d17bd8404aa43956b51e 18-Oct-2016 Tyler Gunn <tgunn@google.com> Fixes for IMS Conferences via the RemoteConnectionService API.

IMS Conferences are problematic to Telecom when a connection manager is
used. Both addExistingConnection and addConference will result in the
addition of duplicate conference participants and conferences to Telecom.
This is because Telecom does not have a means of de-duping the two, which
have new IDs created for them when they're added via a ConnectionService.

To fix this, added a workaround which packages the original existing
connection or conference id into the connection/conference extras which
are sent to the connection manager. This way, the connection mgr can use
the same connection/conference ID was was used by the original
ConnectionService, and also perform some de-duping.

Its not optimal, and this should be fixed better in the future.

Bug: 31464792
Change-Id: I7b63f145c741c29e1735f50a473585f26ef70fc7
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
a90ba73e6ca2e7e3ef88e41477bf595e03f9359f 26-Jan-2017 Tyler Gunn <tgunn@google.com> Self Managed CS implementation.

Implementation for self-managed connection service APIs.

Add ability for self-managed CS to:
- register a phone account and have it be auto-enabled.
- add ability for self-managed calls, ensuring only self-manage calls
can be added.

Add implementations for new isXCallPermitted APIs.
Filter self-managed calls from InCallServices.
Ensure self managed connection creation doesn't use emergency call CS.
Add ability to set audio route from self-managed connection
Overhaul some of the CallsManager getCallsWithState methods to support
other use cases for self-managed calls (also use steams/filters.. Ooo aah)

Test: Manual
Bug: 34159263
Change-Id: I3131fd48ee5c5aa36c0e88992fa51879af07d495
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
96e726920f5080c94e867bd2702c5bbdc85a6fd3 19-Jan-2017 Tyler Gunn <tgunn@google.com> Merge "Add self-managed connection service API." am: 9f07a4ece2 am: b48c611c36 am: 8e118cc092
am: 1dda0ee0d7

Change-Id: Ic1188106c7fef22db58a244094766510a646a644
8e118cc092d6aabe55058e7bad661eaeaa1dd747 19-Jan-2017 Tyler Gunn <tgunn@google.com> Merge "Add self-managed connection service API." am: 9f07a4ece2
am: b48c611c36

Change-Id: Icf49d1e7f744be9854e024c4d1770af30b055325
acb3bc8474e7cdb9c6ef4f0b23c227f6ed55d356 09-Jan-2017 Tyler Gunn <tgunn@google.com> Add self-managed connection service API.

Beginning of required changes to support self-managed CS.
1. Ensure self-managed connections have PROPERTY_SELF_MANAGED set.
2. Plumb through setAudioRoute API from connection.
3. Ensure self-managed phone accounts are auto-enabled.
4. Stub out new TelecomManager APIs.

Test: Manual; cts and unit tests will come in future CLs.
Bug: 34159263
Change-Id: I8352b2e2e3f9424ac1b612280c1b0cdca006afdb
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
66f26d1745238d6c29b3e0b18fb80cdd57b84676 19-Dec-2016 mike dooley <mdooley@google.com> Add last emergency call time to ConnectionRequest and Call

This can be used to determine if a call is a potential emergency callback.
This cl also renames the EmergencyLocationHelper class to EmergencyCallHelper
since its not just used for location anymore.

This change greatly simplifies the emergency callback handling in the DialerConnectionService
since it will not be able to directly listen for emergency call broadcasts in O.

This cl is dependent on ag/30952524

Bug: 30952524
Test: Added unit test to BasicCallTests and manual testing with real device
Change-Id: I43513c56b92f978f0a70be878a9430aec74ea77f
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
ff79c137ec0b6f148622c26e850ef56fff3caef1 02-Nov-2016 Brad Ebinger <breadley@google.com> Modify ConnectionServiceAdapter to include Session
am: 65912759cd

Change-Id: I1956397f99100db85fad28be107d3900a98baee2
65912759cdf64aa5a38f5498f22c8b5ba8a97ebe 28-Oct-2016 Brad Ebinger <breadley@google.com> Modify ConnectionServiceAdapter to include Session

Starts external sessions from the ConnectionServices so that external
Sessions can be started in Telecom from Telephony.

Test: Manual testing and Unit Tests pass
Bug: 26571395
Change-Id: Ic024d123acdd52b7592636db410a459e03548d0c
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
ad4de70ceb255d1346ee7ef12856be95e286902f 28-Oct-2016 Brad Ebinger <breadley@google.com> Modify AIDLs to include Session.Info
am: b78b0234c6

Change-Id: Idf2876db516a69c9e8ff24f5e63fe9e039867f17
b78b0234c6e9a937fc00fec6d16e534535b6fab9 25-Oct-2016 Brad Ebinger <breadley@google.com> 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: I587c5218da86585d23650d056f32197d7afaecce
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
09620827b85239d8ffbf9b245b6d1ba0e10a0414 21-Oct-2016 Brad Ebinger <breadley@google.com> resolve merge conflicts of 953e1af to stage-aosp-master
am: 8f98f10d53

Change-Id: I154dddb3fb418f8921c015370863fe593e979e5b
8f98f10d53f4f7aa1605a37313a6186f90dc6c0e 21-Oct-2016 Brad Ebinger <breadley@google.com> resolve merge conflicts of 953e1af to stage-aosp-master

Test: Manual Testing
Change-Id: I3c8cac2c8b3634db7a20cceda434e6db6cdb05ca
953e1af643b66df6f931d76c23bcc54147668cd4 06-Oct-2016 Brad Ebinger <breadley@google.com> Switch to using android.telecom.Log in Telecom

Sorry.

Test: All affected unit tests still pass.
Bug: 26571395
Change-Id: I890d68d935cd554ba89042e99c155757697e1a37
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
9b618b8bd0e3e216ee9d9df96bec0e1f8841aa14 18-Oct-2016 Tyler Gunn <tgunn@google.com> Fixes for IMS Conferences via the RemoteConnectionService API.

IMS Conferences are problematic to Telecom when a connection manager is
used. Both addExistingConnection and addConference will result in the
addition of duplicate conference participants and conferences to Telecom.
This is because Telecom does not have a means of de-duping the two, which
have new IDs created for them when they're added via a ConnectionService.

To fix this, added a workaround which packages the original existing
connection or conference id into the connection/conference extras which
are sent to the connection manager. This way, the connection mgr can use
the same connection/conference ID was was used by the original
ConnectionService, and also perform some de-duping.

Its not optimal, and this should be fixed better in the future.

Bug: 31464792
Change-Id: I7b63f145c741c29e1735f50a473585f26ef70fc7
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
b489d6c2a1aa80f19394bd61b6bbfad78624d2ca 11-Jul-2016 Tyler Gunn <tgunn@google.com> Merge "Finalize multiendpoint functionality." into nyc-mr1-dev
d1e6d8e643da472f8920781fd0ab285bb8ea970b 11-Jul-2016 Brad Ebinger <breadley@google.com> Merge "Rename Telecom Call Ids to include attempt" into nyc-mr1-dev
1e37be5dd86a51b90e461f09dc8a89effe4aee21 11-Jul-2016 Tyler Gunn <tgunn@google.com> Finalize multiendpoint functionality.

1) Handle the PULLING state throughout telecom.
2) When parcelling calls to send to InCallServices, remap PULLING state
to DIALING if an InCallService doesn't support external calls. This
ensures compatibility for things like Android Wear/Auto.
3) Ensure add call isn't disabled because of external calls.
4) Modify InCallController to handle changes to whether a call is external
or not. For IncallServices that do not support external calls, we will
add the call when an external call becomes a regular call, and we will
remove it when a regular call becomes external.

Change-Id: I1bf6c1f7e182834c3ab1ed34cd119467a4698993
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
6e8f3d70ac7397afb4cb5ab276d1cd385c92dd21 20-Jun-2016 Brad Ebinger <breadley@google.com> Rename Telecom Call Ids to include attempt

Telecom Call Ids will now append an attempt id (in the form of an
integer) that will be used by the CreateConnetionProcessor to name the
Telecom Call Ids that are used during the creation of a Connection to
the ConnectionService. This allows us to better identify which
Connection is calling back to Telecom to update status, disconnect,
etc. Previously, all of the attempted Connections in
CreateConnectionProcessor would be given the same name, which could lead
to multiple Connections trying to manage the same Call object in
Telecom.

Also, a supporting tests were added and a few Unit Tests were fixed.

Bug: 28799824
Change-Id: I7e23497ab671712bc8d3cc9542537ae1c4829afc
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
913509566d7b4057c8e88f0d94792b0d6aeda5e1 30-Jun-2016 Brad Ebinger <breadley@google.com> Add PhoneAccount check to addExistingConnection

Add a check to verify the PhoneAccountHandle of the connection being
added to Telecom via
ConnectionServiceWrapper.addExistingConnection. This allows us to be
sure that the existing connections being added are from a registered
PhoneAccount and that the Package and User match what is expected in the
PhoneAccount.

Change-Id: I12c5f1b046a4ca919303ace205a9ddd6c7092650
Fix: 28800963
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
874c0f8fa95a5da5a82e67c1fe39697883d753eb 30-Apr-2016 Hall Liu <hallliu@google.com> Add call events to analytics

Adds a record of events and timing information to analytics for each
call. Also add session timing information independent of calls.

Bug: 28623064
Change-Id: Iea6d4a7482365534a3a0c6c672a969dae8141932
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
0d40255032680d3cce56a07f7eba8baefc5512cd 28-May-2016 Brad Ebinger <breadley@google.com> Propogate EVENT_CALL_MERGE_FAILED Connection Event

Propogate the EVENT_CALL_MERGE_FAILED Connection Event to the InCall UI
when setConferenceMergeFailed has been received from the Connection.

Also, a test was created to verify the Connection Event propogates to
the InCallService

Bug: 28847375
Change-Id: Id0bd9ca68528d442a658dfb4df8da20c1344e8da
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
571d5e66b8cbee023702b4b0a2a1c28663c5a7f8 15-Mar-2016 Tyler Gunn <tgunn@google.com> Add connection properties to Connections.

- Per suggestion of API council, moving properties of a Connection from
CAPABILITIES_* to PROPERTIES_*.

Bug: 27458894
Change-Id: I484783727c840a56882bca79c35280a4a338256d
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
961694a9750626c067be960170bc95f10b5efcc2 22-Mar-2016 Tyler Gunn <tgunn@google.com> Support for enhanced call/connection extras.

Plumbing in support for InCall UIs to update the extras of a connection.
Adding in unit tests for connection and call extra set/get methods.

Bug: 27458894
Change-Id: I9ce526bf293c9f5dd03642391d459fcfa03c31ef
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
e2e4cdff6dd167ea1ede3eb6ee53468b9a32f0af 18-Mar-2016 Jeff Sharkey <jsharkey@android.com> Mark more Bundles as being defusable.

They're destined for the system, so they're okay to look inside.

Bug: 27726127
Change-Id: I1376f7ac89dcc8ac0e9361ceb572c1a1d7ee7949
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
ddad9e0dc5671c51e0cb35151c84e0a26e5e092a 15-Mar-2016 Hall Liu <hallliu@google.com> Merge "Fix capability checking for reject" into nyc-dev
4b1617a620039fd0d8321028b46c27b486b90763 15-Mar-2016 Hall Liu <hallliu@google.com> Fix capability checking for reject

Check against the Connection capability instead of the Call capability
in ConnectionServiceWrapper#reject

Bug: 27501686
Change-Id: Iccd2ab87eecd7b181793f5f8a39cc6fd7aa7e1af
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
d45e6d973ea7460fb605a1eb7a66ba38c6f2467d 11-Mar-2016 Tyler Gunn <tgunn@google.com> Support for new multi-endpoint APIs.

- piping through "pullExternalCall" API from incall layer to connection
service.
- mapping of new capabilities/properties between connections/calls.
- basic unit tests for new pullExternalCall API (there will be some
follow-up work on these in the future).
- plumbing through of Connection and Call events.

Bug: 27458894
Change-Id: I421ebab28fada224bddca54ed4d3d9dff6f33bcf
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
db82191d1ef7dd4155478071815a56947b31fc11 16-Feb-2016 Tyler Gunn <tgunn@google.com> Listen for ConnectionEvent and use the InCallToneMonitor to play the tone

BUG=25357778

Change-Id: Iad4f36f9b01670a2f188e726895a8349aeeb1502
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
11623a354be47205bf3bc686ed8fdfc278958983 25-Nov-2015 Brad Ebinger <breadley@google.com> Adds Telecom Logging to TelecomServiceImpl.

Adds Telecom logging sessions to the major entry points in TelecomServiceImpl
and other modules in order to track the code paths of other processess.

Refactor CallAudioRouteStateMachine to use callbacks in StateMachine to
handle logging.

Change-Id: I48a70afaf2028ace73608be4f825c49af16c1622
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
b2cadb6851ef78ab62c328bf23e327c14aeda536 08-Dec-2015 Hall Liu <hallliu@google.com> Merge "Add analytics recording to Telecom"
f19000764f6b93dfa15561342cbdd9c1aa1d3e22 13-Nov-2015 Brad Ebinger <breadley@google.com> Refactor CreateConnectionProcessor

Currently, if a ConnectionManager refuses a connection from a Call, this
code will set a flag and call process() again. This finds all of
possible PhoneAccounts again (without the addition of the
ConnectionManager). In order to avoid this redundancy, a queue is utilized to
have the CreateConnectionProcessor fall back to another account if the
connection fails.

This change only changes how a ConnectionManager is being found/used.

Also, tests have been added for CreateConnectionProcessor

Change-Id: Id7479e5337a812fdae83411fb2fbc248d8c1a7da
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
3258720f5526f766aa26c19cf01b32ac20d19d1d 18-Nov-2015 Hall Liu <hallliu@google.com> Add analytics recording to Telecom

Adds a way to record interesting information about calls that can then
be uploaded for later analysis.

Change-Id: I029688cbb28ba75c00df64b7c1aa9eda382fde99
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
240656f19c078b4f703d0502ce29114de0d45a50 04-Dec-2015 Tony Mak <tonymak@google.com> Methods in PhoneAccountRegistrar should ask for userhandle explicitly

1. Get calling user handle before calling clearCallingIdentity
2. Methods in PhoneAccountRegistrar asked for the user handle explicitly
instead of trying both current user and calling user
3. Modify isVisibleForUser in PhoneAccountRegistrar,
- PA with CAPABILITY_MULTI_USER is visible to all users including
managed profile (We are still discussing this, but let's assume it
works in this way and change it later if necessary)
- For other PAs, they are only visible within the user they are
registered to.
- TelecomManager.getPhoneAccount is an exception case. The visibility
checking of getPhoneAccount allowing a PhoneAccountHandle from other
profiles in the same user.
Reason:
Telecom passes PhoneAccountHandle to incall UI and incall UI
retrieves PhoneAccount from the handle.
It is because we never bind to managed profile's incall UI, and bind
to its parent user provided one instead. So phone account handle in
managed profile is passed to it's parent user incall UI. And we need
to allow parent user incall UI to retrieve the PhoneAccount from
the handle.

4. Please notice that the default PA account related APIs does not really
support multi-users. The backend (xml storage) does not include user
as a key and it should be able to store one default only and is shared
among all users. This problem is not fixed in this commit.

Bug: 25936882

Change-Id: Ia371723d68247a208a0c1185f6d02f1b5897946a
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
9222d5b6517bbdd197fa3a2eda3194ff68bd4e11 30-Nov-2015 Bryce Lee <brycelee@google.com> Notify connections when the ringer is silenced. am: 6d96252436 am: e664d97104
am: 293cb6c010

* commit '293cb6c0109deaff00a3953862448affd7203c13':
Notify connections when the ringer is silenced.
6d96252436c34cbc2407767f67f2f397f390ad95 30-Nov-2015 Bryce Lee <brycelee@google.com> Notify connections when the ringer is silenced.

This is necessary for connected experiences (such as headset clients) where
another device must be notified of the ringer state.

Bug: 25644529
Change-Id: I89a98a4ad8ed4d94d7bf5eed07b57f353824e338
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
f62630a57de0d52be2bdbc92a9bf8f305cc0892d 27-Oct-2015 Hall Liu <hallliu@google.com> Refactor CallAudioManager's audio routing

This change separates the audio routing functionality of
CallAudioManager into a separate component, implemented as a formal
state machine.

Change-Id: I4ca66abe72609d67dc8bde8ed8ff1538b7d0cf57
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
8452be0e1e82e0d12cfb884bbf683ec5f95c9781 17-Sep-2015 Tyler Gunn <tgunn@google.com> Modify Telecom to have "one call ID to rule them all".

- Add call ID to the Telecom call class.
- Modify CallIdMapper to use Telecom call ID instead of a new sequentially
generated one.
- Remove isValidCallId and isValidConferenceId from CallIdMapper as they
are no longer required.
- Modify event logger to use telecom call ID instead of a sequential ID.

Bug: 23357902
Change-Id: I485f751d1668e96b7787c4be97aa76c1e5ec0798
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
ddd966e7f6b947e345163c442f4c2f9c3d146024 29-Aug-2015 Bryce Lee <brycelee@google.com> Properly route rejection reply when capability is set.

The telephony stack can be present on devices that do not have a cellular
radio. For example, connections can be established over wifi. In these
scenarios, having the replies handled by the default sms app is not
sufficient.

This CL works in conjunction with a framework change to allow connections
to mark themselves as capable of handling reply messages. In this case,
the call should route the reply back to the connection rather than have it
handled through sms.

Change-Id: I26a13496e3cff596ba950bf9abed35c36b917721
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
165c1ced107a1c3b9b359757d41438f9ca585e78 11-Jul-2015 Santos Cordon <santoscordon@google.com> Add logging in Telecom for conference call & audio tracking.

Bug: 22331056
Change-Id: Ib6147e55cd886d678d924c92bb86743c22ad6366
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
467b64fb79f8720958bba6dff84d4827458d33e2 09-Jun-2015 Tyler Gunn <tgunn@google.com> Remove use of STATE_AUDIO_ONLY in a comparison.

- Use VideoProfile.isAudioOnly() instead of doing == comparison.

Bug: 21645094
Change-Id: Iee12001e2a56dfdf8239ad04f844593a21da896d
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
5b8824979e929250a46791c785b8459512236585 03-Jun-2015 Tyler Gunn <tgunn@google.com> API Cleanup: Remove references to VideoState class.

- Replace use of VideoState static methods with VideoProfile equivalent.
- Replace use of VideoState consts with VideoProfile equivalent.

Bug: 21573551
Change-Id: I567abaf4b6c0de51656869d1c7367a7ff3e51cd1
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
b3907b3e79864a3a42d5e7105e5051f7e364fdba 28-May-2015 Santos Cordon <santoscordon@google.com> Add extras to Connections/Calls. (2/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: I4eed1e1bb47e83f8ba5c843cab7e7e492a297c71
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
2a66f7b906b225413ae33f72e70a75e4f9c883c0 13-May-2015 Yorke Lee <yorkelee@google.com> 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
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
6a2126477ce3f527ecaec807fe4f40cd13ff02b0 09-May-2015 Santos Cordon <santoscordon@google.com> Clean up PhoneAccountRegistrar.

Cleanup lots of duplicate code and consolidate all phone account
retrievals into a single method: getPhoneAccounts(...).

Consolidate checks for capabilities, package-name, uri, and
isVisibleForUser(...). This will be very helpful when
implementing enable/disable for phone accounts.

Bug: 20303449
Change-Id: I24d63cd313876f5d9390f2eb31c0ce79d7cb0ab2
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
ce75aa1cfa3572f208d02a058b7aaf025ad6856c 25-Apr-2015 Anthony Lee <anthonylee@google.com> Add plumbing for merge failures and renable button. (2/4)

The merge failure is not plumbed up through any layer that
can trap the callback and act on it. The first part of this
fix is to create that plumbing. Then we need to reenable the
merge button. At this point in time, we leverage the fact
that forcing the call to reassess its capabilities will poke
the InCallUI to reenable the merge button. In the future, we
should plumb the merge failure all the way to InCallUI and
not only handle the button but display UI to the user. The UI
is currently being displayed by CallNotifier which is the wrong
place. See b/20530631 for more details.

Bug: 20229905
Change-Id: Ica5b801f687823a4f819dda285a7355e8150042c
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
fc0e227881bbb1c0795e5223d0594f13e1b2de12 16-Apr-2015 Jay Shrauner <shrauner@google.com> DO NOT MERGE Remove connection substate

Bug:20300433
Change-Id: I4148ac2677598d4db60950712fda2a3be726d791
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
0751e61ed2fd4fd828a4ca170a696fce369b31ea 16-Apr-2015 Andrew Lee <anwlee@google.com> resolve merge conflicts of 57412d3 to m-wireless-dev.

Change-Id: I3c3dece8a0efebb82969b521a5fef37fe2283774
57412d3a3079b2108d61747f4909bf02da29759f 14-Apr-2015 Andrew Lee <anwlee@google.com> Add StatusHints for Conferences.

Bug: 20160799
Change-Id: I88d3068a2c2d2d785e92bcb8b22143764f0a6207
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
032f8e415661339bd1e9a2da5e295062a996a7f5 02-Apr-2015 Rekha Kumar <rekhak@codeaurora.org> IMS-VT: Change parameter type of data usage
Change Data Usage methods to take parameters of type long
instead of int.

Change-Id: I6a277dedb5976261035084955ed8a90da256061a

IMS-VT: When TTY is ON, do not allow MO VT call
When TTY mode is ON, the user SHOULD NOT be allowed to make
a Mobile Originating (MO) VT call and an UI alert message will
be displayed explaining MO VT call cannot be initiated.

Propagate the call substate changed message to the UI

IMS-VT : Set the flag to start call with speaker on for incoming VT calls
- There seems to be a race condition between when InCallUI
enters the video mode and sets the speaker phone on and
when call state changes to active.
- As a result, the audio route gets reset to earpiece as we
are not setting speaker phone on flag for the incoming
case. This change fixes that issue.

IMS-VT: Set speaker phone to true only if bluetooth or headset is not connected

IMS-VT: Convert emergency video call to voice call.
Convert emergency video call to voice call.

Change-Id: I09b82dcb6308a1177716b77e87da68161000518b

IMS-VT: Enable Video conferencing.
Enable Video conferencing.

Change-Id: Ief145e0592e58de46c7a75d858effdd72fa8b476

IMS-VT: Check for property before enabling speaker for MT VT calls
Check persist.radio.ims.audio.output before enabling speaker
if property is set to disable speaker then MT VT calls should not
use the speaker.

Change-Id: I0c6288a8fd672c9b7a13edac11e29875d0df4eb7
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
512d6350a66b44f1065d6fd2e14ec328449e8119 26-Mar-2015 Ihab Awad <ihab@google.com> Fix problem with AsyncQueryHandler

AsyncQueryHandler uses Looper.myLooper(), which does not work in our
case when invoked from an arbitrary thread. Changed so its ctor is
invoked on the main thread.

And various other similar problems.

Bug: 19941246
Change-Id: I324f09a5161e26593c0d24d5311a371d8971870d
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
8d5d9ddc66b55b6906364ab3c0e244dab4d58f13 12-Mar-2015 Ihab Awad <ihab@google.com> Make Telecom synchronous

Remove main-thread handlers and add a systemwide lock object.

Change-Id: I6334fdfa6c244836f6375bea302404f61c81301b
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
8de76915ea2772faeb41705aaaeb65f5b3478ac4 17-Feb-2015 Ihab Awad <ihab@google.com> Further refactor Telecom and add tests

Complete refactoring Telecom to remove singletons from the core code.

Introduce a unit test that simulates a full outgoing phone call from
start to hangup.

Change-Id: I8b09cac6eb9b6aeeb0aeba5d8ae032b4c303c08d
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
78a5e6b9c1595c81f72d7a822617cb78db224e48 06-Feb-2015 Ihab Awad <ihab@google.com> Refactoring for testability

Refactor to a single app singleton, TelecomSystem, which owns the
intialization of the rest of the app.

Change-Id: I3036f200b56f710e7f830b469260a67145c327e7
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
bf9cd0e5f6b72668f84fe9e18373beca1086a238 30-Jan-2015 mike dooley <mdooley@google.com> Fixing conference managment regression.

This CL restores ag/553714 and adds a check to allow IMS conferences with 0 connections.

Bug: 17632595, 19184963, 19184481
Change-Id: I6a4c5d05b14e89cc4b335f45ed078e928c57abb3
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
0b4e8a270b9899c405b0c0a93ccbfe5b0835d58e 30-Dec-2014 Shriram Ganesh <sganesh@codeaurora.org> Add support to clean up calls that are alive

Remove request for a call does not correctly clean up the calls
that are alive and in non-active states such as held state. Add
support for such calls in this change.

Bug: 18804667
Change-Id: I17b13c933e2af401ed007a338fbaf2a181abc0ae
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
c88574c74d48ec6d660cbe2563c826521d95e92b 16-Dec-2014 Anju Mathapati <anjucm@quicinc.com> IMS: Add phoneaccount to ims conference call.

Retrieve phoneaccount from ParcelableConference coming from
TeleService and set that account to Telecom Conference call.
This prevents hold and dial request from getting invoked from
Telecom during adding a call on top of an existing ims 3 way
conference call.

Bug: 18690773
Change-Id: Ie02e12c77272c2c889b1c7377e0bf461e67a1abd
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
a469f76c1710a945933910840f11f9fda0445d82 10-Dec-2014 Nancy Chen <nancychen@google.com> Play DTMF tones when sending DTMF tones during post dial wait.

Regression from KK -- when adding additional digits to a number limited
with a wait character (";"), the local DTMF player should make those
sounds audible to the caller.

Bug: 18644688
Change-Id: Ib04658316f725146a65b399d3f477791260c3f5a
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
105d977687d1d0de7cd9420fc140b01404261df1 25-Nov-2014 Evan Charlton <evanc@google.com> Track (and use) UserHandle to make connections

When binding to services, use the UserHandle which registered the
PhoneAccount in order to ensure that the correct user receives the
Intent.

Also make sure that TelecomManager does not leak PhoneAccounts across
profiles, unless the caller is a system-privileged app. PhoneAccounts
will not leak across users, even for system-privileged apps.

Bug: 17421902
Bug: 17421044
Change-Id: I673904a7ae038c88688bba62642e93174e55c308
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
07bc5ee853bc9a0b4cd46e0c702888b2c7989392 12-Nov-2014 Ihab Awad <ihab@google.com> Telecom API updates (4/6)

Bug: 18292176

Change-Id: I28e6aa4fec20aadd77f9a861b0bb8e1e9828cffb
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
045b6c98c38edd8312668d2ea2a4bfd583a4b8fa 13-Nov-2014 Tyler Gunn <tgunn@google.com> Create IMSConference to represent IMS conference calls.

- Removing check in ConnectionServiceWrapper which would prevent adding
a new confernece with no calls in it; an IMS conference by default will
have no calls.

Bug: 18200934
Change-Id: I2e70b9350e779310e8c4ee8e91bc8020b126bcfa
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
6e2b94eae72c72b11358fdb99f87471b5ab11e4f 30-Oct-2014 Tyler Gunn <tgunn@google.com> Creating connections for conference event package participants.

- Add "addExistingCall" method to Connection service wrapper to handle
the creation of new calls for connections which already exist in telephony.
- Fixed but in setIsConference message where an isValidCallId check made
outside of the handler would result in a newly added call NOT being
marked as conferenced due to a race condition. The MSG_SET_IS_CONFERENCED
handler already checks if the call exists before performing its operation.

Bug: 18057361
Change-Id: I2348c8e6985cd831f2cae56b37dfcb33bae014a8
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
9250e5fa9987c3ab80e11e1955657055f5866539 01-Oct-2014 Yorke Lee <yorkelee@google.com> Add ability to add sim-initiated MO call to UI (3/4)

Pipe an unknown call through CallsManager via various new APIs like
onSuccessfulUnknownCall, onFailedUnknownCall, etc. These are the unknown call's
equivalent of onSuccessfulOutgoingCall and onFailedOutgoingCall.

Only the TelephonyConnectionService is allowed to call this hidden new API
in Telecom.

Also add the ability for TestConnectionService to test this API (although the
check for TelephonyConnectionService must be disabled at build time first).

Bug: 16852844
Change-Id: I5dfdfc1bd4675f6b300a4a55a3098582f9d715a2
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
60ccd779d1448675ad42caa537348c2bcae186c2 30-Sep-2014 Ihab Awad <ihab@google.com> Refine implementation of GSM conferences (2/3)

Bug: 17684223

Change-Id: I7a274de891b7efc2a781a16ce7596bf5cd3ea6ff
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
0b66e1c8102c09e0d6e0d4bf0d717dccfc65c4d0 24-Sep-2014 Sailesh Nepal <sail@google.com> Don't create conferences with invalid calls

When a remote conference was created
ConnectionServiceWrapper would actually create 2
conferences. One for the remote connection service with no
valid calls one for the real connection service with valid
calls.

When the conference was destroyed the remove call on the
remote connection serivce would trigger a unbind causing
android.telecom.ConnectionService to end call connections
for that service.

Fix was to ensure that we only create conferences with
valid calls.

Bug: 17632595
Change-Id: I3f339120dde8eb07ee7e40a26d3a37f1dbd1409e
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
91d43cf9c985cc5a83795f256ef5c46ebb8fbdc1 17-Sep-2014 Tyler Gunn <tgunn@google.com> Preparatory work to move Telecom to system service.

- Removed use of TelecomApp.getInstance() as context.
- Refactored singleton logic and initialization to support being
performed from a SystemService.
- Note: You will see some commented out references to
"import com.android.internal.R"; these must uncommented when the code
is moved to a system service.
- You will also notice in PhoneAccountRegistrar.java a comment block with:
"UNCOMMENT_FOR_MOVE_TO_SYSTEM_SERVICE"
The code in that comment block will replace the existing file path
code.
These were added as a convenience so that I can run a simple sed script
to make the required changes to the code in an automated manner once it
is moved to its new location.

Bug: 17364651
Change-Id: I8e80e9cffc481b688c10a2bca0b59f5ccf8e0fb2
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
b3c4b285b747c58bfa58e2c58e09cdfb2c2b03b8 17-Sep-2014 Nancy Chen <nancychen@google.com> Merge "Remove ability to enable/disable phoneaccounts (3/6)" into lmp-dev
309198ec4d8b2738cf955316ea7a2f9418929fd1 16-Sep-2014 Nancy Chen <nancychen@google.com> Remove ability to enable/disable phoneaccounts (3/6)

Enabling/disabling of phone accounts was only used for SIP accounts and
is no longer necessary for the purpose it was put in.
- Remove all references to enabling/disabling phone accounts
+ Rename getEnabledPhoneAccounts to getCallCapablePhoneAccounts

Bug: 17510811
Change-Id: I5e8a59fe2aaac2563fe4bf97138975e30b45aa3c
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
701dc006ac11625b55d872f1639107b028933895 12-Sep-2014 Andrew Lee <anwlee@google.com> Use telecomm DiconnectCause in services/Telecomm.

+ Some of this is straightforward replacing the old disconnect cause
code/message with the new DisconnectCause object.
+ Replace codes in some instances; most maps straightforwardly to the
newer generic set of disconnect causes.
+ InCallToneMonitor can no longer rely on the specific telephony
DisconnectCauses. Now, instead, they map from a tone (which is
specified on the new telecomm DisconnectCauses) to the type of tone
which should be played in InCall. Most of these are just taking
unique matches from InCallTonePlayer. It is a little redundant, as
the conversion just flips, but it seemed like the easiest way to
accomplish this given current constraints.

+ Behavior is unchanged, but now DisconnectCause.OUT_OF_SERVICE
will invoke InCallTonePlayer.TONE_CDMA_DROP.
+ Now play TONE_PROP_PROMPT regardless of whether there is precisely
one remaining call; this is because we can't distinguish between
telephony DisconnectCause.ERROR_UNSPECIFIED/NORMAL/LOCAL. I figured
this would be a relatively minor change in scenario, and it wouldn't
hurt for a tone to be played even in a disconnect in that scenario.

Bug: 17329632
Change-Id: I85767d424bcfd59b3929819c9c6de46fc4a8629e
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java
7cc70b4f0ad1064a4a0dce6056ad82b205887160 13-Sep-2014 Tyler Gunn <tgunn@google.com> Renaming Telecomm to Telecom.

- Changing package from android.telecomm to android.telecom
- Changing package from com.android.telecomm to
com.android.server.telecomm.
- Renaming TelecommManager to TelecomManager.

Bug: 17364651
Change-Id: Ib7b20ba6348948afb391450b4eef8919261f3272
/packages/services/Telecomm/src/com/android/server/telecom/ConnectionServiceWrapper.java