History log of /packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
8768409002d7c0110ad231d2cbef5c7188d2e0e3 10-Oct-2017 mike dooley <mdooley@google.com> This is a partial cherrypick of ag/3005393

It just contains the fix to location permission granting for emergency
calls for the case where an emergency call is added to an existing call.

The other part of ag/3005393, to enable the feature will be done in
ag/3034149 as a config overlay.

Bug: 67104002
Test: manual
Change-Id: I8c4f308a30b32335718e5909748d3fc84eac7259
Merged-In: I12b1362749ee265557d007a989917339468e9b0d
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
8168b680c94d2228e74401a6abf819cecc686ca6 20-Jun-2017 xulicheng <xulicheng@xiaomi.com> Remove InCallService after incallservice disconnected am: d733a73a8d
am: 84bff550c0

Change-Id: I5180acfb099728915defda18b0019029a4705c72
d733a73a8d8362f24b8aa7a4073b74736203069e 16-Jun-2017 xulicheng <xulicheng@xiaomi.com> Remove InCallService after incallservice disconnected

mInCallServices will never be cleared

Test: Build
Change-Id: I7cf168a32a39226c66ad9058a8e59e7fd26d48df
Signed-off-by: xulicheng <xulicheng@xiaomi.com>
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
545b2d61fce18d7d0643b597c76ce85198164247 06-Apr-2017 Tyler Gunn <tgunn@google.com> Fix NPE in InCallController due to potential null call.

There is the potential for a call reference to be null due to a
reconnect to the InCallService.

Test: Manual
Bug: 37001602
Merged-In: Ia0c12e5233107d7973ea2fa112a774126bf5a097
Change-Id: Ia0c12e5233107d7973ea2fa112a774126bf5a097
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
4bd0e0e8deeaf100976c754f452ed14b72dccc86 18-Apr-2017 Hall Liu <hallliu@google.com> Merge "Update ringer to take BT device into account" am: 9533e0a4de am: fb7b5bf5e3
am: 2900263b1f

Change-Id: Ic55ffd905b4408f028a073b0c13d629ed92d56cb
136f4c975b71f08b6defd80c2ec96cc95d9f2be4 04-Apr-2017 Hall Liu <hallliu@google.com> Update ringer to take BT device into account

When there is an HFP device connected but the phone would otherwise not
play an audible ringtone, acquire audio focus anyway so that music won't
play over top of the BT device-generated sound.

Change-Id: I898dddfb29147debf5d520583bed02d2012b6cb7
Fixes: 34084026
Test: unit tests and manual
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
c467837e7dff3eda7037bf05b8860c3416a80bd4 06-Apr-2017 Tyler Gunn <tgunn@google.com> Fix NPE in InCallController due to potential null call.

There is the potential for a call reference to be null due to a
reconnect to the InCallService.

Test: Manual
Bug: 37001602
Merged-In: Ia0c12e5233107d7973ea2fa112a774126bf5a097
Change-Id: Ia0c12e5233107d7973ea2fa112a774126bf5a097
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.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/InCallController.java
2b17f23d3257dec66d965ac7b4a59aa2226b43a5 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
Change-Id: I371be9baa6f56c77aa83349977c0131f0e319047
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
e880b18a1cdf19687d4fcfdd348ed23167720bb9 10-Mar-2017 Hall Liu <hallliu@google.com> Merge "Fix comparison bug in InCallServiceInfo" am: 5ce1a7842d am: 10197de5a4
am: d4ee3bef3e

Change-Id: I41527be5e199ead758d26595d45b91e0d5882d32
47222c0baa26102e9773e95985658ed75a3f5e27 07-Mar-2017 Hall Liu <hallliu@google.com> Fix comparison bug in InCallServiceInfo

Test: CTS
Change-Id: Id284345b13874da777e7ff29d80a8ad51cb01623
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.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/InCallController.java
1edf04a086db22869f0858536eb68bbdf5736ece 07-Mar-2017 Tyler Gunn <tgunn@google.com> API review cleanups. am: 115c06ee64 am: aa59fe7535
am: 124b43d958

Change-Id: I9203a225f2c320f370343c5431d586ae87747156
d5d7f034a08d85fdc58fa85059187a7144cfe7d1 07-Mar-2017 Hall Liu <hallliu@google.com> Merge "Implement mid-call RTT initiation and teardown"
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/InCallController.java
df4d6471b20137d0bf3ae66d8ae12c42c5ece6eb 02-Mar-2017 Tyler Gunn <tgunn@google.com> Support for InCallServices receiving self-managed calls. am: 37e782b421 am: 3e62d5863c
am: 5fe85030aa

Change-Id: I20ffcace93257bfda07654d52af15a9c67d191ef
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/InCallController.java
37e782b421f63a81bfae1efaa1eb01f0fbdd7abf 10-Feb-2017 Tyler Gunn <tgunn@google.com> Support for InCallServices receiving self-managed calls.

Also adding isInManagedCall telecomManager API.

Test: Manual, CTS
Bug: 34159263
Change-Id: I2e30cf2800b7febf56566755f7b97e4ad46ec1ad
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.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/InCallController.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/InCallController.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/InCallController.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/InCallController.java
21fb1afe2e6ba030581ae8c94e377adf7c62877d 05-Dec-2016 mike dooley <mdooley@google.com> Grant temporary location permission to default dialer during emergency calls
(if it doesn't already have it). And revoke the permission after the call ends
(if it was granted).

Test: manual testing with real device
Change-Id: I578e4408f29cad67d560da730f06da0f5522c763
BugId: 30952524
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
2b33df76a3b7b43ae9fde36f73da11cb22954656 07-Dec-2016 Hall Liu <hallliu@google.com> Use DefaultDialerCache in Telecom (part 2)

Use the DefaultDialerCache throughout Telecom whereever the value of the
default dialer for a particular user is accessed or modified. Also moves
the DefaultDialerManagerAdapter to DefaultDialerCache since
TelecomServiceImpl no longer directly uses it.

Test: Unit tests and manual tests as specified in design
Change-Id: I61ee37f382f4b29266ce254a0e1f7db183e7a0bb
Merged-In: I5d8f46b4a236e570528425b4010976ac837644ac
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
7c9283261ad4fdbc5ebbb74257671388f9c758c7 07-Dec-2016 Hall Liu <hallliu@google.com> Use DefaultDialerCache in Telecom (part 2)

Use the DefaultDialerCache throughout Telecom whereever the value of the
default dialer for a particular user is accessed or modified. Also moves
the DefaultDialerManagerAdapter to DefaultDialerCache since
TelecomServiceImpl no longer directly uses it.

Test: Unit tests and manual tests as specified in design
Change-Id: I5d8f46b4a236e570528425b4010976ac837644ac
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
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/InCallController.java
a3eccfee788c3ac3c831a443b085b141b39bb63d 06-Oct-2016 Brad Ebinger <breadley@google.com> Switch to using android.telecom.Log in Telecom

Sorry.
CP from: https://android-review.googlesource.com/#/c/287332/

Test: Added unit tests for Log Sessions and Events. All other affected
unit tests still pass.
Bug: 26571395
Change-Id: I890d68d935cd554ba89042e99c155757697e1a37
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
9d15ca4316bb3a89bba11b62d2e17e2fb80fdc74 31-Aug-2016 Hall Liu <hallliu@google.com> Add In-call services to Analytics

Add a repeated field to the analytics proto containing the name of the
in-call service and the type, and adds code to populate the field from
InCallController.

Fix: 29228080
Change-Id: Ic57cd220e7f5ce1409516e520380f635c54d3013
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
d532ef0fdce6a54fde316c5adce10510c8954cb4 29-Aug-2016 Brad Ebinger <breadley@google.com> Merge "Use the Telecom lock in Telecom.Runnable" into nyc-mr1-dev
f5e066609d0acc7ff53752bd6b9e3f2634bd0746 26-Aug-2016 Brad Ebinger <breadley@google.com> Use the Telecom lock in Telecom.Runnable

To prevent deadlocks in Telecom when using Session Runnables, we will
now lock on the main Telecom Lock instead of an independent lock inside
of Telecom.

Bug: 31076766
Change-Id: I993d7f2e8b077f89daef72ce1ca7b7fad2ad8823
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
28b82f0fe9b55b3bd826ba3a4204329988447c57 27-Jul-2016 Hall Liu <hallliu@google.com> Fix broken test and in-call controller bug

1. testBindToService_DefaultDialer_FallBackToSystem was broken because
InCallController#onConnected returned false due to an empty list of
calls in the mock CallsManager. Added a return stub to prevent this.

2. If an incoming call disconnects remotely before onServiceConnected is
called, no services will be bound to InCallController, but
InCallController will also not attempt to bind to an InCallService for
future calls. This is because the failure case in
InCallServiceBindingConnection#onConnected calls disconnect() directly,
not setting mInCallServiceConnection to null. This means that
isBoundToServices will continue to return true, so bindToServices will
never be called again until something else calls unbindFromServices.
Fix was to not disconnect if no calls are found when onServiceConnected
is called.

3. A test was added to test the fix in #2.

Change-Id: I95caba2e3169be33d89424269a09b3ad292be3de
Fix: 28743971
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
abe06d37a41d5380fb07f7fb11ef2a26eee957f6 15-Jul-2016 Brad Ebinger <breadley@google.com> Fix ComponentName NPE when binding to InCallService

Currently, if the PackageManager can not find the component that is
set to be bound, it returns null. This creates a null InCallServiceInfo,
which creates a NPE when getComponentName is called during bind. We now
never return null and instead try to bind to the ComponentName anyway if
the PackageManager returns null.

Bug: 30150689
Change-Id: I463332b1707a76d8b018aaaacbca542c91948dbf
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.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/InCallController.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/InCallController.java
9696c2187bb8c2fc77e72377df79e080578605b3 25-Jun-2016 Hall Liu <hallliu@google.com> Switch to speakerphone when upgrading to video

When an audio-only call gets upgraded to a video call, switch to
speakerphone if the call would have been started in speakerphone had it
been a video call from the beginning (i.e. if there's no headset or
bluetooth connected and config options support it)

Change-Id: I4b8eb1c0f21753a8878f72d9279335a946c9f5a9
Fixes: 29563103
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
976953851e1d011ab4f4a5236bd2f82e026b821d 16-Jun-2016 Sanket Agarwal <sanketa@google.com> Synchronize onCallAdded with onCallRemoved.
am: 23eb57a66a

Change-Id: Ie50f57a6214be1fdc232663ecec7520f4e313b58
23eb57a66a1842064348c5cdb858f8b2e2e261c5 15-Jun-2016 Sanket Agarwal <sanketa@google.com> Synchronize onCallAdded with onCallRemoved.

In cases of very quick call and hangup we can sometimes get call
disconnected (and onCallRemoved) status chagned before we get
onCallAdded. This is because onCallAdded currently does not hold the
lock.

Bug: b/28969591
Change-Id: Ic2f291dff9dd61c54b1ada3b21c61e24bca65ebc
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
9eb7d9a76d5b00256262feeff127b85bac917c76 14-Jun-2016 Tyler Gunn <tgunn@google.com> Merge "Filter external calls when InCallService doesn't support them." into nyc-mr1-dev
f15dc33f87f88e21ef745952a68af65c86e1bf1e 08-Jun-2016 Tyler Gunn <tgunn@google.com> Filter external calls when InCallService doesn't support them.

Use TelecomManager#METADATA_INCLUDE_EXTERNAL_CALLS metadata to check
whether an InCallService supports external calls. Will only send
external calls to an InCallService which has correct Metadata to indicate
that it wants to be informed of external calls.

This required some changes to how InCallController keeps track of the
incallservices. I have added an InCallServiceInfo class which tracks
the component name of an ICS as well as whether it supports external calls.

The change to CallsManager#getFirstCallWithState and getNumCallsWithSate
ensures that when TelecomServiceImpl checks to see if there are ongoing
calls it doesn't consider external calls when checking if there is an
ongoing call, and also when determining if room needs to be made for a
call.

Bug: 27458894
Change-Id: I69652877332be8527fb16a38c692b6f51a92e469
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.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/InCallController.java
09c900ef10510038772e172f5c3e553a3f0d9366 15-Apr-2016 Hall Liu <hallliu@google.com> Merge "Fix unit tests" into nyc-dev
9ecbb1cbae4dbb62a892c1347d8cb8691550ad1b 14-Apr-2016 Hall Liu <hallliu@google.com> Fix unit tests

Unit tests were failing because:

1. The fake context's bindServiceAsUser asynchronously calls
onServiceConnected, but the InCallController assumes that its connect()
method would finish before onServiceConnected gets called.

2. Video call tests depended on counting the number of audio state
transitions. This number is not a guaranteed (or even consistent) value,
so the mechanism for determining the final audio state has been replaced
by a latch posted to the CARSM handler.

3. IncomingCallFilter tests were experiencing a strange problem where
setting the timeouts value only worked when the tests were run in
isolation. This was fixed by putting in an adapter for the static
Timeouts class.

Fix: 28200736
Change-Id: If5fbd60e1a3c5d478d4555d8794a49855997f1d3
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
1a40c4f4daf2cdfba3f67383c726f93b85a98b00 14-Apr-2016 Tyler Gunn <tgunn@google.com> Improvements to external call handling.

Add onExternalCallChanged listener in Call to report when a call switches
between being external and not.
In CallAudioManager, BluetoothPhoneServiceImpl, HeadsetMediaButton, and
PhoneStateBroadcaster, listen to changes in the external call state.

This ensures that when a call becomes external or a call becomes
non-external that the various modules updates themselves appropriately.

Bug: 28179159
Change-Id: I44bc0b94f185c66aeddb68549223533249bb0b62
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
4fe861d770aaa749e2b6191e8121e5b831a95917 30-Mar-2016 Tyler Gunn <tgunn@google.com> Add telecom support for multi-endpoint.

- Add "isExternalCall" method to Call class.
- Ensure CallAudioManager ignores external calls.
- Prevent InCallController from passing extras to InCall UI which cause
it to start displaying the fullscreen outgoing call UI.

Bug: 27458894
Change-Id: I40160edd6191e71b409ff1f18ca2b8cc9662211f
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
14fd8f3d5a86b0b1d56f27d7a638d8d4b29e766d 31-Mar-2016 Santos Cordon <santoscordon@google.com> Merge "Dynamic InCallService switching." into nyc-dev
501b9b3775232bb3033afd9f1fd608dd07d0b91e 07-Mar-2016 Santos Cordon <santoscordon@google.com> Dynamic InCallService switching.

Be able to switch between in-call services UIs.

Created a tree data structure to handle switching between InCallServices
depending on the state of the system. Tree looks like this:

CarModeSwitchingConnection
| |
+------+ +-------+
| |
CarModeConnection EmergencyConnection
|
|
DefaultDialerConnection

Bug: 24571147
Change-Id: I0999fad4185321d5211172aed2f1d60fe8f5fe3a
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.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/InCallController.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/InCallController.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/InCallController.java
f0f99f34fc993dc72c335133c6b04720c826c891 19-Feb-2016 Santos Cordon <santoscordon@google.com> Add *AsUser() calls where appropriate for multi-user support.

Although telecom always runs as system user, it binds to apps in the
user space and so needs to interact with apps with the current user
explicitly. This change fixes areas that neglected to do that.

Bug: 27161171
Change-Id: I55a4f612c9b38d4e448c346173845a79a926c695
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
e62e9e83a17824b8e2057be35c2adcca20af9e35 02-Feb-2016 Brad Ebinger <breadley@google.com> Introduce LoggingRunnable for Session logging

Introduces a Session.LoggingRunnable class to reduce code duplication
when implementing Runnables in Telecom.

Bug: 26807413
Change-Id: I40c709fd09260c6a40b63fd2c401e5a582035a5c
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
bd7d3791552312e605c073bf1adb6548a6371eb9 30-Jan-2016 Hall Liu <hallliu@google.com> Predictable ordering for sending calls to InCallService

Always order calls sent to an InCallService such that children are sent
before parents when there is a conference call going on.

Bug: 26818778
Change-Id: If42c10963c2d0c7f43498ef40d647781a0179dc2
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
840928552a07a649dd5ded64e8beaaf1107b1f1d 28-Jan-2016 Hall Liu <hallliu@google.com> Merge "Fix audio routing issue and flaky test"
d109afbb672ef3a1994cd3c32f10332f40f6af7f 26-Jan-2016 Hall Liu <hallliu@google.com> Fix audio routing issue and flaky test

There was a potential issue in CallAudioRouteManager where the
transition from a quiescent state to its corresponding active state
would not be communicated to the in-call service. This has been fixed.

This change also changes InCallController to not broadcast current state
to all bound in-call services when a new service is bound.
VideoCallTests was adjusted to take this into account.

Bug: 26827840
Change-Id: Ibda3e2c783b77d82a7337fa39f4675dac22ae071
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
ae92595c2f0f88a5bef8d2601f026b9d3ae2d7dd 25-Jan-2016 Sailesh Nepal <sail@google.com> Use CallScreningService to screen calls

This CL uses the new CallScreeningService to allow or disallow calls.
Similar to InCallService, the call screening service holds a wake lock.

We also implement a timeout on the telecom side. The timeout is a very
large value (5 seconds). The logic is that a flaky in-call can mess up
calls in many ways so there's no point in trying to be strict here.

Currently the service is invoked after the send to voicemail logic. We
should consider depreciating the old logic and insisting that the dialer
handle all call screening.

BUG: 22857261
Change-Id: I52b97be8e20c0f404839790e69a5f33588093daa
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
c07b8e190b04e8b3e504478fa808d646d8c88a52 24-Jan-2016 Sailesh Nepal <sail@google.com> Allow dialer to play incoming call ringtone

This CL allows the default dialer app to play the incoming call
ringtone. This is useful because:
- the sound will now be played at the same time the UI is shown.
Previously the sound could be played earlier
- it will be easier for the system to respect the user's do not
disturb setting on a per contact basis

The dialer app can opt into the new behavior by setting a meta-data
value of IN_CALL_SERVICE_RINGING to true.

This CL also notifies the InCallService if silenceRinger was called.

BUG: 22857261
Change-Id: If1d05a922dd9869bc5b58157c67e9144001ee1ad
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
e6cb92541b88967bf701d37a4173181376e8804d 26-Jan-2016 Tyler Gunn <tgunn@google.com> Merge "Propagate CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO capability."
05aef4e0992d1b81f05b56a57be684ea8790ea44 22-Jan-2016 Tyler Gunn <tgunn@google.com> Propagate CAPABILITY_CANNOT_DOWNGRADE_VIDEO_TO_AUDIO capability.

Propagate the connection capability through to a call capability.

Bug: 22728624
Change-Id: I2de63ba09d91f87e6d3f3083be070ec841abac0b
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
f78a72f8a1054726aa6f85a21372d917576906dd 21-Jan-2016 Santos Cordon <santoscordon@google.com> Revert "Revert "Support car-mode UI in telecom.""

This reverts commit 88cda8452124d43c145d54a97477dc5cf8a32a58.

Change-Id: Icfd1ab3ed3af39f62bd828dceb5ff2d4d517cb91
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
88cda8452124d43c145d54a97477dc5cf8a32a58 21-Jan-2016 Brad Ebinger <breadley@google.com> Revert "Support car-mode UI in telecom."

This reverts commit d3182912911d167e4a5a8d379cef11c619d18d36.

Change-Id: I48da1122846b18c03bec486ee2bf977f721723a2
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
d3182912911d167e4a5a8d379cef11c619d18d36 11-Dec-2015 Santos Cordon <santoscordon@google.com> Support car-mode UI in telecom.

Add additional step to look for and bind to a car-mode UI if the device
is currently in car-mode. Add a system state component to listen for
car-mode changes.

Change-Id: I5124b46f43b47bda39cf3d0f882378cf69b0505b
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
209e4135874ffc0164856c87d47fd904a06bf40e 18-Dec-2015 Brad Ebinger <breadley@google.com> Record ComponentName when using InCallAdapter

Records the Package Name of the component using an InCallAdapter
to be displayed in logging.

Also, Logging Start/End Sessions have been moved to a verbose
logging level for now.

Bug: 26236642
Change-Id: Ic76c9618f3acd98c8c761dbfab6a202ad30fd05f
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
3ae2dc823fc5fb2de346685a558480ece1ffc074 07-Jan-2016 Tony Mak <tonymak@google.com> Add property PROPERTY_WORK_CALL to ParcelableCall

Bug: 26022174
Change-Id: I18c039c1026acd6439809a01e4e742c8127d207c
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
67d76ce7042c33664df63cb57c91576fe61d8452 18-Dec-2015 Tyler Gunn <tgunn@google.com> Fix incorrect bit comparisons in InCallController.

See the other bug in this topic for info on why.

Bug: 26272951
Change-Id: Ief8153550d9fbaa17995517ce8e62cfb7184674b
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.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/InCallController.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/InCallController.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/InCallController.java
7a6df31b30295e30553a6de9a0bcad9a5ec80726 01-Jul-2015 Roshan Pius <rpius@google.com> Merge "Delay unbinding the incall services on call remove." into mnc-dev
4995e781ab0842212ef7d78cffa94bf5dcedb47e 27-Jun-2015 Roshan Pius <rpius@google.com> Delay unbinding the incall services on call remove.

When Telecom tries to unbind the in-call services, there is a possible
race condition because in-call services may not have fully processed all
the pending messages posted to it by telecom. So, adding a 2 sec delay
in telecom to give sufficient time for the in-call services to finish
their processing before unbinding it.

BUG: 22045133
Change-Id: Iaf743e95fde80763e3a8c0efc726809605dce57d
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
e3015e8a6842a248626ddd4e812cee43b962a869 24-Jun-2015 Santos Cordon <santoscordon@google.com> Reconnect to In-Call if it dies.

When an In-Call Service dies, we allow it to die and stop updating it
until the ongoing calls are finished. If the service which disconnected
was responsible for the UI, then we unbind to that service and bind to
the system-provided UI.

Bug: 21780600
Change-Id: Ibb8861aab666018ee2349e2bd0b5b96851aebf5f
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
8c9ec002efffd3a3fb87c963b69be2a8f029b4b2 23-Jun-2015 Santos Cordon <santoscordon@google.com> InCallService meta-data [1/4]

Bug: 21816241
Change-Id: If8fe9e19495e8799be10223953c285216fa2228f
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
d794fd2185858563a8849527b730495cc999176a 13-Jun-2015 Yorke Lee <yorkelee@google.com> Don't crash if unbinding from InCallService fails

If unbinding from an InCallService fails for any reason, don't
bring down the entire system process.

Bug: 21765111
Change-Id: I5651db361f5f0fdc7dd18a0799ead1ad20a0b9e3
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
867907d6b04e63c29fce74baad724ed96871221e 03-Jun-2015 Yorke Lee <yorkelee@google.com> Disconnect SELECT_PHONE_ACCOUNT call to make room for outgoing call

If there is a call still in the SELECT_PHONE_ACCOUNT state while
a new outgoing call is made, disconnect it to make room.

Also fix some logging in InCallController

Bug: 19187111
Change-Id: Ia161325480692ead7a1633f47604ced01604883f
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
07d4886088098cd91fbae81b81ae1e7eedefc060 01-Jun-2015 Santos Cordon <santoscordon@google.com> Merge "Add FOREGROUND_SERVICE flags to telecom bindings." into mnc-dev
8e6edbf6eede9221ad4ef30ffb7d6ff26553a329 29-May-2015 Santos Cordon <santoscordon@google.com> Add FOREGROUND_SERVICE flags to telecom bindings.

This prevents the bound services (ConnectionService & InCallService)
from suffering power-saving measures of reduced network access or
outright killing of the process.

Bug: 21520647
Change-Id: I45640fbca4a669bf72b2aa03b1017eeeffa52375
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.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/InCallController.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/InCallController.java
db26790fe0e2e4aa334fb6a83418d91bede1ebb9 29-Apr-2015 Andrew Lee <anwlee@google.com> Add Call.Detail.PROPERTY_* values.

Convert from Connection.CAPABILITY_* values to
Call.Detail.PROPERTY_* values as appropriate.

Bug: 20160395
Change-Id: Ic3ea5916285bc9c83ef0af1bb96b78034e47a4b2
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
439c988c82b0b952d113538e840abd49f481d4bf 25-Apr-2015 Yorke Lee <yorkelee@google.com> Default or system dialer does not need CONTROL_INCALL_EXPERIENCE

Bug: 20304411

Change-Id: I6f2496d20c0e21c433fd7c52d674ef4f1a6d8c1b
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
5b2c59e20e1fafeafa8f50cc8b9dc0df15cdd812 24-Apr-2015 Etan Cohen <etancohen@google.com> Merge commit '0751e61' into merge2
92694519535c54f542b4ef3973e9c1934f2feeff 23-Apr-2015 Santos Cordon <santoscordon@google.com> Move CallState and rename PRE_DIAL_WAIT.

CallState was a public API only being used by Telecom so I've moved it
into to Telecom and removed it from the public API. The translation
from CallState to Call.STATE_* was happening on the public Call object
which wasn't ideal (Call.java shouldn't have to know that other
representations of state exist). So I moved the translation into
InCallController.java and what we pass into ParcelableCall is now
Call.STATE_* constants.

Bug: 20532827
Bug: 20532435
Change-Id: I79ce36c7e971c1a49b857506c9a56cfe316069cf
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
7cc486c725e2ae9b8051b4f36fd0c41ff3a8aca3 16-Apr-2015 Jay Shrauner <shrauner@google.com> Remove connection substate

Bug:20300433
Change-Id: I4148ac2677598d4db60950712fda2a3be726d791
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
633963ebba74f464cf134683ed985f8b237660cc 15-Apr-2015 Tyler Gunn <tgunn@google.com> 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.

- Modify InCallController to only update the VideoProvider in the parcelled
call data if it has changed.
- In InCallController, removed check that would prevent sending video
provider to other InCallServices other than the default incall UI.
- Created TestCallList and modified TestInCallServiceImpl to track all
calls and output some debug information about the calls/video callbacks.
- Added a new Test intent, ACTION_SEND_UPGRADE_TO_VIDEO_REQUEST which will
cause the TestInCallServiceImpl to loop through all telecom calls and
trigger the VideoCall API to send an upgrade to video request. THis is
to mimic how the telephony test team will be using a test InCallService
to control the device.

Bug: 20092420
Change-Id: Ib781551d5168bc095f58b7b62906a9e59e43958e
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
95ac44451d432cbbb3908efed490e90a803edf22 15-Apr-2015 Andrew Lee <anwlee@google.com> DO NOT MERGE Suffix VT_LOCAL/VT_REMOTE with BIDIRECTIONAL.

Bug: 20160395
Change-Id: Id109cf1ee5206fc4a6d445716b6e5c8e20930b1c
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
73ff372fda987a9e797d1c4ecf363a16b7d2abda 15-Apr-2015 Vinit Deshpande <vinitd@google.com> am 959afe0..abcbce4 from mirror-m-wireless-internal-release

abcbce4 Fix deadlock around locking in AudioManager
5a1b1fd Merge "Add more capabilities to TestVideoProvider" into m-wireless-dev
e09b47b Add more capabilities to TestVideoProvider

Change-Id: I00a8a3bebd56a5f78b6b3fa3958d6cf3929b1834
d240fe8e16205623eb6cb73c3d42448554690033 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/InCallController.java
fd93244c8d002699942dfd45be9c7fb9f0eaa4a8 11-Apr-2015 Andrew Lee <anwlee@google.com> Missing BIDIRECTIONAL suffix.

Bug: 20160395
Change-Id: I9c38a13dcbdfa19ad621fbc81f0e049471bdd688
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
08128af432ff1ff5358cf27fc0a5cf5d8615fa39 11-Apr-2015 Andrew Lee <anwlee@google.com> Suffix VT_LOCAL and VT_REMOTE with BIDIRECTIONAL.

Bug: 20160491
Change-Id: I4eadaec8df3ad415f3f7e10337d10165483222fd
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
959afe011bb4d41d7037844874acecb6e609e4f8 08-Apr-2015 Tyler Gunn <tgunn@google.com> Cleanup of Video Call pause functionality.

Whether the paused videoState is available is dependent on the carrier's
implementation of the VT spec. The original VT implementation assumed
that this was stored in a system property accessed via InCall; these CLs
move this to a Call/Connection capability which will ultimately support
multisim video capable devices.

- Added mapping between Connection/Call capability.
- Changed toString for VideoState in a Call so that it is easier to see
the video state of a call in the logs.

Bug: 16680364
Bug: 19820114
Change-Id: I3840f92270100811161120dffcfe297bef7c4ea2
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.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/InCallController.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/InCallController.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/InCallController.java
958e14df070ee4f430dd6d06ef2d4584f4b87d86 11-Mar-2015 Andrew Lee <anwlee@google.com> Update video capability conversion for TX/RX bits.

Change-Id: Ic7744a3a2daabb2f8cf6df37d7f929236bd392ff
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
72e47d5843810c17cea5cf3aadc76556f89e720a 06-Feb-2015 Tyler Gunn <tgunn@google.com> Fix emergency callback number not shown for incoming calls.

- Translate Connection CAPABILITY_SHOW_CALLBACK_NUMBER to Call equivalent.

Bug: 18689292
Change-Id: I290b2fbefcd68876dd03cdd671e55b58ae5d75ca
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.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/InCallController.java
df8b35e67830d0a2563faaac1e998364e9a95513 02-Feb-2015 Andrew Lee <anwlee@google.com> Rename from VoWIFI to WIFI.

Make capability lable for calls made over Wifi more generic.

Bug: 19151548
Change-Id: I90fef9540c9ccdc45309b6325d8ee4fbd38c0c4e
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
79d646f9a02d03f8cdc1dd81bb35cccbff09bf47 22-Jan-2015 Nancy Chen <nancychen@google.com> Remove line to allow hiding SMS response from InCallUI in multiSIM.

We sometimes will want to hide the SMS response option from the
InCallUI even if the subscription is able to send SMS messages. For
example in a multi-SIM phone where a call comes in to the non-default
SMS phone account. Remove a somewhat duplicate case of adding
CAPABILITY_RESPOND_VIA_SMS to handle this case.

Bug: 19034404
Change-Id: Ia2793c26a362de317e09ea0c5ea07f14fe326794
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
9b71ea8289cb3c6e14beb11f7707ae3ef4dfe83f 26-Nov-2014 Yorke Lee <yorkelee@google.com> Improve outgoing call UI responsiveness

* Send call extras in a bundle to the service when binding. This
provides information about the call so that the incall-service can
setup its UI immediately before the rest of Telecom is done.

* Move outgoing call flow to always go through the CallReceiver.
This allows CallActivity to finish and not block ActivityManager by
remaining as the foreground activity.

Bug: 18373617

Change-Id: I75ca3b12ce1b0db91bd05f3c77cad31f78ca8ebd
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
117f0ac39a1ad4bd849082b6e6aa5c12b1041239 03-Dec-2014 Tyler Gunn <tgunn@google.com> Merge "Fixing issue where VoLTE conference calls have incorrect call time." into lmp-mr1-dev
a21edb812cc2c5af94bdbb1f7d2d96ee1d9f4fb9 02-Dec-2014 Andrew Lee <anwlee@google.com> Properly convert GENERIC_CONFERENCE capabilities.

Bug: 18590173
Change-Id: I9821506ce85100662988ae4f8f653f067af1649f
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
d5c2fcf3bc8fc8ae08c05d7172e2244335c73e8f 02-Dec-2014 Andrew Lee <anwlee@google.com> Fix connection <=> call capability conversion.

Bug: 18583954
Bug: 18292176
Change-Id: I8c9b44375845fc802c2bffe32a575241a553e68d
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
c314fcc186caa90c9c78b93aa2299d7641c9d4f1 02-Dec-2014 Tyler Gunn <tgunn@google.com> Fixing issue where VoLTE conference calls have incorrect call time.

1. In constructor for "Call", setting connect time for new conferences;
the connect time is normally set when a call goes ACTIVE, but since a
conference starts active it never gets a state change to active.
2. Changed code in InCallController which finds oldest connected child
call to handle the potential case where no children have a connect time
defined. This can occur when an IMS conference has just started and
conference event package participants are added. Since they are initially
added as "NEW", it is possible for there to be no active child call, which
could cause the timer to glitch until the child calls become active.

Bug: 18511011
Change-Id: I36782db8f89299c31e6f489d34a83701855d30c8
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
15a71555709aaf3574e8b39bebf022b5e6f75228 01-Dec-2014 Andrew Lee <anwlee@google.com> Rename VoLTE capability to HIGH_DEF_AUDIO.

Bug: 18103173
Change-Id: I87ff31c674601bf63382a23daceb09b7c4a5ed9b
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.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/InCallController.java
77804e7345660156b3c8421132be90ce00b70635 24-Nov-2014 Santos Cordon <santoscordon@google.com> Merge "Remove Guava references from Telecom." into lmp-mr1-dev
e321383b381bf4dfe6274dbf190fbe4105880f71 21-Nov-2014 Nancy Chen <nancychen@google.com> Merge "Hide "respond via SMS" option for non-default SMS SIM." into lmp-mr1-dev
4bc0245eb5c09ab48dcbb673eefdf7175ae8ac9c 20-Nov-2014 Santos Cordon <santoscordon@google.com> Remove Guava references from Telecom.

Prepping telecom to run in system-server process by removing references
to guava.

Bug: 18112269
Change-Id: I994be480284462240da46c9cf0e47aa83f5f1fe9
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
668dee01ed4fb495c3711f6fd041a520b60a9a7f 20-Nov-2014 Nancy Chen <nancychen@google.com> Hide "respond via SMS" option for non-default SMS SIM.

If an incoming call is coming in through the non-default SMS SIM, do not
show the "respond via SMS" option. This is to prevent accidentally
sending the SMS through a SIM the user may not want to use for SMS.

Bug: 18275919
Change-Id: I0136f30d6341e72ac6e914de41f9c41bd58f1bbb
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
7cdd04c8ff9e3020a32a649f0e4887ffce0162cb 17-Nov-2014 Yorke Lee <yorkelee@google.com> Merge "Create default InCallService with Context.BIND_IMPORTANT" into lmp-mr1-dev
e4a9c412f5c6f76f006659f0b4e171ef4547dc45 15-Nov-2014 Yorke Lee <yorkelee@google.com> Add Systrace logging to Telecom

More granular per-listener logging is protected by a
static boolean flag which is currently turned on for
dogfooding.

Bug: 18373617

Change-Id: Id37c75f2e2475923dcd66aa7325b3d8767f29a97
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
8efc0323cc51ed8536f2dfa8349c7216a7664413 15-Nov-2014 Yorke Lee <yorkelee@google.com> Create default InCallService with Context.BIND_IMPORTANT

Docs suggest that this is good to do when starting a service from an
activity.

Performance is too affected by b/18338152 to get accurate measurements
right now, but this change doesn't seem to hurt (~50ms faster across
9 runs, 3 runs per reboot).

Bug: 18373617

Change-Id: I235120f23ab972157653c9863f99511adbac747b
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
91bd74cbe13428643a73acb5c7fd5d7dd136b6d9 08-Nov-2014 Santos Cordon <santoscordon@google.com> Make add-call a global property of telecom. (2/4)

ADD_CALL didn't make sense as a property of Connection or Call.
This changes it to be a global property instead.

Bug: 18285352
Change-Id: I5189e114e74dba2d81d74c6d24cf5b17f1e0922a
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
235a52fae2ce75a38311569c4a22fcbeed8c5c94 21-Oct-2014 Andrew Lee <anwlee@google.com> Remove ADD_CALL if not only top-level call.

ADD_CALL now depends on the state of the underlying connections, and
the mix of GSM/CDMA/IMS connections.

I propose to address this by setting those capabilities as true on
the GSM/CDMA connections, then further filtering in Telecom depending
on the call state (ie. whether it is the only top level call, and
whether or not we're dialing). I think this logic should be simpler,
and also allows us to more directly control this capability depending
on the connection type.

Bug: 18062269
Change-Id: Ie5be502545a580719e65595e495ff30cbc3fc22f
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
cfd8f563630612fc22480643b10dd95df90f51d0 20-Oct-2014 Andrew Lee <anwlee@google.com> Disable add call/upgrade to video during dialing.

Add call worked in earlier versions, but we don't support multiple
outgoing calls right now.

Bug: 17009425
Change-Id: I5e80741ed11e21659ec359e5f9a88220ca31e6c8
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
9787e0e80d8960cf8b0ca74c7cdc4c4aac97187a 14-Oct-2014 Tyler Gunn <tgunn@google.com> Adding more Telecom state dumping.

Bug: 17730966
Change-Id: I47c83591417784c9484002213230065514b43f63
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
5dfd3800f15e9b0f1420813d8d7638e1cf9d621d 09-Oct-2014 Santos Cordon <santoscordon@google.com> Unset disconnecting boolean when a call transitions to DISCONNECTED.

Bug: 17923738
Change-Id: I420a2e20d8e080463acec4f329ed26fad1416a1f
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
aa47937652d80d8bd19860ec521d28ffea745e63 07-Oct-2014 Tyler Gunn <tgunn@google.com> Fixing where call goes from disconnecting to active to disconnecting state.

- Marking calls parceled for InCall as disconnecting when they are
locally disconneted by the user but not yet confirmed as disconnected
by the connection service.

Bug: 17821930
Change-Id: I6640ef4d92d275f75f6a1e0be71d6e1811ba374d
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.java
4f50f8e29d7479351ec344ec592686708ff01055 06-Oct-2014 Santos Cordon <santoscordon@google.com> Dont clear serviceConnections on subsequent bind() calls.

Bind() gets invoked with each call that is added before the first bind()
is complete. We were clearing the service connection set each time which
effectively meant that we were dropping the previous bind requests on
the floor. The rest of the code already does the right checks to not
rebind to the same service so just remove the clear().

Bug:17735448
Change-Id: I614225b05fa29b143604fe4dfedaa1e417dc2d2d
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.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/InCallController.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/InCallController.java
a9173085c5c176d3f632e50e962701bba2473b2a 16-Sep-2014 Yorke Lee <yorkelee@google.com> Fix for busted call duration in CDMA conference

A connect time of 0 is invalid and should not be used to determine
a parent's connect time.

Bug: 17508340
Change-Id: I21723100deee349b00a10f142b32a882f3bd925e
/packages/services/Telecomm/src/com/android/server/telecom/InCallController.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/InCallController.java