• Home
  • History
  • Annotate
  • only in /packages/services/Telecomm/tests/src/com/android/server/
History log of /packages/services/Telecomm/tests/src/com/android/server/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
fa5faef4a25315253e674391da587f78e162b890 22-Dec-2017 Hall Liu <hallliu@google.com> Reset speakerphone at beginning and end of calls

Always call AudioManager#setSpeakerphoneOn(false) at the beginning and
end of calls.

Bug: 69305994
Bug: 70338906
Test: unit
Change-Id: Ifcd887ca7bdeab8cff8a2773a306548142979238
Merged-In: Ifcd887ca7bdeab8cff8a2773a306548142979238
(cherry picked from commit 0814db7bf10de1c51c7f4bd15b70c6f6eebd5dac)
elecom/tests/CallAudioRouteStateMachineTest.java
f4cc3112101d48b546464bfb8766e6d8d6e6ae14 06-Oct-2017 Tyler Gunn <tgunn@google.com> Fix NPE in TelecomManager#isOutgoingCallAllowed

There is a potential for a NPE if "excludeCall" is null. Adding null
check and unit tests to verify operation of the isOutgoingCallAllowed API,
as well as basic outgoing self-managed calls (which rely on this API).

Test: Added unit tests.
Change-Id: Ia5e92a7cb418af0d131daa2ca88b7cd4d36ab057
Fixes: 67495237
elecom/tests/BasicCallTests.java
elecom/tests/TelecomSystemTest.java
bcf23de07aed59ed34d0121a76d29b6ed9a14288 04-Aug-2017 Tyler Gunn <tgunn@google.com> Change getAgeMillis to use elapsed system time instead of wall-clock time.

Changing getAgeMillis to rely on SystemClock#elapsedRealtime() to determine
the duration of a call. This ensures that changes to the device time zone,
clock updates by the network and user initiated time changes to not
impact the duration of calls in the call log.

Test: Manual, unit
Bug: 64068300
Merged-In: I62924dc7889c86a7457d05f8fbb20ab8189ece1a
Change-Id: I62924dc7889c86a7457d05f8fbb20ab8189ece1a
(cherry picked from commit 6c3a2dd68c9ac5584f48cf5f62fa01896fccdc7d)
elecom/tests/BasicCallTests.java
elecom/tests/ConnectionServiceFixture.java
elecom/tests/TelecomSystemTest.java
629ea10deba347f47ff4b79d1afc14c22d700d68 20-Jun-2017 Hall Liu <hallliu@google.com> Include Bluetooth in baseline route calculations

Include Bluetooth in baseline route calculations to handle the scenario
where a wired headset is connected-and-disconnected while a call is on
bluetooth.

Change-Id: Ia4e4f499f1eef74e9f67c5c06e21e04befa9adfd
Fixes: 62391035
Test: ran unit tests
elecom/tests/CallAudioRouteStateMachineTest.java
5cfc86b2dc2f912077ba6d047630ac8f4b251c06 18-Aug-2017 Hall Liu <hallliu@google.com> Ensure that audio routes are properly logged

Make sure that the first audio route is logged in analytics.

Change-Id: I04820ba37ccf160490ed3bd87db4c34769b4aa05
Fixes: 64584823
Test: unit
elecom/tests/AnalyticsTests.java
b079fc5ba77b79175837c1132211b9d81cb9ad78 08-Jul-2017 Brad Ebinger <breadley@google.com> Log Outgoing rejected/canceled VT calls as video

When placing a call that is rejected or canceled before
it went to active, we used to log those calls as audio calls.

This change fixes that bug and correctly logs these
canceled/rejected calls as video calls.

Test: Manual, telecom unit tests
Bug: 63099560
Change-Id: I8eff4c99d06a50c7d19ec3cfa08524cf1ad79ac2
elecom/tests/BasicCallTests.java
elecom/tests/VideoCallTests.java
7808d9bdabcb43a075a7a6e649f00dc3a1c006e3 27-Jun-2017 Brad Ebinger <breadley@google.com> Include Video history in Rejected calls

Change the disconnected state logic to include rejected
calls as a criteria to log video history.

Bug: 63000001
Test: Manual, Telecom Unit Tests
Change-Id: Ib62046819a36a29b67632459328eb8644b02398a
elecom/tests/BasicCallTests.java
7b05c99aab1577f705b412b9ec95aff855c60467 14-Jun-2017 Brad Ebinger <breadley@google.com> Merge "Fixes some of the flakiness in Telecom" into oc-dr1-dev
141ef5805d18b0c8b71d2a50f77837e719672569 26-May-2017 Tyler Gunn <tgunn@google.com> Call handover improvements

- Set handover_from attribute when initiating a handover to another phone
account. This lets the recipient know where the call is coming from.
- Replace "handover successful" indicator on calls with a handover state.
This ensures there is sufficient state to ensure that if a call is
hung up before the handover is accepted that we don't treat that hangup
as if the handover was successful.
- Ensure failed handovers are not logged.
- Prevent EXTRA_IS_HANDOVER from being set for outgoing calls.

Test: Unit, Manual
Bug: 37977155
Bug: 38027075
Change-Id: Ie5240c28163714be71825e718daa560eb568330f
elecom/tests/IncomingCallNotifierTest.java
7bba1112556e122254013562650aac6a6af80ac6 08-Jun-2017 Brad Ebinger <breadley@google.com> Fixes some of the flakiness in Telecom

- Fixes some flakiness in the tests
- Mocks out the ToneGenerator

Test: Run Telecom Unit Tests
Change-Id: If3bd51fe4a82068cc0d712d2e499abde4fdb0481
elecom/tests/CallAudioRouteStateMachineTest.java
elecom/tests/ComponentContextFixture.java
elecom/tests/TelecomSystemTest.java
elecom/tests/TelecomTestCase.java
f02e26a4e4199acf39b25e4962621ed5466f5aa6 06-Jun-2017 Brad Ebinger <breadley@google.com> Merge "Fixes InCallControllerTests failure" into oc-dev am: 85182d30c3
am: 9980350a10

Change-Id: Ib0781051256fd4e3fb9712cdb2f6dc9537b18548
9980350a1078240ebbe4b8649a9fa5f8369c5fc5 06-Jun-2017 Brad Ebinger <breadley@google.com> Merge "Fixes InCallControllerTests failure" into oc-dev
am: 85182d30c3

Change-Id: Ica5633fe06f699360bac047ccaca6fb2d6fb638b
782f91109ff869a6078bb8dd9294d3172d2a6903 31-May-2017 Brad Ebinger <breadley@google.com> Fixes InCallControllerTests failure

Test: Run lite_test_telecom unit tests
Change-Id: I200f284e919aa924c6167287675e2fef3c9ba477
elecom/tests/InCallControllerTests.java
9b02bddd63b6737180b8334962b2036dfe86e7c5 24-May-2017 Tyler Gunn <tgunn@google.com> Merge "Call "createConnectionComplete" callback in Telecom." into oc-dev am: 1fc35b9de1
am: ee174c58f8

Change-Id: Ief4bcab9056f635ff72f19835c8cf63b4bc27143
ee174c58f851657cc4209574a06d7d72576b97e9 24-May-2017 Tyler Gunn <tgunn@google.com> Merge "Call "createConnectionComplete" callback in Telecom." into oc-dev
am: 1fc35b9de1

Change-Id: I5c943ab3595914bef1861edce25c5692c71f2250
1fc35b9de1ddc6c7a88613ac92b41517ec89ba13 24-May-2017 Tyler Gunn <tgunn@google.com> Merge "Call "createConnectionComplete" callback in Telecom." into oc-dev
2953701e61b83d8d73b2dfe60051cc797b244f78 23-May-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Handle USER_REMOVED action in DefaultDialerCache" into oc-dev
c6c051bae548cece7033082b8cb11723c6af4c80 17-May-2017 Tony Mak <tonymak@google.com> Handle USER_REMOVED action in DefaultDialerCache

When a user is removed, its entry sticks around in the dialer cache.
This causes a lot of logspam during CTS. This change removes a user from
the default dialer cache when its USER_REMOVED broadcast is sent.

Change-Id: I4c86957fae21e37b213bbf13d26c21df74d85b0a
Merged-In: I734547ad475a5926c58a8de6897bdeda10e0a9dd
Fixes: 38161359
Fixes: 33744271
Test: manual and unit
elecom/tests/DefaultDialerCacheTest.java
7286d1812b33ea12835a30555a2c395aa0725af6 17-May-2017 Tony Mak <tonymak@google.com> Handle USER_REMOVED action in DefaultDialerCache am: c2d48355ff am: 5ef1b63470 am: 290eacf333
am: 82ce167ba2

Change-Id: I9d654caba2dda458dbdee22e6e259b4496c774c4
82ce167ba269d6c98919b1cc398dbe381b897d8c 17-May-2017 Tony Mak <tonymak@google.com> Handle USER_REMOVED action in DefaultDialerCache am: c2d48355ff am: 5ef1b63470
am: 290eacf333

Change-Id: I734547ad475a5926c58a8de6897bdeda10e0a9dd
c2d48355ffd2704f52d8b3b8834a2167652e95fa 17-May-2017 Tony Mak <tonymak@google.com> Handle USER_REMOVED action in DefaultDialerCache

When a user is removed, its entry sticks around in the dialer cache.
This causes a lot of logspam during CTS. This change removes a user from
the default dialer cache when its USER_REMOVED broadcast is sent.

Change-Id: I4c86957fae21e37b213bbf13d26c21df74d85b0a
Fixes: 38161359
Test: manual and unit
elecom/tests/DefaultDialerCacheTest.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
elecom/tests/ConnectionServiceFixture.java
elecom/tests/TelecomSystemTest.java
15d096bd78c71959651d71a8981b9f89520537bc 04-May-2017 Tyler Gunn <tgunn@google.com> Fix issue where incoming call shows up while handing over call.

Fixing issue where the "Answering will end your other call" UX shows up
while a handover is in process. This was a race-condition which could
happen when the handover is marked as success and the incoming handover
call is not yet active.

Solved by tracking in a Call whether it has successfully handed over or
not. Using this to filter the call out from IncomingCallNotifier.

Test: Manual
Bug: 37768995
Change-Id: I8eeacb88c0c38953f1e4709ea5777c005cbeaf39
elecom/tests/IncomingCallNotifierTest.java
91ebb1ec79c869f5e8513a636df3ae64be39c006 28-Apr-2017 Tyler Gunn <tgunn@google.com> Merge changes from topic 'sort-order' am: a84782331e am: 79f9e2cf70
am: 6e03f2a7e4

Change-Id: I1a3aae6b0a274f90f67306f234171c7eed5c66ae
a84782331e231844ccfb610b5136057cc77bab2b 28-Apr-2017 Tyler Gunn <tgunn@google.com> Merge changes from topic 'sort-order'

* changes:
Migrate phone account sorting to use lamba expressions and add test.
PhoneAccounts sorting
702fdd02504beeed4cc89cbf767f856a74f203f5 18-Apr-2017 Tyler Gunn <tgunn@google.com> Migrate phone account sorting to use lamba expressions and add test.

Refactor the phone acconut sorting code to use lamba expressions and
to ensure sorting happens anytime phone accounts are written (rather than
just when they're added/edited).

Test: Unit
Bug: 34872161
Merged-In: I3b398a3ee004425947def808bf187003ff82ccf2
Change-Id: I3b398a3ee004425947def808bf187003ff82ccf2
elecom/tests/PhoneAccountRegistrarTest.java
ea921dcdf4d9f21451c49a6b0d1b6e67e374fa2c 18-Apr-2017 Tyler Gunn <tgunn@google.com> Migrate phone account sorting to use lamba expressions and add test.

Refactor the phone acconut sorting code to use lamba expressions and
to ensure sorting happens anytime phone accounts are written (rather than
just when they're added/edited).

Test: Unit
Bug: 34872161
Change-Id: I3b398a3ee004425947def808bf187003ff82ccf2
elecom/tests/PhoneAccountRegistrarTest.java
7d02b04ada6f2ee8e6d66e3974b25c58247efd27 25-Apr-2017 Hall Liu <hallliu@google.com> Merge "Speculative fix for flaky CallAudioRouteStateMachine tests" am: 3a0d757192 am: e9ca18734e
am: e1d0e4bcc6

Change-Id: I71fc4e726ec5b2df392c196f583002f76ca219ee
3a0d757192d58ba172ab5c1d61ecf60dcbb0dce0 25-Apr-2017 Hall Liu <hallliu@google.com> Merge "Speculative fix for flaky CallAudioRouteStateMachine tests"
5dba95131ed938c28019617b3103ab3457b11992 19-Apr-2017 Hall Liu <hallliu@google.com> Speculative fix for flaky CallAudioRouteStateMachine tests

Add a wait for handler to make sure that there's no spurious
multithreading

Test: test change
Merged-In: Ic293a8a5b71cca8c218ae276a7298971e14318fc
Change-Id: Ic293a8a5b71cca8c218ae276a7298971e14318fc
elecom/tests/CallAudioRouteStateMachineTest.java
56b8d337188a5b9021c4449f0870d6bb81ef7026 19-Apr-2017 Hall Liu <hallliu@google.com> Speculative fix for flaky CallAudioRouteStateMachine tests

Add a wait for handler to make sure that there's no spurious
multithreading

Test: test change
Change-Id: Ic293a8a5b71cca8c218ae276a7298971e14318fc
elecom/tests/CallAudioRouteStateMachineTest.java
cca957f37bf851c10767db541eb87f3150370702 11-Apr-2017 Tyler Gunn <tgunn@google.com> Remove auto-DND while in call.

Removing the auto DND functionality while in a call.
This functionality is being phased out due to b/28688969.

Test: Unit/Manual
Bug: 37154069
Merged-In: I5690116fc6a3938e7725a4b2963741885ddc8ac0
Change-Id: I5690116fc6a3938e7725a4b2963741885ddc8ac0
(cherry picked from commit daeffaf3dbcfadfcb58b07a56169982eacb697db)
elecom/tests/CallAudioRouteStateMachineTest.java
elecom/tests/TelecomSystemTest.java
369fd7887da98a4eb55944c92adc9abf481b845f 19-Apr-2017 Tyler Gunn <tgunn@google.com> Fix Telecom unit tests.

Cherry-pick from internal master.
This was originally caused by a change in b/37106957.

Bug: 37106957
Merged-In: Ia60d85410ec9824cb45c3678977499dcb8962ea0
Change-Id: Ia60d85410ec9824cb45c3678977499dcb8962ea0
(cherry picked from commit ff5fb18ae3400c560644158f179ab991b104419f)
elecom/tests/TelecomServiceImplTest.java
elecom/tests/TelecomSystemTest.java
31a052187feaa9bddbc48813989efe731d7becc5 19-Apr-2017 Tyler Gunn <tgunn@google.com> Merge "Remove auto-DND while in call."
ae54b2d111bfdcdce25177e193f0b6cc3a023326 19-Apr-2017 Tyler Gunn <tgunn@google.com> Merge "Fix Telecom unit tests." am: 4ce2b184a7 am: a17d44305c
am: 20ef5ef13a

Change-Id: I18294d80c0fc11ac2728f6e302489aea03d51264
93dc55f22d5bab2b552f9e28c14fb0cd49814d52 18-Apr-2017 Tyler Gunn <tgunn@google.com> Fix Telecom unit tests.

Ensure mock context can handle sending broadcast for the phone account
intents.
Fix register/unregister TelecomServiceImpl tests that no longer send
intents directly.

Test: Unit
Bug: 37106957
Change-Id: I414f888f1897108fd991e7b0a7e24fc9cc892c59
elecom/tests/TelecomServiceImplTest.java
elecom/tests/TelecomSystemTest.java
daeffaf3dbcfadfcb58b07a56169982eacb697db 11-Apr-2017 Tyler Gunn <tgunn@google.com> Remove auto-DND while in call.

Removing the auto DND functionality while in a call.
This functionality is being phased out due to b/28688969.

Test: Unit/Manual
Bug: 37154069
Change-Id: I5690116fc6a3938e7725a4b2963741885ddc8ac0
elecom/tests/CallAudioRouteStateMachineTest.java
elecom/tests/TelecomSystemTest.java
3048c360f74ab61ba0bb45d403e5f2fb6be6e562 18-Apr-2017 Hall Liu <hallliu@google.com> Merge "Update ringer to take BT device into account" into oc-dev
ffcd997cc73f7b2841843b447e77bdc92685e0c8 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
elecom/tests/RingerTest.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
9533e0a4de943665fd485dca3168874be623ee9d 17-Apr-2017 Treehugger Robot <treehugger-gerrit@google.com> Merge "Update ringer to take BT device into account"
4a05d5cc0acedb616ff6d22151f4ccf0043f0810 15-Apr-2017 Tyler Gunn <tgunn@google.com> DO NOT MERGE Ensure TelecomManager#isIncall returns true when in phone acct selection.

Cherry-pick from AOSP-Master.

am: baf105bf8b am: 82fafefe96 am: 75256f10e7
am: f6318ddade

Test: Manual
Bug: 34469716
Merged-In: Iec7e77bfbf2f0e493d8cc21187baca6a0a7d032d
Change-Id: Iec7e77bfbf2f0e493d8cc21187baca6a0a7d032d
(cherry picked from commit 44c54a2eda27f59219e078067efe1d68ee034aaa)
elecom/tests/TelecomServiceImplTest.java
f6318ddade2ba6ad03de3e321b6ab1b5b81a01ff 15-Apr-2017 Tyler Gunn <tgunn@google.com> Ensure TelecomManager#isIncall returns true when in phone acct selection. am: baf105bf8b am: 82fafefe96
am: 75256f10e7

Change-Id: If13e76bca6899a5f858686188b01df03756f75a3
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
elecom/tests/RingerTest.java
baf105bf8b27ebb87887632f8227c71cf9d8ce86 12-Apr-2017 Tyler Gunn <tgunn@google.com> Ensure TelecomManager#isIncall returns true when in phone acct selection.

Change TelecomManager#isInCall to return true when a call is in phone acct
selection. Also modify isInManagedCall to be consistent in which states
it checks.

Test: Unit, manual
Bug: 34469716
Change-Id: If969015b24348d96c74622a2790bd3d742401dc6
elecom/tests/TelecomServiceImplTest.java
d7a57f03a21e507a6577c2229354e589658e8efe 20-Mar-2017 Brad Ebinger <breadley@google.com> Fix Telecom Unit Tests
1) Add/Fix VideoProviderTests
2) Update tests to accommodate ContentProvider changes

Test: Telecom Unit Tests
Change-Id: I8ac65a4686937bfb3954f1d87ca8d1e4ee492644
elecom/tests/BluetoothPhoneServiceTest.java
elecom/tests/BluetoothRouteManagerTest.java
elecom/tests/CallScreeningServiceFilterTest.java
elecom/tests/ComponentContextFixture.java
elecom/tests/CreateConnectionProcessorTest.java
elecom/tests/InCallControllerTests.java
elecom/tests/MissedCallNotifierImplTest.java
elecom/tests/NewOutgoingCallIntentBroadcasterTest.java
elecom/tests/TelecomServiceImplTest.java
elecom/tests/TelecomSystemTest.java
elecom/tests/VideoProviderTest.java
68d17c62b6bbd608cdd6668be5488836e7393909 12-Apr-2017 Brad Ebinger <breadley@google.com> Fixes Failing Telecom Tests and marks flaky ones

This change fixes the failing Telecom tests and marks the
inconsistently failing ones as @FlakyTest.

Test: Build and run Telecom Unit Tests
Change-Id: Ifc6b296f7acddc136d99f063094f3d30bc2f02d0
elecom/tests/AnalyticsTests.java
elecom/tests/BasicCallTests.java
elecom/tests/MissedCallNotifierImplTest.java
elecom/tests/NewOutgoingCallIntentBroadcasterTest.java
acc09c44870b58e3350086a78add37bbedccfce8 04-Apr-2017 Tyler Gunn <tgunn@google.com> Add Telecom notification channels.

Test: Manual
Bug: 36866129
Merged-In: I49194128b4f526205055137d4ebaa8b282baa90f
Change-Id: I49194128b4f526205055137d4ebaa8b282baa90f
(cherry picked from commit dce902a0cd4d7060e1825cc3cde8d7f76eb67086)
elecom/tests/IncomingCallNotifierTest.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
elecom/tests/IncomingCallNotifierTest.java
elecom/tests/PhoneAccountRegistrarTest.java
elecom/tests/TelecomSystemTest.java
be4ff39882a2009b5e48ed6ca9cf79c6000bf048 31-Mar-2017 Tyler Gunn <tgunn@google.com> Merge "Self-Managed Incoming Call Disambiguation UX."
am: b77f30fa1f

Change-Id: I213b0d78a647086ce3bfa4728e4445854ab45e45
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
elecom/tests/IncomingCallNotifierTest.java
elecom/tests/PhoneAccountRegistrarTest.java
elecom/tests/TelecomSystemTest.java
d0fe76e8e74ac515cacc492fa2c783cf2247ac05 20-Mar-2017 Brad Ebinger <breadley@google.com> Fix Telecom Unit Tests
1) Add/Fix VideoProviderTests
2) Update tests to accommodate ContentProvider changes

Test: Telecom Unit Tests
Change-Id: I8ac65a4686937bfb3954f1d87ca8d1e4ee492644
elecom/tests/BluetoothPhoneServiceTest.java
elecom/tests/BluetoothRouteManagerTest.java
elecom/tests/CallScreeningServiceFilterTest.java
elecom/tests/ComponentContextFixture.java
elecom/tests/CreateConnectionProcessorTest.java
elecom/tests/InCallControllerTests.java
elecom/tests/MissedCallNotifierImplTest.java
elecom/tests/NewOutgoingCallIntentBroadcasterTest.java
elecom/tests/TelecomServiceImplTest.java
elecom/tests/TelecomSystemTest.java
elecom/tests/VideoProviderTest.java
c016cb7465039b60f5d27bcfe50ac0c318418ac6 14-Mar-2017 Jordan Liu <jminjie@google.com> Merge "Remove @Postsubmit annotations"
am: b6618922b8

Change-Id: Id04616a661bcb3ff602a89e1da11bcda7e68a338
b6618922b824d35d4edbe668a45c505e88f9cd7d 14-Mar-2017 Jordan Liu <jminjie@google.com> Merge "Remove @Postsubmit annotations"
0a23cd2c97366ffb5d9b43c4ead5d2b65df62ef7 13-Mar-2017 Hall Liu <hallliu@google.com> Merge "Fix unit tests and coverage" am: 1414f0e89d am: f003ab8a49
am: aa816b1517

Change-Id: I410e707cd9971ead3831738343566ab7e0e79fd0
f003ab8a49e5602f4c957ef130e49a3068e89119 13-Mar-2017 Hall Liu <hallliu@google.com> Merge "Fix unit tests and coverage"
am: 1414f0e89d

Change-Id: I2f64ced00c8bfd0da1733c66f64ec80a2a6d7176
1414f0e89d54a6a2984f0ad78000f0a492fedd49 13-Mar-2017 Hall Liu <hallliu@google.com> Merge "Fix unit tests and coverage"
75c1b1aaae4a22fa0c7dae024b5d09eb3f032c54 11-Mar-2017 Paul Duffin <paulduffin@google.com> Merge "Refactor code incompatible with Mockito 2.7.13" am: d9215e0934 am: a33fdea93d
am: 2afb46ac6a

Change-Id: Ic060a1cb383126ffd225a8028f84adff00453dab
a33fdea93de71c71a7caf550b7bb210696ac9b84 11-Mar-2017 Paul Duffin <paulduffin@google.com> Merge "Refactor code incompatible with Mockito 2.7.13"
am: d9215e0934

Change-Id: I28a0ed182cce29a7c62fcb3ae5e113d776c46251
d9215e09341431a3387eea2dbaf0d5848dd1d89c 11-Mar-2017 Paul Duffin <paulduffin@google.com> Merge "Refactor code incompatible with Mockito 2.7.13"
5b8551ef79dc6e31bd945380097c13ff18b37359 11-Mar-2017 Hall Liu <hallliu@google.com> Fix unit tests and coverage

1. Fix the NPE that happened because hasVideoCall in CallsManager was
not visible to the unit tests
2. Add additional env variables to ensure that emma is in the classpath
when generating code coverage

Test: unit tests
Change-Id: Ibd621267b4af4e20c41458eb674fd120ca0a1859
elecom/tests/CallAudioRouteStateMachineTest.java
4192dd7bd64222384a79494fb92068ebceaf2ffb 11-Jan-2017 Tyler Gunn <tgunn@google.com> Fix issue where the dnd mode remains on after a call terminates.

There is a potential race condition when handling the
ACTION_INTERRUPTION_FILTER_CHANGED broadcast. Since we're setting the
interruption mode ourselves, we also get this broadcast. Most of the time
the broadcast is processed first and everything works. However, it looks
like there are cases where the broadcast receiver processes AFTER we have
updated mAreNotificationSuppressed to true. Thus, when we try to turn
off DND later on we assume that the user had initiated the request to turn
off DND and don't bother to do so.

The fix is to check who initiated the manual DND rule. If its telecom,
we can ignore the broadcast.

Test: Manual
Bug: 33340277
Merged-In: I42b78fd27fe9814c4f8e29afc8937c3b41f51e50
Change-Id: I42b78fd27fe9814c4f8e29afc8937c3b41f51e50
elecom/tests/TelecomSystemTest.java
8a30e647d639ae4a08ecf8dcf4100a29a5da3a3a 09-Mar-2017 Paul Duffin <paulduffin@google.com> Refactor code incompatible with Mockito 2.7.13

Bug: 32912773
Test: make checkbuild
Change-Id: I3ecc0b800875fd614582d4ecd53f9d0a368160ba
elecom/tests/TelecomServiceImplTest.java
0aa88d621b9a614c0a7b833713d7e22359a51320 08-Mar-2017 Hall Liu <hallliu@google.com> Merge "Send proper call state in CLCC in an IMS conference" am: fca12b76bf am: fb0b1a4b61
am: 1894dcf70a

Change-Id: Iaf6ff65ffd53c69bace644c651199ff610dd872e
fb0b1a4b614908addc05635a58749f78aff71c52 08-Mar-2017 Hall Liu <hallliu@google.com> Merge "Send proper call state in CLCC in an IMS conference"
am: fca12b76bf

Change-Id: I14fb5aa1949ea4d76ddaf69292de996966fd0991
fca12b76bf2adb8c3a27419cc20d5557cb1a9c79 08-Mar-2017 Hall Liu <hallliu@google.com> Merge "Send proper call state in CLCC in an IMS conference"
6fccadb9ac133412c216ba5628ebcc5852eeb328 08-Mar-2017 Hall Liu <hallliu@google.com> Send proper call state in CLCC in an IMS conference

When sending the calls that are part of a held IMS conference with CEP
enabled, send the state of the calls as held rather than active.

Change-Id: Icea894670e4c74754c72e0677dcb781904bad878
Fixes: 33819217
Test: manual, added unit test
elecom/tests/BluetoothPhoneServiceTest.java
e4ecf59caf4301c74c3c15befbcc31c1660c603b 07-Mar-2017 Hall Liu <hallliu@google.com> Implement mid-call RTT initiation and teardown
am: b8b5a6976b

Change-Id: Ifa7fb93be70faacf4e7545fcc354cc2e60427ff7
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
elecom/tests/ConnectionServiceFixture.java
elecom/tests/InCallServiceFixture.java
1edf04a086db22869f0858536eb68bbdf5736ece 07-Mar-2017 Tyler Gunn <tgunn@google.com> API review cleanups. am: 115c06ee64 am: aa59fe7535
am: 124b43d958

Change-Id: I9203a225f2c320f370343c5431d586ae87747156
aa59fe75357b55b2c28e08aed74cf3b41d5f4d14 07-Mar-2017 Tyler Gunn <tgunn@google.com> API review cleanups.
am: 115c06ee64

Change-Id: I4141327061a178ab81735427fce28ad3cc26184e
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
elecom/tests/AnalyticsTests.java
elecom/tests/ConnectionServiceFixture.java
elecom/tests/VideoProviderTest.java
b563bb8a7f3c6f879943a4c56201d28cef6e30d6 01-Mar-2017 Jordan Liu <jminjie@google.com> Remove @Postsubmit annotations

Since they have been replaced with @FlakyTest we can remove the
annotation and import.

Change-Id: I3493f9c56c1b978367e7fa26fc6a9018e9c36586
Merged-In: I3493f9c56c1b978367e7fa26fc6a9018e9c36586
Fixes: 35710737
Test: No change to behavior
elecom/tests/CallLogManagerTest.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
elecom/tests/ConnectionServiceFixture.java
elecom/tests/InCallServiceFixture.java
a74a3211608068253b99db2dae7c3282295ac911 01-Mar-2017 Jordan Liu <jminjie@google.com> Remove @Postsubmit annotations

Since they have been replaced with @FlakyTest we can remove the
annotation and import.

Change-Id: I3493f9c56c1b978367e7fa26fc6a9018e9c36586
Fixes: 35710737
Test: No change to behavior
elecom/tests/CallLogManagerTest.java
cabfa813b4866c34e9abc708fceab73167849810 01-Mar-2017 Hall Liu <hallliu@google.com> Merge "Redo DtmfLocalTonePlayer" am: f9592be953 am: 5faa4d15a0
am: 936fd6208f

Change-Id: I5f9f51a46b9ac3ab9d9afedcb84957b541b1fce4
5faa4d15a096a0bc98e308afbda32a1bffdbf3be 01-Mar-2017 Hall Liu <hallliu@google.com> Merge "Redo DtmfLocalTonePlayer"
am: f9592be953

Change-Id: I8db00beccda8ba4500d8e907c984b9c1971f832b
5507671b2ecba6c2e2de7df1a2177776f4a8db46 01-Mar-2017 Hall Liu <hallliu@google.com> Redo DtmfLocalTonePlayer

The system of locks in DtmfLocalTonePlayer and the constant thread
creation/destruction seems to be behind a system ANR bug. This change
refactors the class to rely on a single Handler and associated
HandlerThread that lives for the entire duration of Telecom.

Bug: 34886553
Test: manual and unit
Change-Id: I1d86c644aaecdb6ff93d31e2b9e97792e3e301e0
elecom/tests/DtmfLocalTonePlayerTest.java
8ff1b7cd7f955c3b51610b9d7b4ed03648f0ec59 01-Mar-2017 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Introduce ANSWER_PHONE_CALLS permission"
67da16dda7d90476e5050b44911924468e7fc787 28-Feb-2017 Jordan Liu <jminjie@google.com> Merge "Add @FlakyTest annotation to @Postsubmit tests"
am: 4e068b3436

Change-Id: I7f6eace457e4445fd59fc3f56deead303b6e52b0
4e068b34363901d4c1ee257d5b9eaf3894e5b3ea 28-Feb-2017 Jordan Liu <jminjie@google.com> Merge "Add @FlakyTest annotation to @Postsubmit tests"
c7dbd2c2c6bf5e07d5de389f2512454e577c2153 24-Feb-2017 Jordan Liu <jminjie@google.com> Add @FlakyTest annotation to @Postsubmit tests

@Postsubmit may be used for something else in the future, so replace the
annotation with the more correct and specific annotation @FlakyTest

Bug: 35710737
Test: No change to behavior
Change-Id: I740c2c9e3cfcd78481d4a6f8f179872cd7832beb
Merged-In: I740c2c9e3cfcd78481d4a6f8f179872cd7832beb
elecom/tests/CallLogManagerTest.java
38b0a37439d64639ff2070310cf2276a43e80e2f 28-Feb-2017 Jordan Liu <jminjie@google.com> Merge "Add @FlakyTest annotation to @Postsubmit tests"
310670afcb0ccdfb6f5d0eae8a9c2065246525a5 27-Feb-2017 Tyler Gunn <tgunn@google.com> Merge "Add unit tests for some VideoProfile static methods." am: cfd9d7fd68 am: da80c29ef6
am: 1ab79cb49d

Change-Id: Icba1cc4ec72b0ee2f00359e9c01ed78a79379c04
da80c29ef6e294af7c672a666b5d440ed893506f 27-Feb-2017 Tyler Gunn <tgunn@google.com> Merge "Add unit tests for some VideoProfile static methods."
am: cfd9d7fd68

Change-Id: I4333b696121a0bddd5fc6130f32e8e6316196b62
cfd9d7fd68aa7de47e397b0c05825fb98e23af6f 27-Feb-2017 Tyler Gunn <tgunn@google.com> Merge "Add unit tests for some VideoProfile static methods."
a53fd9cb08e469d8a520ee465a57d16471d5f54a 24-Feb-2017 Jordan Liu <jminjie@google.com> Add @FlakyTest annotation to @Postsubmit tests

@Postsubmit may be used for something else in the future, so replace the
annotation with the more correct and specific annotation @FlakyTest

Bug: 35710737
Test: No change to behavior
Change-Id: I740c2c9e3cfcd78481d4a6f8f179872cd7832beb
elecom/tests/CallLogManagerTest.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
399f7e50b0e2f58f010dc0704e98b67787106097 22-Feb-2017 Hall Liu <hallliu@google.com> Add support for RTT calls (part 1)
am: dd68bc36a3

Change-Id: Ie33cd4a343bd306836f7e23edd33cb2da07f6157
608ab6fb9b9cf2e027d5e3e3667e3ba4bdc09a53 22-Feb-2017 Tyler Gunn <tgunn@google.com> Add unit tests for some VideoProfile static methods.

Adding new standalone unit tests for videoStateToString and isAudioOnly.

Test: These are tests.
Bug: 35645334
Change-Id: Iec3f4859e691158c4603566786c6f8420eb12316
elecom/tests/VideoProfileTest.java
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
elecom/tests/InCallServiceFixture.java
f4fc3e0fc4178c2b7748fb0be0465d66383b1237 15-Feb-2017 Hall Liu <hallliu@google.com> Merge "Accept timeout from apps requesting call disconnect" am: b2d915147c am: f8a3007b8d am: fa72ae2e73
am: 1482b899c5

Change-Id: I95fd852526c18ad0cb9f4c1e84c9b553858f7129
1482b899c5cbdcef64ce0666400ac527f49aced5 15-Feb-2017 Hall Liu <hallliu@google.com> Merge "Accept timeout from apps requesting call disconnect" am: b2d915147c am: f8a3007b8d
am: fa72ae2e73

Change-Id: I3121dcaf973a10043ffcaa0c8251aa21e18d027e
b2d915147cf394da2d3c18a16918d8ee938543ce 15-Feb-2017 Hall Liu <hallliu@google.com> Merge "Accept timeout from apps requesting call disconnect"
63e690cba4c50577c6dcfc98ca1d7e5f1b1fc3c4 15-Feb-2017 Hall Liu <hallliu@google.com> Accept timeout from apps requesting call disconnect

When processing a call disconnected via the ACTION_NEW_OUTGOING_CALL
broadcast, use the timeout specified by the app instead of the default
timeout. This allows apps that may take a bit longer to place a new call
some more time if they need it.

This also changes the default timeout to 500ms and sets a max timeout of
10s for an app-specified timeout.

Bug: 34474757
Test: manual, unit
Change-Id: I1b535f17aefffe423cfbc2cb1d42352e8f4b57f0
elecom/tests/NewOutgoingCallIntentBroadcasterTest.java
fb13b58abd8520c3bd606186c41932963dc8cd3a 15-Feb-2017 Michael Dooley <mdooley@google.com> Merge "Fixing bug with setting the emergency call time."
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
elecom/tests/BasicCallTests.java
3be78d9b29b7f5d7dab50657dd9069cc8e218056 14-Feb-2017 Brad Ebinger <breadley@google.com> Cache setDefaultDialer value to fix CTS failures am: 0bee0ffb6a am: 68a7e3971f am: 7a006b01b8
am: 5fcd5482fa

Change-Id: I74424d55f7bfd7bc188a3a9bb618aaa85ae137aa
5fcd5482fa1a0d827b73614a2f96946278769ff7 14-Feb-2017 Brad Ebinger <breadley@google.com> Cache setDefaultDialer value to fix CTS failures am: 0bee0ffb6a am: 68a7e3971f
am: 7a006b01b8

Change-Id: I32cf6ac8b7620c4da26b7bacb99b55211da6e62e
0bee0ffb6a6d0d23b676c482b74908a132d25974 14-Feb-2017 Brad Ebinger <breadley@google.com> Cache setDefaultDialer value to fix CTS failures

When CTS tests call setDefaultDialer, they expect the changes to be made
synchronously, because they require these permissions later in the test.
The new DefaultDialerCache didn't update the cache synchronously, instead
it would update the cache when the ContentProvider updated, after a short
delay. This caused CTS tests to be flaky or fail.

I also fixed some of the Telecom Unit Test failures that were occuring.

Test: Run CTS tests.
Bug: 34094508
Change-Id: I6324c84a15c4087ff8acccaf8aae93ea586823d3
elecom/tests/BluetoothPhoneServiceTest.java
elecom/tests/CallAudioRouteStateMachineTest.java
elecom/tests/DefaultDialerCacheTest.java
ccba720d2496060078a6551ffd1609c2dc7ce95c 10-Feb-2017 Eugene Susla <eugenesusla@google.com> Introduce ANSWER_PHONE_CALLS permission

See I4c33fcea6b95a30469fa6c0c37090be32b0ad52e

Test: Grant the permission and ensure the call gets answered.
Deny the permission, and ensure that the API call throws an exception.
Bug: 30932767
Change-Id: Idc214408e57e15224b1874b08d80b747ebf95f3b
elecom/tests/TelecomServiceImplTest.java
f35235a05c4a1dc81e2b396461984ef67ed12283 09-Feb-2017 Hall Liu <hallliu@google.com> Merge "Notify BluetoothRouteManager when Bluetooth turned off" am: b29a6fd37e am: ce193c831a am: 37b5906957
am: 71c4e1e30c

Change-Id: I78fcf4cbf707ee6569eb1bb3c7136b56a6270e77
71c4e1e30c44f464516da37c25c2619fd07b87b3 09-Feb-2017 Hall Liu <hallliu@google.com> Merge "Notify BluetoothRouteManager when Bluetooth turned off" am: b29a6fd37e am: ce193c831a
am: 37b5906957

Change-Id: I5e145490d3b6a8c94dfd96c3982a3f7b4dd6da5d
b29a6fd37e437cc59b5bb6e797ce93f48e2a6711 09-Feb-2017 Hall Liu <hallliu@google.com> Merge "Notify BluetoothRouteManager when Bluetooth turned off"
7e14c632e403e6d0a4d4e061a7930248eadc6c4e 08-Feb-2017 Tyler Gunn <tgunn@google.com> When setting camera, ensure calling user is the same as logged in user. am: d8a27d5fc7 am: 05a2ac2df1
am: 90b7645af4

Change-Id: I43936faeba5b56ceba870cf58079ded4d66a24be
d8a27d5fc787f8839d3185f2b9137a8c2f1d68a0 01-Dec-2016 Tyler Gunn <tgunn@google.com> When setting camera, ensure calling user is the same as logged in user.

When the VideoProvider API is used to change the camera, in addition to
performing permission checks on the caller, adding logic to ensure that
the calling UserHandle is the currently logged in User (this is to ensure
that a background app can't access the camera).

Test: Unit, manual
Bug: 32747443
Change-Id: I0856f991c520dd1f5fa0146919941c052cba8a01
elecom/tests/VideoProviderTest.java
d4970c192024f327717601e6131e9f3c85b53fed 08-Feb-2017 Hall Liu <hallliu@google.com> Notify BluetoothRouteManager when Bluetooth turned off

When BluetoothDeviceManager gets notified that the
BluetoothHeadsetService has disconnected, notify BluetoothRouteManager
that all devices have disconnected.

Change-Id: Ie7f4e7398602f90e6669c8b58d085f84354844ca
Test: manual, added unit test
Fix: 34547045
elecom/tests/BluetoothDeviceManagerTest.java
978c3b889486d4c465554557100991f1e9963ca8 07-Feb-2017 Brad Ebinger <breadley@google.com> Merge "Perform camera permission and app ops check when setting camera for VT." am: e0a6ed95d8 am: 787eced198
am: 26bae92d68

Change-Id: I22fbb10001d292dee7f25854402679cf71619157
e0a6ed95d81c9ec29b8ac7096fc43c62451833f7 07-Feb-2017 Brad Ebinger <breadley@google.com> Merge "Perform camera permission and app ops check when setting camera for VT."
d020b7ccd11cf53db66a9e2aae5a861c6a750c39 07-Feb-2017 Tyler Gunn <tgunn@google.com> resolve merge conflicts of 77f7b2c92 to nyc-mr1-dev-plus-aosp
am: f7a93647b0

Change-Id: Iea64b890e376a893862cf43e9c08429b4210776f
f1dcfdb99763740e9fd1ab036f6c06a312f197ad 09-Nov-2016 Tyler Gunn <tgunn@google.com> Perform camera permission and app ops check when setting camera for VT.

When a calling InCallService attempts to use the setCamera API on the
VideoCall, Telecom will perform a permission check to ensure that the
caller has the correct camera permission and passes the app-ops camera
check. A failure to set the camera will result in a callback via the
call session event API.

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

Test: Unit tests added, plus manual tests.
Bug: 32747443
Change-Id: Ib96114502fe459b0429a87c5d13640b68ae6a2f7
elecom/tests/AnalyticsTests.java
elecom/tests/ComponentContextFixture.java
elecom/tests/MockVideoProvider.java
elecom/tests/VideoProviderTest.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
elecom/tests/ConnectionServiceFixture.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
elecom/tests/ConnectionServiceFixture.java
15844b7446cef52f07c2aa960a47d30cae0d05cf 26-Jan-2017 Hall Liu <hallliu@google.com> Fix default phone account handle deserialization am: ded880cfb3 am: a92dd2a373 am: c9cf7c8f5d
am: 2e70d746bd

Change-Id: I73ae7284afc1f8228538c018de55bc79927b02bc
2e70d746bdd969075574bbf561e9d9109f23eeed 26-Jan-2017 Hall Liu <hallliu@google.com> Fix default phone account handle deserialization am: ded880cfb3 am: a92dd2a373
am: c9cf7c8f5d

Change-Id: Ib282a754c10cbd28d9f9c36bdcc328ccb285f218
ded880cfb3f6bc2e49465b3d2d5f9fa639b045f5 21-Jan-2017 Hall Liu <hallliu@google.com> Fix default phone account handle deserialization

If group id is empty in a default phone account handle, the deserializer
will return null, which means that the user's choice of default outgoing
phone account is not preserved when rebooting. This fixes the
deserialization so that the default phone account handle is initialized
with a empty group id as written instead of not being read from disk at
all.

Change-Id: I7de7b37c22ab4eae8696c7896740adeb35c69f20
Fix: 33538428
Test: manual + added unit test
elecom/tests/PhoneAccountRegistrarTest.java
392e052cd88617b50b82eced6d5c3651e4a0029c 18-Jan-2017 Tamas Berghammer <tberghammer@google.com> DO NOT MERGE: Revert "Update package names to work with the proto3 compiler"
am: 8449ca41a0

Change-Id: I32e0144d7a0d6bcb1f346516cd799083d602faf5
8449ca41a012b4a659c8aef1d8dd41a6790adf27 18-Jan-2017 Tamas Berghammer <tberghammer@google.com> DO NOT MERGE: Revert "Update package names to work with the proto3 compiler"

This reverts commit 318e0507b41d4ba2985ca058b8b7f6c98e0b8be9.

Change-Id: I43770c4786a2e9a2146646536aeeba3d1e20a23c
elecom/tests/AnalyticsTests.java
dd203e6c05ed58ae7fa42e45e701a73cde6adf3c 18-Jan-2017 Tamas Berghammer <tberghammer@google.com> Update package names to work with the proto3 compiler
am: 318e0507b4

Change-Id: Icd694a0c89ceba10685a17737ef541d5fae9ba1f
f68cfd92bafb49f848f36c92ba9c8b65390e4620 13-Jan-2017 Tyler Gunn <tgunn@google.com> resolve merge conflicts of 49056668f to nyc-mr2-dev-plus-aosp

Merged-In: I42b78fd27fe9814c4f8e29afc8937c3b41f51e50
Test: Build
Change-Id: I9132a85010117f1742778bcccb2d2ccde7b0785e
ae51d3c8411b7c2e59113992ec65093a80f17495 11-Jan-2017 Tyler Gunn <tgunn@google.com> Fix issue where the dnd mode remains on after a call terminates.

There is a potential race condition when handling the
ACTION_INTERRUPTION_FILTER_CHANGED broadcast. Since we're setting the
interruption mode ourselves, we also get this broadcast. Most of the time
the broadcast is processed first and everything works. However, it looks
like there are cases where the broadcast receiver processes AFTER we have
updated mAreNotificationSuppressed to true. Thus, when we try to turn
off DND later on we assume that the user had initiated the request to turn
off DND and don't bother to do so.

The fix is to check who initiated the manual DND rule. If its telecom,
we can ignore the broadcast.

Test: Manual
Bug: 33340277
Change-Id: I42b78fd27fe9814c4f8e29afc8937c3b41f51e50
elecom/tests/TelecomSystemTest.java
49056668fa783371610d5d5295a5049dc5cba2db 11-Jan-2017 Tyler Gunn <tgunn@google.com> Fix issue where the dnd mode remains on after a call terminates.

There is a potential race condition when handling the
ACTION_INTERRUPTION_FILTER_CHANGED broadcast. Since we're setting the
interruption mode ourselves, we also get this broadcast. Most of the time
the broadcast is processed first and everything works. However, it looks
like there are cases where the broadcast receiver processes AFTER we have
updated mAreNotificationSuppressed to true. Thus, when we try to turn
off DND later on we assume that the user had initiated the request to turn
off DND and don't bother to do so.

The fix is to check who initiated the manual DND rule. If its telecom,
we can ignore the broadcast.

Bug: 33340277
Change-Id: I42b78fd27fe9814c4f8e29afc8937c3b41f51e50
elecom/tests/TelecomSystemTest.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
elecom/tests/BasicCallTests.java
elecom/tests/InCallControllerTests.java
318e0507b41d4ba2985ca058b8b7f6c98e0b8be9 22-Sep-2016 Tamas Berghammer <tberghammer@google.com> Update package names to work with the proto3 compiler

Bug: b/28974522
Change-Id: I2bcb72e0c4688bdc8c690c05ed05f9ff7a649d13
(cherry picked from commit 83e882836bea5ae11f21dd619dd9ae3a2e0c12e3)
elecom/tests/AnalyticsTests.java
3c80500208fb14f121720120e5ec8f3b7572fb19 07-Jan-2017 Hall Liu <hallliu@google.com> Add cap on number of calls stored in analytics
am: 492c8180d5

Change-Id: Ifb1fdbdc3bfbc4ecc7b4a61ed320eaa2931970c2
492c8180d52d03c96926d8e41ca0a746a6ac2770 06-Jan-2017 Hall Liu <hallliu@google.com> Add cap on number of calls stored in analytics

Cap the number of calls stored in analytics in order to avoid chewing up
excessive memory on devices that are used to make >100 calls per day.

Test: unit test added + manual testing
Bug: 33965537
Change-Id: Ibb5508b4e79f5dde03caa44abe1da02116ae81fc
elecom/tests/AnalyticsTests.java
ec89a665f43a6764bd170d0cf65bafd6ed5bb00e 06-Jan-2017 Hall Liu <hallliu@google.com> Add cap on number of calls stored in analytics am: d93b9ececc am: 27a76bca29 am: 2fbb880aff
am: 09bc48df10

Change-Id: I63b804e4b49ce01afc457d02982857786ac9aa03
09bc48df10f82157c90b8b7a4953869ca5464144 06-Jan-2017 Hall Liu <hallliu@google.com> Add cap on number of calls stored in analytics am: d93b9ececc am: 27a76bca29
am: 2fbb880aff

Change-Id: I27b66f2a44bb95facbabb7a261b260f080a42f17
d93b9ececca0fb8a2cc63858ce59012eb6fc17e9 06-Jan-2017 Hall Liu <hallliu@google.com> Add cap on number of calls stored in analytics

Cap the number of calls stored in analytics in order to avoid chewing up
excessive memory on devices that are used to make >100 calls per day.

Test: unit test added + manual testing
Bug: 33965537
Change-Id: Ibb5508b4e79f5dde03caa44abe1da02116ae81fc
elecom/tests/AnalyticsTests.java
14e947bd6aacd8b7abd438a66a76841a33cb5cf7 05-Jan-2017 Hall Liu <hallliu@google.com> Replace BluetoothManager (multi-hfp part 3) am: 486cb197d4 am: d1b47792e1 am: ac935c47e1
am: b794cfc1f6

Change-Id: Ic9f9110f752a9ca240a94757220647b6762003ee
b794cfc1f6a787000767b84b359e02391f0cf5f2 05-Jan-2017 Hall Liu <hallliu@google.com> Replace BluetoothManager (multi-hfp part 3) am: 486cb197d4 am: d1b47792e1
am: ac935c47e1

Change-Id: Icf4e8edb690a5dcee607891166d57f40eeb833c3
486cb197d4426a0f740b1c73ba3acdc76b3d67d3 22-Oct-2016 Hall Liu <hallliu@google.com> Replace BluetoothManager (multi-hfp part 3)

Replace BluetoothManager in the rest of Telecom with the functionality
of BluetoothRouteManager. Currently, the Bluetooth stack still
supports only one connected HFP device, so the new multi-device handling
has not yet been tested/verified except through unit tests.

Test: Manual testing
Change-Id: I19f3ab36386a67f797790394a5b5297786af8e77
elecom/tests/CallAudioModeStateMachineTest.java
elecom/tests/CallAudioRouteStateMachineTest.java
elecom/tests/TelecomSystemTest.java
e1decffcb0b5dc4889349b041b8ae4e62457e5e2 20-Dec-2016 Hall Liu <hallliu@google.com> Use DefaultDialerCache in Telecom (part 2)
am: b4b1907049

Change-Id: I2b678524350daecdb4e054617225f1c302afb121
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
elecom/tests/InCallControllerTests.java
b4b190704925898789467a94f041723976558c9b 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
elecom/tests/CallScreeningServiceFilterTest.java
elecom/tests/DefaultDialerCacheTest.java
elecom/tests/InCallControllerTests.java
elecom/tests/MissedCallNotifierImplTest.java
elecom/tests/PhoneAccountRegistrarTest.java
elecom/tests/TelecomServiceImplTest.java
elecom/tests/TelecomSystemTest.java
a670a25f42bf7052a35206b5e33881e2da9e52d4 16-Dec-2016 Hall Liu <hallliu@google.com> Cache default dialer in Telecom (part 1) am: eacd67b9bc am: 1cb4a32226
am: d4d3c3162f

Change-Id: I60adab9846815daabc02732e26fff8a3fd9e7936
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
elecom/tests/CallScreeningServiceFilterTest.java
elecom/tests/DefaultDialerCacheTest.java
elecom/tests/InCallControllerTests.java
elecom/tests/MissedCallNotifierImplTest.java
elecom/tests/PhoneAccountRegistrarTest.java
elecom/tests/TelecomServiceImplTest.java
elecom/tests/TelecomSystemTest.java
eacd67b9bc4d6152fdeddc69a8fc823d2dc0fffc 02-Dec-2016 Hall Liu <hallliu@google.com> Cache default dialer in Telecom (part 1)

In order to avoid a flurry of recursive calls into Telecom on every
Telecom API call, cache the default dialer in the Telecom process and
only update it when either the relevant setting changes or when the
current default dialer has been uninstalled/disabled.

Part 1 of change. Adds the default dialer cache class, but does not
integrate it into the rest of Telecom.

Test: added unit tests
Change-Id: I22225ed1f1b516dc98e80fa4f82c5b72ed289ba0
Merged-In: Ie81e8a052b2463bef5df4c60c443c73db880780b
elecom/tests/ComponentContextFixture.java
elecom/tests/DefaultDialerCacheTest.java
cc2932570e3a9d3272ab8d9a87fb27f1cf59d55e 07-Dec-2016 Hall Liu <hallliu@google.com> Fix tests for CallAudioRouteStateMachine

Fix tests that were broken, add some more for untested new
functionality.

Test: unit tests
Change-Id: I688592bf68187b2dda7bc1f02009e3fb360ea0ab
Fix: 33252757
(cherry picked from commit cff959e60f914754961fde4bcca1a97cd363d1ad)
elecom/tests/CallAudioRouteStateMachineTest.java
ffe558c570ae5736d47fded2caccc7da145e7d92 01-Dec-2016 Christine Hallstrom <hallstrom@google.com> Handle audio route restrictions set on calls

When a call restricts audio routes, it will move the audio route to a
supported route if available. The supported routes are determined initially
and re-evaluated when the call becomes the foreground call.

This is a cherry-pick of abandoned ag/1520954

Bug: 32958838
Change-Id: Ie30847c995839516507df0c70178a591c39f6cdd
elecom/tests/ConnectionServiceFixture.java
47a17224dfc73ac19a91952bfbeab74b1ca438b1 13-Dec-2016 Brad Ebinger <breadley@google.com> Adds EventManager and SessionManager callbacks for Analytics am: 2eebf1d780 am: 26c471999d
am: 7a50406981

Change-Id: I6bb386aa1fb418be44d9087e2efd00bf725d177b
7a504069817de9dc6da57480cd0c992ef1d9cac9 13-Dec-2016 Brad Ebinger <breadley@google.com> Adds EventManager and SessionManager callbacks for Analytics am: 2eebf1d780
am: 26c471999d

Change-Id: I495336f61742819257844485aabf7ff2f546d8ff
2eebf1d7808a0bf31473d39bbc9a5e3ae2ec3549 18-Oct-2016 Brad Ebinger <breadley@google.com> Adds EventManager and SessionManager callbacks for Analytics

Implements the callbacks in EventManager and SessionManager to pipe the
completion time of call operations into Analytics.

Test: Manual Testing and running existing Telecom Unit Tests
Bug: 26571395
Change-Id: I14712b45ca4cf0c51e44da7eb5b4758b4eb68aaa
elecom/tests/TelecomSystemTest.java
37585d6e3ec68b9f83e565888d53ef586a0867f3 09-Dec-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Use updated IContentProvider interface."
a0176b4c22e23ac7141942a99d2d99edf9b1793e 09-Dec-2016 Hall Liu <hallliu@google.com> Fix tests for CallAudioRouteStateMachine am: d5d98841d7
am: c1a1746f46

Change-Id: If0dd5311c5bcca2ca5f73d9da8acd4d47a87c52c
ed633e3c2fc0ecacc12ff3c68cfeda294272aefd 09-Dec-2016 Hall Liu <hallliu@google.com> Fix tests for CallAudioRouteStateMachine
am: d5d98841d7

Change-Id: I737d757f3b215988475d4bcf46879587117c5ee8
c1a1746f46bb57b76f251c82b4e0fae1b685ff5f 09-Dec-2016 Hall Liu <hallliu@google.com> Fix tests for CallAudioRouteStateMachine
am: d5d98841d7

Change-Id: I47c077604645199934ae198497e4bece4dec9c33
27a43afd2a863d8da71afbce090c6de2de406ee4 08-Dec-2016 Hall Liu <hallliu@google.com> Merge "Use DefaultDialerCache in Telecom (part 2)"
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
elecom/tests/CallScreeningServiceFilterTest.java
elecom/tests/DefaultDialerCacheTest.java
elecom/tests/InCallControllerTests.java
elecom/tests/MissedCallNotifierImplTest.java
elecom/tests/PhoneAccountRegistrarTest.java
elecom/tests/TelecomServiceImplTest.java
elecom/tests/TelecomSystemTest.java
079a50399eaacee17d269ac51472e35c52181c03 05-Dec-2016 Steve McKay <smckay@google.com> Use updated IContentProvider interface.

Test: compiles and passes when run locally.

Bug: 30927484
Change-Id: I8f5fcc62d8eafe3d1089d02dfe47ba9c94090dbe
elecom/tests/MissedCallNotifierImplTest.java
f1a3321026348adb373dd8f760f5608ec3bc5762 08-Dec-2016 Hall Liu <hallliu@google.com> Merge "Cache default dialer in Telecom (part 1)"
d5d98841d71dc33255503b04504e805b4f55b1e7 07-Dec-2016 Hall Liu <hallliu@google.com> Fix tests for CallAudioRouteStateMachine

Fix tests that were broken, add some more for untested new
functionality.

Test: unit tests
Change-Id: I688592bf68187b2dda7bc1f02009e3fb360ea0ab
Fix: 33252757
(cherry picked from commit cff959e60f914754961fde4bcca1a97cd363d1ad)
elecom/tests/CallAudioRouteStateMachineTest.java
cff959e60f914754961fde4bcca1a97cd363d1ad 07-Dec-2016 Hall Liu <hallliu@google.com> Fix tests for CallAudioRouteStateMachine

Fix tests that were broken, add some more for untested new
functionality.

Test: unit tests
Change-Id: I688592bf68187b2dda7bc1f02009e3fb360ea0ab
Fix: 33252757
elecom/tests/CallAudioRouteStateMachineTest.java
9156bae91bb0a5c0af9c5ae8f848f1f009e5ba0c 02-Dec-2016 Hall Liu <hallliu@google.com> Cache default dialer in Telecom (part 1)

In order to avoid a flurry of recursive calls into Telecom on every
Telecom API call, cache the default dialer in the Telecom process and
only update it when either the relevant setting changes or when the
current default dialer has been uninstalled/disabled.

Part 1 of change. Adds the default dialer cache class, but does not
integrate it into the rest of Telecom.

Test: added unit tests
Change-Id: Ie81e8a052b2463bef5df4c60c443c73db880780b
elecom/tests/ComponentContextFixture.java
elecom/tests/DefaultDialerCacheTest.java
e1d300c40e9213d3c0c3bf1ed650fc4b03f93dcb 02-Dec-2016 Tyler Gunn <tgunn@google.com> Merge "When setting camera, ensure calling user is the same as logged in user."
2e8d18d455b73976f3b584b88348b2f70960be53 02-Dec-2016 Christine Hallstrom <hallstrom@google.com> Handle audio route restrictions set on calls am: 96a0be6761 am: dabb50d928
am: e311f36bd5

Change-Id: Ie3c2ac2c4dc08bc0f2d975772039d03ebd455d9e
e311f36bd5e8bfb6435729fd88e2a76022f118c7 02-Dec-2016 Christine Hallstrom <hallstrom@google.com> Handle audio route restrictions set on calls am: 96a0be6761
am: dabb50d928

Change-Id: I2c91892eb3cab6876bb96793e469932505883fb9
3547b73b647676db16a0ee0a65e8b3e325edd594 02-Dec-2016 Christine Hallstrom <hallstrom@google.com> Handle audio route restrictions set on calls
am: 96a0be6761

Change-Id: Iad3a61cca0ed1acd4b72c22dcf42f47fae39721e
dabb50d9286b191f7e666e88c3411532fc4a76ab 02-Dec-2016 Christine Hallstrom <hallstrom@google.com> Handle audio route restrictions set on calls
am: 96a0be6761

Change-Id: I4fbf529c540da928c9902b97fd0c16642884bc4a
96a0be67619944378d95cdedc64b004aadb341e2 01-Dec-2016 Christine Hallstrom <hallstrom@google.com> Handle audio route restrictions set on calls

When a call restricts audio routes, it will move the audio route to a
supported route if available. The supported routes are determined initially
and re-evaluated when the call becomes the foreground call.

This is a cherry-pick of abandoned ag/1520954

Bug: 32958838
Change-Id: Ie30847c995839516507df0c70178a591c39f6cdd
elecom/tests/ConnectionServiceFixture.java
1bf0e6be00af0ca5731a52f0727c6d9a2f8b6944 01-Dec-2016 Tyler Gunn <tgunn@google.com> When setting camera, ensure calling user is the same as logged in user.

When the VideoProvider API is used to change the camera, in addition to
performing permission checks on the caller, adding logic to ensure that
the calling UserHandle is the currently logged in User (this is to ensure
that a background app can't access the camera).

Test: Unit, manual
Bug: 32747443
Change-Id: I0856f991c520dd1f5fa0146919941c052cba8a01
elecom/tests/VideoProviderTest.java
a7e74c70baaf148731c916abbdcad770842d487d 28-Nov-2016 Hall Liu <hallliu@google.com> Add BluetoothRouteManager (multi-hfp part 2) am: ea8d15df3c am: fd9ae118b4 am: d7f389a1af
am: b3502377ad

Change-Id: Ied2530933a289a8c54539091268c50ff872f42e2
b3502377ad0d18b4712f5023c2663e2884488b47 28-Nov-2016 Hall Liu <hallliu@google.com> Add BluetoothRouteManager (multi-hfp part 2) am: ea8d15df3c am: fd9ae118b4
am: d7f389a1af

Change-Id: I83c9728f42f26dbd3180961207b76d9da0dcead5
fd9ae118b46e181df3d8cc02b623b216c04895c6 28-Nov-2016 Hall Liu <hallliu@google.com> Add BluetoothRouteManager (multi-hfp part 2)
am: ea8d15df3c

Change-Id: I5d322c7c773c1b410ed880e65d51d8f6ae6333ff
ea8d15df3c4d563274a7f7755e8c55d42bc9e805 31-Oct-2016 Hall Liu <hallliu@google.com> Add BluetoothRouteManager (multi-hfp part 2)

This adds BluetoothRouteManager, a state machine class that manages
which HFP device is/should be active during a call. It handles:
* requests from the rest of Telecom to turn Bluetooth on/off
* connecting/disconnecting from individual HFP devices
* fallback in the case of disconnections or connection failures
* informing Telecom of Bluetooth device connections and disconnections.
See design document for details.

Test: added unit tests
Change-Id: I4deea4376e735ef3975544efaadef1c3045030ca
elecom/tests/BluetoothRouteManagerTest.java
d35c649090b964bba37425cbd91d45d7232b3ab8 14-Nov-2016 Tyler Gunn <tgunn@google.com> Auto un-mute incoming call when answered. am: 8e154db7e4
am: 7366faf2cc

Change-Id: I1ecd429e2c094c810377a3747e66c5d47d614bb6
7366faf2cc09042fbdb4166b6c788174dd8cf883 14-Nov-2016 Tyler Gunn <tgunn@google.com> Auto un-mute incoming call when answered.
am: 8e154db7e4

Change-Id: I806ad2f88340fa6c741229f267505dd4f1c5ddde
80c98eb5fed6febe69a51d719c798c8bbcf47b67 11-Nov-2016 Tyler Gunn <tgunn@google.com> Merge "Perform camera permission and app ops check when setting camera for VT."
8e154db7e4afde41612e486a7efcf2be82ea2167 10-Nov-2016 Tyler Gunn <tgunn@google.com> Auto un-mute incoming call when answered.

When a new incoming call is added to the CallAudioManager, automatically
unmute the audio. This was a regression from pre-N behavior.

Bug: 32265571
Change-Id: I26bb3e4cf1f2030265c29bf31e482bec18e9c27b
elecom/tests/CallAudioManagerTest.java
a0a43d51041c9efbe04f7c65236c9e90c3e79346 09-Nov-2016 Tyler Gunn <tgunn@google.com> Perform camera permission and app ops check when setting camera for VT.

When a calling InCallService attempts to use the setCamera API on the
VideoCall, Telecom will perform a permission check to ensure that the
caller has the correct camera permission and passes the app-ops camera
check. A failure to set the camera will result in a callback via the
call session event API.

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

Test: Unit tests added, plus manual tests.
Bug: 32747443
Change-Id: Ib96114502fe459b0429a87c5d13640b68ae6a2f7
elecom/tests/AnalyticsTests.java
elecom/tests/ComponentContextFixture.java
elecom/tests/MockVideoProvider.java
elecom/tests/VideoProviderTest.java
83e882836bea5ae11f21dd619dd9ae3a2e0c12e3 22-Sep-2016 Tamas Berghammer <tberghammer@google.com> Update package names to work with the proto3 compiler

Bug: b/28974522
Change-Id: I2bcb72e0c4688bdc8c690c05ed05f9ff7a649d13
elecom/tests/AnalyticsTests.java
c0745a637101f59cfa850d29956cf884218725c0 07-Nov-2016 Hall Liu <hallliu@google.com> Merge "Add BluetoothDeviceManager (multi-hfp part 1)" am: fbe4cadff4 am: da57c4a699 am: e92b69f76a
am: 4dcb8b7d10

Change-Id: I272e5c5fb671346d9a1690cecf1b022752b47b93
da57c4a699f4faa1c6f3d9736e7086aaca04ddcb 07-Nov-2016 Hall Liu <hallliu@google.com> Merge "Add BluetoothDeviceManager (multi-hfp part 1)"
am: fbe4cadff4

Change-Id: Ia0ba17d93b2678c236a9efdd8c3635d2d66884b5
fbe4cadff4a0b7fac9fc173517f78d55b6b0069a 07-Nov-2016 Hall Liu <hallliu@google.com> Merge "Add BluetoothDeviceManager (multi-hfp part 1)"
8502d6e3ceed32869d753d86193c4a0b2ebdbb25 31-Oct-2016 Hall Liu <hallliu@google.com> Add BluetoothDeviceManager (multi-hfp part 1)

Adds BluetoothDeviceManager, a class to manage connected HFP devices for
Telecom. This class separates out part of the current functionality of
BluetoothManager and generalizes it to support multiple connected HFP
devices. See design doc for details.

Test: added unit tests
Change-Id: I03ca6e3827aa80b18e64a9c736097ca8dd4e01b8
elecom/tests/BluetoothDeviceManagerTest.java
6acdeda101f7d5ced52c233498b01e45b8bcf7cf 02-Nov-2016 Brad Ebinger <breadley@google.com> Merge "Modify ConnectionServiceAdapter to include Session"
a9a6e54e682689716f7e5f2916362c1fe378ba47 02-Nov-2016 Brad Ebinger <breadley@google.com> Modify ConnectionServiceAdapter to include Session am: 65912759cd am: ff79c137ec
am: c804b2f25e

Change-Id: I45a9a7c15f250763e3e640e7a3827f755c0df18a
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
elecom/tests/ConnectionServiceFixture.java
f4cf7f3d6bc27e576c4e1a008732e92d5552ef9d 31-Oct-2016 Hall Liu <hallliu@google.com> Merge "Add ringing state for bluetooth audio route"
9151b078722245ba0b852c806cfbfd02afb523f8 16-Aug-2016 Hall Liu <hallliu@google.com> Add ringing state for bluetooth audio route

Previously, Telecom was setting up SCO audio at the same time as the
RING command was being sent to the BT headset. This turns out to have
been a violation of the HFP spec, and ag/1199401 started enforcing it,
which caused calls routed over bluetooth to mishandle audio routing.

This change adds a ringing state to the Bluetooth route in CARSM so that
we can be in a bluetooth route with audio focus but without having set
up SCO audio.

Change-Id: I8aabb983ddd4b546d52b10f78929773b823bfbd0
Fix: 30800730
elecom/tests/CallAudioRouteStateMachineTest.java
81ecd6980b5a688f86171c99f57439ef29927e65 28-Oct-2016 Brad Ebinger <breadley@google.com> Modify AIDLs to include Session.Info am: b78b0234c6 am: ad4de70ceb
am: 9e23ee108a

Change-Id: I3d820d2d2adb6d6c8c43cb56d00925bee5655723
270b8ff493abdf628c7f704a2bcc93c39e0c6458 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
elecom/tests/ConnectionServiceFixture.java
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
elecom/tests/BasicCallTests.java
elecom/tests/ConnectionServiceFixture.java
elecom/tests/TelecomSystemTest.java
d7b70ca78c1ba41d5c0a931a6d55f60c19301394 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
elecom/tests/BasicCallTests.java
elecom/tests/ConnectionServiceFixture.java
elecom/tests/TelecomSystemTest.java
a04db92d34ca1e8136fecd37dcdfde3e5d299f65 27-Oct-2016 Brad Ebinger <breadley@google.com> resolve merge conflicts of d1b3669 to stage-aosp-master am: 5b2880ad91 am: a4faeeef90
am: d0ad1052e9

Change-Id: Ib1c96d12a5d5139f9bad804f48bb9742e28da234
5b2880ad91162feb778f3b7c96b5e1c76f382086 27-Oct-2016 Brad Ebinger <breadley@google.com> resolve merge conflicts of d1b3669 to stage-aosp-master

Change-Id: I5c771d7edf789ef8c70c9c0eb86243d8bc4a7549
d1b36695f77189f008e2de82b4391e5e49048c18 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.

Test: Telecom Unit Tests Run
Bug: 28799824
Change-Id: I7e23497ab671712bc8d3cc9542537ae1c4829afc
elecom/tests/BasicCallTests.java
elecom/tests/ComponentContextFixture.java
elecom/tests/ConnectionServiceFixture.java
elecom/tests/InCallControllerTests.java
elecom/tests/TelecomSystemTest.java
de5e34bfad636fe8c748cd881ee0859cd0c02d14 26-Oct-2016 Brad Ebinger <breadley@google.com> Extend SessionManager tests to include External Sessions am: ba049ae754 am: 6b270d41ca am: 01583c1b3f
am: 519484c856

Change-Id: I986085aaab6c84814b325b9f4654d29346de66fd
6b270d41caf79ba0feaac7b5f1b56fde51af1639 26-Oct-2016 Brad Ebinger <breadley@google.com> Extend SessionManager tests to include External Sessions
am: ba049ae754

Change-Id: I0d1181f95971445b375fc32c9e91797468e47b38
80de421b0ebc10e93dce7f3975ab5b0451c93ea8 25-Oct-2016 Hall Liu <hallliu@google.com> resolve merge conflicts of 0d5cae0 to stage-aosp-master am: 822fe2a1af am: d47ee81711
am: 9ce32cd3c9

Change-Id: I4c2bedff6ebf0452a3613dbec9ba20abe1b319a4
822fe2a1afd0ee83ff48a21ae093bafcc77b1d2f 25-Oct-2016 Hall Liu <hallliu@google.com> resolve merge conflicts of 0d5cae0 to stage-aosp-master

Change-Id: I4787475841dac6a1c9ea841b48b664378d65a146
ba049ae75486276fe6c8dd609ffb4ad58674148d 22-Oct-2016 Brad Ebinger <breadley@google.com> Extend SessionManager tests to include External Sessions

Test: Telecom Unit Tests and new Tests
Bug: 26571395
Change-Id: I1a3a5d67213e53f15bf2455a24060817da6ee3fd
elecom/tests/SessionManagerTest.java
0d5cae00ebfff7cf043a19ce8f833dde1d7e1282 01-Sep-2016 Hall Liu <hallliu@google.com> Fix broken and flaky unit tests

Fix unit tests to make them pass consistently in order to enable
presubmit testing.

Test: unit test fixes
Bug: 31041734
Change-Id: I1eba7302ae740cb2a0284003d999fd3274941e38
elecom/tests/BasicCallTests.java
elecom/tests/CallAudioRouteStateMachineTest.java
elecom/tests/CallLogManagerTest.java
elecom/tests/TelecomServiceImplTest.java
elecom/tests/TelecomSystemTest.java
elecom/tests/VideoCallTests.java
elecom/tests/VideoProviderTest.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
c37ddf1546a8270c8293bbd520b3fc225cd72181 18-Oct-2016 Brad Ebinger <breadley@google.com> Adds EventManager and SessionManager callbacks for Analytics

Implements the callbacks in EventManager and SessionManager to pipe the
completion time of call operations into Analytics.

Test: Manual Testing and running existing Telecom Unit Tests
Bug: 26571395
Change-Id: I14712b45ca4cf0c51e44da7eb5b4758b4eb68aaa
elecom/tests/TelecomSystemTest.java
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
elecom/tests/BasicCallTests.java
elecom/tests/CallerInfoAsyncQueryFactoryFixture.java
elecom/tests/CallerInfoLookupHelperTest.java
elecom/tests/ComponentContextFixture.java
elecom/tests/ConnectionServiceFixture.java
elecom/tests/LogTest.java
elecom/tests/MockitoHelper.java
elecom/tests/PhoneAccountRegistrarTest.java
elecom/tests/TelecomTestCase.java
elecom/tests/VideoProviderTest.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
elecom/tests/AnalyticsTests.java
elecom/tests/BasicCallTests.java
elecom/tests/CallerInfoAsyncQueryFactoryFixture.java
elecom/tests/CallerInfoLookupHelperTest.java
elecom/tests/ComponentContextFixture.java
elecom/tests/ConnectionServiceFixture.java
elecom/tests/LogTest.java
elecom/tests/MockitoHelper.java
elecom/tests/PhoneAccountRegistrarTest.java
elecom/tests/TelecomSystemTest.java
elecom/tests/TelecomTestCase.java
elecom/tests/VideoCallTests.java
elecom/tests/VideoProviderTest.java
1e6f94f9dea07c7a5c303f30bfba8256548d0464 18-Oct-2016 Brad Ebinger <breadley@google.com> Adds tests for SessionManager and EventManager am: 0d2c1e61fc am: df69bcad27
am: a22965ab71

Change-Id: I462f07fc515423a8f8c7cfeb9a4e1525ef09469b
df69bcad2792b1fd4d04b45919c880e320e44157 18-Oct-2016 Brad Ebinger <breadley@google.com> Adds tests for SessionManager and EventManager
am: 0d2c1e61fc

Change-Id: Ic351aa5859e059c4628d8543b7d8c4071e68c86d
0d2c1e61fcc77e4a46586e329b683946b8048400 14-Oct-2016 Brad Ebinger <breadley@google.com> Adds tests for SessionManager and EventManager

Test: Unit tests are added.
Bug: 26571395
Change-Id: Ifd17d2c286ac4a907a64ad03653420252886a8d6
elecom/tests/EventManagerTest.java
elecom/tests/LogTest.java
elecom/tests/SessionManagerTest.java
14295772c3c055e4b9b25b8b8e9c39a2b78f9a18 11-Oct-2016 Hall Liu <hallliu@google.com> resolve merge conflicts of 253b129 to nyc-mr1-dev-plus-aosp

Change-Id: I9d37a418982377eb1b94596998e22467d6c86402
8755e29fd54403b404b4940d3dccebf83a8acbcf 22-Sep-2016 Hall Liu <hallliu@google.com> Refactor and fix MissedCallNotifier

This change affects the behavior of the MissedCallNotifier on system
startup. Previously, MissedCallNotifierImpl created a new Call object
and used it to pull in contacts-related data. This created excessive
dependencies for MissedCallNotifierImpl, so it has been changed to use
CallerInfoLookupHelper.

Additionally, the at-boot notification has been broken for some time,
and this was due to the calls/contacts db not being ready when
TelecomSystem was initialized. This change also deferrs the missed call
lookup to when we receive ACTION_BOOT_COMPLETE.

Test: Added unit tests, tested manually on device
Change-Id: I10fe1c78e24484ece6b87fa986e725b00c753d39
Merged-In: Ibf8ec41d8d18b5ed7943a9520242f15bf546bda7
Fix: 30796667
elecom/tests/BasicCallTests.java
elecom/tests/CallLogManagerTest.java
elecom/tests/ContactsAsyncHelperTest.java
elecom/tests/MissedCallNotifierImplTest.java
elecom/tests/TelecomSystemTest.java
cbd125d9aef42f6c76b595018dc0158b03ed05ca 07-Oct-2016 Hall Liu <hallliu@google.com> Merge "Refactor and fix MissedCallNotifier"
3037ac6f171b6a3627494bb10042ab7adb34366a 22-Sep-2016 Hall Liu <hallliu@google.com> Refactor and fix MissedCallNotifier

This change affects the behavior of the MissedCallNotifier on system
startup. Previously, MissedCallNotifierImpl created a new Call object
and used it to pull in contacts-related data. This created excessive
dependencies for MissedCallNotifierImpl, so it has been changed to use
CallerInfoLookupHelper.

Additionally, the at-boot notification has been broken for some time,
and this was due to the calls/contacts db not being ready when
TelecomSystem was initialized. This change also deferrs the missed call
lookup to when we receive ACTION_BOOT_COMPLETE.

Test: Added unit tests, tested manually on device
Change-Id: Ibf8ec41d8d18b5ed7943a9520242f15bf546bda7
Fix: 30796667
elecom/tests/BasicCallTests.java
elecom/tests/CallLogManagerTest.java
elecom/tests/ContactsAsyncHelperTest.java
elecom/tests/LogTest.java
elecom/tests/MissedCallNotifierImplTest.java
elecom/tests/TelecomSystemTest.java
ddec5892dbb532e79fd839f34db43243739f92e8 28-Sep-2016 Tyler Gunn <tgunn@google.com> Assume video calls supported until user chooses phone account.

When an outgoing Call has no target phone account, initially assume video
calling is supported by the call. Once a target phone account is set,
ensure the video state of the outgoing call is updated based on whether
video calling is supported by the target phone account.

Bug: 31094340
Change-Id: Iee1bc542b63d9be6d2f76206fdc9b87674db271c
elecom/tests/BasicCallTests.java
elecom/tests/TelecomSystemTest.java
f2373e177b6e122b84dd1a22320629d0280de1c6 12-Sep-2016 Shigeru Murai <sharp_android_SA@list.sharp.co.jp> Fixed an issue in VoicemailCallFilter process timeouts.

Fixed an issue in VoicemailCallFilter process always timeouts
when a call incoming from anonymous number.
Test: Added two unit tests and did manual testing
Bug: 31353454
Bug: 29415740

Change-Id: I159745c25371996bb22108568b3b42ec37d358c9
elecom/tests/CallerInfoLookupHelperTest.java
elecom/tests/DirectToVoicemailCallFilterTest.java
d610bb315dbb2cebde2a7bcc63b05732c9df1c26 19-Sep-2016 Tyler Gunn <tgunn@google.com> Prevent notification vibration when the user is on the earpiece.
am: eaaf074d6b

Change-Id: I5c2e60268ecdf717782fac271163207dc0c670ce
ae07c43779a82f7ebf9a02933dc959be96286d3b 19-Sep-2016 Tyler Gunn <tgunn@google.com> Merge "Prevent notification vibration when the user is on the earpiece." into nyc-mr1-dev
eaaf074d6b8b0b16fb922d8d511d6e8b979bfe0d 16-Sep-2016 Tyler Gunn <tgunn@google.com> Prevent notification vibration when the user is on the earpiece.

When the earpiece route is activated, if the user has not already enabled
a notification interruption filter, we will set it to alarms-only. This
ensures that notifications don't cause the phone to vibrate while in
earpiece mode.

If the user changes the interruption filter during the call we will keep
their new chosen filter when the earpiece route is disabled.

This notification filtering only takes place for the earpiece route.

Bug: 29962221
Change-Id: Ia332a988f10427a2a0f8315af9f31d854836db9f
elecom/tests/CallAudioRouteStateMachineTest.java
elecom/tests/TelecomSystemTest.java
05e990a35c57a61c9dc86b48c5a74a1b6408cc3b 14-Sep-2016 Hall Liu <hallliu@google.com> Don't acquire audio focus if ringtone will not play
am: 6a5995e113

Change-Id: Ib1ea5e6e674bcc2d0ae6011a15383a847bbfa5b5
1a80eccb928f724e2b40f7593e7b7f5e45016e6c 14-Sep-2016 Hall Liu <hallliu@google.com> Merge "Don't acquire audio focus if ringtone will not play" into nyc-mr1-dev
d7fe686253f2135a948cafc776aa25db645ec27e 10-Sep-2016 Hall Liu <hallliu@google.com> Add connection properties to analytics

Adds a record of which android.telecom.Connection properties were set on
a call during its lifetime. Also adds a test to verify that this behaves
correctly.

Change-Id: I1a5bc61228cbd676b8de218d503b30e8a76bfce2
Fix: 31395995
elecom/tests/AnalyticsTests.java
elecom/tests/ConnectionServiceFixture.java
6a5995e1132bc9e3026673b93de42c46069a2d15 09-Sep-2016 Hall Liu <hallliu@google.com> Don't acquire audio focus if ringtone will not play

When the system volume is at some level that prevents an audible
ringtone from playing, don't grab audio focus so as to not interrupt
music that is playing.

Fix: 31319655

Change-Id: Ia2e4bc4b2ca8fe88e893cfd307d33e94de2b33ba
elecom/tests/CallAudioModeStateMachineTest.java
3f54d497235aebd98d5b8e8e0e52da92f838d657 07-Sep-2016 Hall Liu <hallliu@google.com> Fix more broken tests

Fix Analytics null pointer issue that was introduced by the
InCallService analytics change.

Mark flaky tests from CallLogManager so that they don't get run in
presubmit

Bug: 31041734
Change-Id: I974eaffaa938e37cf183bb551756b7bd2a9e7af1
elecom/tests/CallLogManagerTest.java
elecom/tests/InCallControllerTests.java
609992b6d222e54a74cc7e6af06173090103a28a 01-Sep-2016 Hall Liu <hallliu@google.com> Fix broken and flaky unit tests

Fix unit tests to make them pass consistently in order to enable
presubmit testing.

Bug: 31041734
Change-Id: I1eba7302ae740cb2a0284003d999fd3274941e38
elecom/tests/AnalyticsTests.java
elecom/tests/BasicCallTests.java
elecom/tests/CallAudioRouteStateMachineTest.java
elecom/tests/CallLogManagerTest.java
elecom/tests/TelecomServiceImplTest.java
elecom/tests/TelecomSystemTest.java
elecom/tests/VideoCallTests.java
elecom/tests/VideoProviderTest.java
7f11cdd18c94a047b6743690858594ac52be59d1 29-Aug-2016 Hall Liu <hallliu@google.com> Merge "Add ringing state for bluetooth audio route" into nyc-mr1-dev
b7be9e20d3607600a6a599a9293371c76c19684b 29-Aug-2016 Hall Liu <hallliu@google.com> Merge "Fix broken test and in-call controller bug" into nyc-mr1-dev
24d7474ab444aba0462f5ad02079d50dce242c78 26-Aug-2016 Hall Liu <hallliu@google.com> Merge "Add dumpsys to Telecom analytics output" into nyc-mr1-dev
e271f2268db782a2c72e115bf67044be3baa1416 16-Aug-2016 Hall Liu <hallliu@google.com> Add ringing state for bluetooth audio route

Previously, Telecom was setting up SCO audio at the same time as the
RING command was being sent to the BT headset. This turns out to have
been a violation of the HFP spec, and ag/1199401 started enforcing it,
which caused calls routed over bluetooth to mishandle audio routing.

This change adds a ringing state to the Bluetooth route in CARSM so that
we can be in a bluetooth route with audio focus but without having set
up SCO audio.

Change-Id: I8aabb983ddd4b546d52b10f78929773b823bfbd0
Fix: 30800730
elecom/tests/CallAudioRouteStateMachineTest.java
2f4f0a038dbf9f6372ac8c9b1535f8cc8d0f8256 09-Aug-2016 Hall Liu <hallliu@google.com> Add dumpsys to Telecom analytics output

Output a Base64-encoded proto when Telecom's dumpsys is called with the
"analytics" argument, with an option to clear analytics at the same
time. This is in preparation for moving Connectivity Metrics to GmsCore.

Also fixed a bug in video call analytics and adds a test for it.

Bug: 30600318

Change-Id: I567d769123d78b7e5e2b9e8865fccf36f4f30fae
elecom/tests/AnalyticsTests.java
21991a7e6452a15e4f02a645b8333d5376d0a8e9 28-Jul-2016 Tyler Gunn <tgunn@google.com> Log calls which were rejected in call log appropriately.

The case for DisconnectCause.REJECTED was not being handled in the call
logging code. This is important when logging calls locally disconnected
(multiendpoint), and also for calls rejected locally.

Dialer already shows these appropriately in the call log as
"declined call".

Bug: 30474601
Bug: 28813047
Change-Id: Ieb68eed5806658ee975d90c7388e454ae86a0431
elecom/tests/CallLogManagerTest.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
elecom/tests/InCallControllerTests.java
5b7e64dfb819b640fbe3bd38509a823e8345fdc0 18-Jul-2016 Hall Liu <hallliu@google.com> Merge "Fix flaky tests that use startAndMakeActiveOutgoingCall" into nyc-mr1-dev
6ab66c31dbd8373d777b0c680e47e5ef451d9d9c 16-Jul-2016 Brad Ebinger <breadley@google.com> Fix NPE in Call.setHandle

Fix a NPE in Call.setHandle that was occuring in MissedCallNotifierImpl,
when switching to second user.

Change-Id: I9d3fc394683f3000711fa05c09ea737e2f6c4553
Fix: 30170188
elecom/tests/MissedCallNotifierImplTest.java
elecom/tests/TelecomSystemTest.java
b3ce510a9392230d003e2b740affab476c78f74f 14-Jul-2016 Hall Liu <hallliu@google.com> Fix flaky tests that use startAndMakeActiveOutgoingCall

When startActiveOutgoingCall runs, it calls into Telecom to begin the
call setup process, which posts two messages to the handler in
android.telecom.ConnectionService on the main thread:
MSG_ADD_CONNECTION_SERVICE_ADAPTER and MSG_CREATE_CONNECTION, in that
order.

On the first run through, mAreAccountsInitialized in ConnectionService
will be set to false, so instead of calling straight into
handleCreateConnectionComplete in Telecom, the execution of
MSG_CREATE_CONNECTION will instead put it in a list of pending tasks.

This list of pending tasks eventually gets run by a runnable that is
posted to the handler during the execution of
MSG_ADD_CONNECTION_SERVICE_ADAPTER.

Meanwhile, the test continues to run, and executes waitForHandlerAction
in outgoingCallCreateConnectionComplete. If waitForHandlerAction posts
its latch to the looper before MSG_ADD_CONNECITON_SERVICE_ADAPTER
executes, the test will continue before the runnable that the execution
of MSG_ADD_CONNECTION_SERVICE_ADAPTER posts to the handler runs.

This is an undesirable outcome, as we may observe the call being set to
active from startAndMakeActiveOutgoingCall first, then being set back to
dialing from CSW.hCCC. This was causing the flakiness observed.

To fix this, another waitForHandlerAction was added immediately after
the first one. We know that MSG_ADD_CONNECTION_SERVICE_ADAPTER has
already executed after the first waitForHandlerAction returns, which
means that the runnable that it posted is already in the queue, so if we
post another latch, we can be sure that the runnable which calls
CSW.hCCC has run by the time the second waitForHandlerAction completes.

Change-Id: Iedd3c60b39a8bb185f1f2b0d0e064059f888312d
elecom/tests/TelecomSystemTest.java
b5776701117dad69e3db903af38bf3e8553dc31f 12-Jul-2016 Brad Ebinger <breadley@google.com> Merge "Add Group Id tracking in PhoneAccountRegistrar" into nyc-mr1-dev
0c87b3c31f4ce9e47a07e40012cf669a763a1575 11-Jun-2016 Brad Ebinger <breadley@google.com> Add Group Id tracking in PhoneAccountRegistrar

Adds Group Ids to the DefaultPhoneAccountHandle in Telecom in order to
keep track of the group that the currently registered PhoneAccounts
belong to. If registerPhoneAccount is called with a new PhoneAccount
that has the same group Id as a currently registered PhoneAccount, then
remove the registered PhoneAccount and register the new PhoneAccount
with the old PhoneAccount's defaults and enabled status. This allows us
to transparently change PhoneAccounts and keep the calling account
defaults the same.

Bug: 28173788
Change-Id: Ida44e348903d2ba6b8b8f8cc64a5b13cff68c1c2
elecom/tests/PhoneAccountRegistrarTest.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
elecom/tests/BasicCallTests.java
elecom/tests/ComponentContextFixture.java
elecom/tests/ConnectionServiceFixture.java
elecom/tests/InCallControllerTests.java
elecom/tests/TelecomSystemTest.java
c9cf54407720d32fdb1b69e0254657a6061b9f56 29-Jun-2016 Hall Liu <hallliu@google.com> Add lock to NewOutgoingCallBroadcastIntentReceiver

Synchronize on main Telecom lock when processing the returning ordered
broadcast.

Change-Id: Ic63efc9fb6d2e17bf1ca40c118594531054db985
Fixes: 29424036
elecom/tests/NewOutgoingCallIntentBroadcasterTest.java
5ce8343b7920c4f5855da99a86a508121e667d14 15-Jun-2016 Hall Liu <hallliu@google.com> Merge "Add call events to analytics" into nyc-mr1-dev
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
elecom/tests/AnalyticsTests.java
elecom/tests/BasicCallTests.java
elecom/tests/LogTest.java
9eb7d9a76d5b00256262feeff127b85bac917c76 14-Jun-2016 Tyler Gunn <tgunn@google.com> Merge "Filter external calls when InCallService doesn't support them." into nyc-mr1-dev
a773b8d754aba8147f0b68d47ee459d58abd8f78 13-Jun-2016 Brad Ebinger <breadley@google.com> Merge "Propogate EVENT_CALL_MERGE_FAILED Connection Event" 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
elecom/tests/InCallControllerTests.java
elecom/tests/VideoCallTests.java
elecom/tests/VideoProviderTest.java
56d8c4709f47c172d6d2d40c6022c176724d5945 08-Jun-2016 Brad Ebinger <breadley@google.com> Merge "Propogates the CDMA Voice Privacy Property to a Call" into nyc-mr1-dev
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
elecom/tests/BasicCallTests.java
elecom/tests/ConnectionServiceFixture.java
e6143f57856972ba21b5c6fb711c93ac2e477cc7 26-May-2016 Sanket Agarwal <sanketa@google.com> Do not process call intent if call already disconnected

In cases of very quick call and hangup (delay of 0.1 sec using
automation) the call itself will go from NEW -> CONNECTING ->
DISCONNECTED but the CallIntentProcessor will still make the outgoing
call since it does not check the current call state for it has been
disconnected.

Bug: b/28969591
Change-Id: I1de45ff342db3e2552824c17f9f73f9c3a2579d9
elecom/tests/NewOutgoingCallIntentBroadcasterTest.java
84771f8f87f5f582bf848b621eed8c6cd99d41b0 19-May-2016 Brad Ebinger <breadley@google.com> Propogates the CDMA Voice Privacy Property to a Call

Allows the CDMA enhanced voice privacy connection property to be
propogated up as a Call Property.

Bug: 26931679
Change-Id: I2206d1e8091c39c8ceddb820f1c70671ed46a008
elecom/tests/BasicCallTests.java
elecom/tests/ConnectionServiceFixture.java
elecom/tests/TelecomSystemTest.java
0125eab617f07007c327811cf3b55e16419739f2 27-Apr-2016 Hall Liu <hallliu@google.com> Merge "Modify CallAudioManager's audio speedup functionality" into nyc-dev
e792b33c2aa95d97db74e4c0b1e7ea6896cf99ee 19-Apr-2016 Hall Liu <hallliu@google.com> Modify CallAudioManager's audio speedup functionality

For certain calls, CallAudioManager will put the audio stream into the
in-call state before the connection service has acknowledged the call as
active. This was previously done by hardcoding a state transition in
CallAudioModeStateMachine. However, this had the potential to leave a
call stuck in CallAudioManager if the connection service subsequently
disconnected the call without setting to active after the user has
requested to answer the call.

This change solves this problem by changing the call state transition
code to go through all of its internal call tracking lists and remove the
call instead of only looking at the one corresponding to the state that
call was in.

Change-Id: Ica4a182fdd210a17ca58402062c8358d193d90c8
Fix: 28114043
elecom/tests/CallAudioManagerTest.java
6d4b66df3d918e3f17263ff40ca3ba0ec5a46719 02-Apr-2016 Hall Liu <hallliu@google.com> Incorporate parallel call blocking checks

Modify CallsManager to use the IncomingCallFilter class introduced in a
previous CL.
Modifies AsyncBlockCheckTask and CallScreening to implement CallFilter
and removes the logic in those classes that used to execute the filters
in series.
Added tests for block-check and call screening.
Added logging events to track how long each of the call filters take.

Change-Id: Iecd60463fe9ac6dbbd85d57ef6ae2bfccb94d967
Fix: 26883888
elecom/tests/AsyncBlockCheckFilterTest.java
elecom/tests/BasicCallTests.java
elecom/tests/CallScreeningServiceFilterTest.java
elecom/tests/IncomingCallFilterTest.java
elecom/tests/TelecomSystemTest.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
elecom/tests/IncomingCallFilterTest.java
elecom/tests/TelecomTestCase.java
elecom/tests/VideoCallTests.java
982c0bd962bc7ed208d0e73380e90b0fdcdf01dc 14-Apr-2016 Ta-wei Yen <twyen@google.com> Persist missed call to call log before sending missed call notification

For dialer to show detailed information the call should exist in the call
log when the intent is received.

+ CallLogManager#logCall() now take a callback to be executed after the
log is written. The default callback for a missed call is to show
the missed call notification.
- MissedCallNotifierImpl no longer listen to onCallStateChanged().

Change-Id: I94080a4a95f214a10d8e479b40ca7c407d06e0f2
Fixes:27276201
elecom/tests/CallLogManagerTest.java
a153e6660396636ee715b173164a0e1e6333a3ec 13-Apr-2016 Brad Ebinger <breadley@google.com> Merge "Format the via_number before writing it to the calllog." into nyc-dev
c6ab2cca08ff427174b790a0ed34ebb19b1ce9cd 08-Apr-2016 Brad Ebinger <breadley@google.com> Format the via_number before writing it to the calllog.

Format the via_number before writing it to the call log so that the
Dialer doesn't have to format the number every time it wants to use the
via number.

Change-Id: I103b9639a321bbd73e74f4dfda3e2e6814af8fcf
Fix: 28052897
elecom/tests/CallLogManagerTest.java
elecom/tests/ComponentContextFixture.java
67d34fa0524d10d5de190592c1f5f88c4dc31743 03-Mar-2016 Hall Liu <hallliu@google.com> Add classes/tests for parallel call-filtering lookup

Adds the IncomingCallFilter class, which serves as a controller for the
call-filtering operations. Also adds DirectToVoicemailCallFilter, which
is an implementation of the CallFilter interface defined in
IncomingCallFilter.

No changes are made to existing functionality. Those will be coming in
a future CL.

Bug: 26883888
Change-Id: Idf6662a9e71de60a87d1fc6b6b148fe9a2b12a8e
elecom/tests/DirectToVoicemailCallFilterTest.java
elecom/tests/IncomingCallFilterTest.java
92b576ac4677107fc50fb2a11eac0dc93b47fe8e 07-Apr-2016 Brad Ebinger <breadley@google.com> Merge "Mock out AsyncRingtonePlayer during Testing" into nyc-dev
7ade5e2c3f7a849e41de3b81051c12a8fcd6ea83 06-Apr-2016 Brad Ebinger <breadley@google.com> Mock out AsyncRingtonePlayer during Testing

AsyncRingtonePlayer wasn't being correctly Mocked in the
TelecomSystemTests. Since the Async threads to continue to
run after the tests were completed, The AsyncRingtonePlayer log messages
were interfering with LogTest's Log capturing.

Fix: 28044674
Change-Id: Ic58a0091a969f8eb36b777b859ba08202810221a
elecom/tests/TelecomSystemTest.java
465982730ff480ff3037cbc22c9dcae005346971 05-Apr-2016 Hall Liu <hallliu@google.com> Use global telecom lock for CallerInfoLookupHelper

Previous implementation of a separate lock in CallerInfoLookupHelper
caused deadlocks because completed queries re-entering Telecom would
grab the CILH lock before the telecom lock, while outgoing queries would
grab the telecom lock before the CILH lock.

Change-Id: I50d94e7025d8b4b865edc5cbd73960c3703b2944
Fixes: 28007333
elecom/tests/CallerInfoLookupHelperTest.java
1e0340bd2b11c735ca8e6db3e74b27c24ba1dfa8 01-Apr-2016 Hall Liu <hallliu@google.com> Merge "Move CallerInfo lookup into a utility class" into nyc-dev
5b70c1c2ef08f06bacd4156b266e8ce5b3ccdc07 04-Mar-2016 Hall Liu <hallliu@google.com> Move CallerInfo lookup into a utility class

In preparation for parallelizing the three call-blocking lookup
operations, move the caller info/contact photo lookup out of the call
class.

Bug: 26883888

Change-Id: I9e00b21a3c5ce5c725fa91ec229f104e7c65c81e
elecom/tests/CallerInfoLookupHelperTest.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
elecom/tests/InCallControllerTests.java
elecom/tests/TelecomServiceImplTest.java
f36f5149b8de765b9ba1dfff3226d8e00f7272eb 28-Mar-2016 Brad Ebinger <breadley@google.com> Merge "Record Call's Via Number in Call Extras to CallLog" into nyc-dev
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
elecom/tests/BasicCallTests.java
elecom/tests/ConnectionServiceFixture.java
baf52ba1520ef528b65329c813389b8183150f3d 22-Mar-2016 Brad Ebinger <breadley@google.com> Record Call's Via Number in Call Extras to CallLog

Add a column to the CallLog Backup that records the secondary line
number that an incoming call has been received on. More specifically, a
call is assumed to be considered a "VIA number" if the call's incoming
line number does not match the number registered with the SIM card.

BUG: 25594198

Change-Id: I1bdc949fcee836945eec905b6a0afeec52b4ca29
elecom/tests/CallLogManagerTest.java
d9d8fb6508b58b55d480b1206d2e9e98a83ee019 24-Mar-2016 Tyler Gunn <tgunn@google.com> Merge "Support for enhanced call/connection extras." into nyc-dev
529ddbec3fc14e028b92e967adc01ecaad1c939a 24-Mar-2016 Hall Liu <hallliu@google.com> Merge "Make flaky test less flaky" into nyc-dev
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
elecom/tests/BasicCallTests.java
elecom/tests/CallExtrasTest.java
elecom/tests/ConnectionServiceFixture.java
elecom/tests/InCallServiceFixture.java
elecom/tests/TelecomSystemTest.java
805c45364858415de1d43802470c66c95c00ebaf 17-Mar-2016 Hall Liu <hallliu@google.com> Make flaky test less flaky

Check for correct actions on InCallServiceFixtureY before disconnecting
the call.

Change-Id: Idcdb3322d8335eb575a5cc6bba15b1c90828c846
elecom/tests/BasicCallTests.java
d293a182c92f0e7d90505093d23a7d0e2cfc8b9f 17-Mar-2016 Brad Ebinger <breadley@google.com> Merge "Add SELECT_PHONE_ACCOUNT test for outgoing calls" into nyc-dev
c301b5128cf40a1fa5a9c0839d405afaa5747112 17-Mar-2016 Brad Ebinger <breadley@google.com> Add SELECT_PHONE_ACCOUNT test for outgoing calls

Verifies the outgoing call flow works when a PhoneAccount needs to be
selected.

Bug: 26928627
Change-Id: Idd751b00b64ce36d63f3d665676afcfb794d2820
elecom/tests/BasicCallTests.java
elecom/tests/TelecomSystemTest.java
2678c621aef740e662114cf608388d0e4be4f2d7 16-Mar-2016 Hall Liu <hallliu@google.com> Merge "Fix tests breaking when bluetooth is on" into nyc-dev
a3799ae6aafba8ccd6448a7c4337acd3460b49f2 16-Mar-2016 Hall Liu <hallliu@google.com> Add even more test annotations

Bug: 26853070
Change-Id: I8c6a6cdf2164afe88cc1cca1b5ea402c304994b3
elecom/tests/BasicCallTests.java
elecom/tests/BluetoothManagerTest.java
elecom/tests/CallAudioModeStateMachineTest.java
elecom/tests/CreateConnectionProcessorTest.java
elecom/tests/InCallControllerTests.java
elecom/tests/InCallWakeLockControllerTest.java
elecom/tests/LogTest.java
elecom/tests/MissedCallNotifierImplTest.java
elecom/tests/PhoneAccountRegistrarTest.java
elecom/tests/ProximitySensorManagerTest.java
elecom/tests/SystemStateProviderTest.java
0e76dab12fcf35de5926564c7c4d8ae7a7d98c14 16-Mar-2016 Santos Cordon <santoscordon@google.com> Merge "More test annotations." into nyc-dev
7948f5b5aeae8e508ee4310595669c484c786dd7 16-Mar-2016 Hall Liu <hallliu@google.com> Fix tests breaking when bluetooth is on

BluetoothPhoneServiceImpl now uses a BluetoothAdapterProxy so that it is
now isolated from system bluetooth.

Bug: 27686250
Change-Id: If27c9ba642b163ecde68ae8956bc76523a552d31
elecom/tests/BluetoothPhoneServiceTest.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
elecom/tests/BasicCallTests.java
elecom/tests/ConnectionServiceFixture.java
elecom/tests/InCallServiceFixture.java
482e43fccde5618164b88331e35d2a206e8e3072 07-Mar-2016 Hall Liu <hallliu@google.com> Merge "Remove stale session cleanups during tests" into nyc-dev
c6e42ef0465fe01b35bb3aa94fbcbc081e3b45ed 20-Feb-2016 Abhijith Shastry <ashastry@google.com> Add unit tests for send to voicemail, and number blocking.

BUG: 26682702

Change-Id: Id5cd03d48ac5022e15039e420ea5daeb91f0c623
elecom/tests/BasicCallTests.java
elecom/tests/CallLogManagerTest.java
elecom/tests/CallerInfoAsyncQueryFactoryFixture.java
elecom/tests/ComponentContextFixture.java
elecom/tests/ConnectionServiceFixture.java
elecom/tests/TelecomSystemTest.java
df8ccad186afedd451ba726561103cba87e2e9bd 05-Mar-2016 Hall Liu <hallliu@google.com> Remove stale session cleanups during tests

Fixes spurious mockito WrongTypeOfReturnValue errors during unit tests.
The errors were most likely due to a stale instance of Context sticking
around in the static Log class across test cases. This change makes Log
no longer try to access its instance of Context during testing.

Bug: 27484228
Change-Id: I2985e7c29722b27d4e456fe58557deded68f9086
elecom/tests/TelecomTestCase.java
cf80e1fbec61a343b403827cb1d21e267ec9dda7 01-Mar-2016 Santos Cordon <santoscordon@google.com> Merge "Add *AsUser() calls where appropriate for multi-user support." into nyc-dev
e74af084ac087f6af0f16ecbed5e74ce7183d254 11-Feb-2016 Hall Liu <hallliu@google.com> Add way for external bluetooth audio changes to notify CARSM

update onBluetoothStateChange and BluetoothManager to be more aware of
bluetooth changes coming from external sources. Also add tests for
BluetoothManager.

Bug: 27133607
Change-Id: I10790a9cfad329574c8e9dd4144127020eea65e4
elecom/tests/BluetoothManagerTest.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
elecom/tests/InCallControllerTests.java
fda4f50637acc432b1591cf0548b72b25533b9c0 26-Feb-2016 Hall Liu <hallliu@google.com> Merge "Prevent BT reconnection from switching route" into nyc-dev
4f296ba3f42713fd138dbe86b97500f43f5d2d27 18-Feb-2016 Hall Liu <hallliu@google.com> Prevent BT reconnection from switching route

After a user has switched away from bluetooth explicitly, don't go back
to bluetooth if a device is disconnected then reconnected.

Bug: 22507913
Change-Id: I26f407255f8106bb216a397091a08d7c4f08ff26
elecom/tests/CallAudioRouteStateMachineTest.java
c34d474f16c40a0a5595cefbe455e4fd34d535d8 24-Feb-2016 Brad Ebinger <breadley@google.com> Fix SecurityException in Tests

Update tests to register a PhoneAccount with the PhoneAccountRegistrar
before trying to add a new incoming/unknown call.

Bug: 27301311
Change-Id: Ib4214603d9aa892988b8adecc36ee747e2d0853c
elecom/tests/TelecomServiceImplTest.java
54ef1a4fd7a283dfdc1f2851dde12b8597a830e4 18-Feb-2016 Brad Ebinger <breadley@google.com> Change GC method in LogTest

A recent change in the System.gc() method made the GC test in LogTest
fail because Sessions were not being cleaned up correctly. The internal
Runtime.getRuntime().gc() method is now used to ensure the trigger of GC
for the purposes of the test.

Bug: 27230915
Change-Id: I2ff23c82343ebd65412c8a7e97a9866d2ee67a82
elecom/tests/LogTest.java
508b280a3e2090fcc49fe5953047d4122ce9ecbe 18-Feb-2016 Hall Liu <hallliu@google.com> Stub out getInitiatingUser for mCall

Bug: 27229587
Change-Id: Ie40c693d996b9bc76607226b62ae03b7827905b5
elecom/tests/NewOutgoingCallIntentBroadcasterTest.java
a35090657297f5f0f20c2bb31cdf1eb7d6da6419 12-Feb-2016 Santos Cordon <santoscordon@google.com> More test annotations.

Change-Id: I00c6c3853b675920f10439599d7ccab1bcde5f46
elecom/tests/BluetoothPhoneServiceTest.java
elecom/tests/CallAudioRouteStateMachineTest.java
8a11c6e94b8ea2d7cfd19d97c7dd6509634c6a9f 08-Feb-2016 Hall Liu <hallliu@google.com> Merge "Add test annotations for APCT" into nyc-dev
84b6c878ba75be8d4fee99af8da31a55ab50b99c 03-Feb-2016 Hall Liu <hallliu@google.com> Add test annotations for APCT

Change-Id: Ieadeb236eee778cce2b1da55274ec7e5a1969ea3
elecom/tests/CallLogManagerTest.java
elecom/tests/ContactsAsyncHelperTest.java
elecom/tests/NewOutgoingCallIntentBroadcasterTest.java
elecom/tests/TelecomServiceImplTest.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
elecom/tests/LogTest.java
b7853c0b716f9cc9ae174d1ca4efaa118ef1740e 03-Feb-2016 Abhijith Shastry <ashastry@google.com> Fix Telecom unit tests for incoming calls.

1. Respond to CallerInfo lookups instead of always waiting for it to timeout (which adds 500ms to every test)
After this change, telecom unit tests take ~10s less to complete from around ~84s.

2. Do not explictly set handleCreateConnectionSuccess: ConnectionService already does this.
Explicitly setting results in multiple caller info lookups and unexpected behavior.

Change-Id: Ic0abaff6cd8751911733bbc764ac89530b3eb55b
elecom/tests/ConnectionServiceFixture.java
elecom/tests/TelecomSystemTest.java
fbed016fbd4cdc744f306b13fb3a2d9042d6bd5a 15-Jan-2016 Hall Liu <hallliu@google.com> Add tests for CallAudioModeStateMachine

Adds tests and fixes a few bugs that were discovered in the course of
testing. Also add annotations for call audio tests.

Change-Id: I512afcd84fac54afd8fdddabbf732aebdf62df02
elecom/tests/CallAudioModeStateMachineTest.java
elecom/tests/CallAudioRouteStateMachineTest.java
elecom/tests/StateMachineTestBase.java
2ce9f71e8541b6ce7b89bbf7318881b6ea29a573 28-Jan-2016 Santos Cordon <santoscordon@google.com> Annotate tests in telecom.

Bug: 26853070
Change-Id: I3bb942a668767e1886a2611494c8a57ea1ff1a28
elecom/tests/BasicCallTests.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
elecom/tests/VideoCallTests.java
4475002ecdda92136db1b45d3c5ba0a30932199d 27-Jan-2016 Sailesh Nepal <sail@google.com> Merge "Allow dialer to play incoming call ringtone"
cf0c8e1169abdd9800996d6f79a79832c850415e 27-Jan-2016 Tony Mak <tonymak@google.com> Merge "Fix phone account is disabled everytime after reboot"
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
elecom/tests/InCallServiceFixture.java
ce68874475498dcb69a543559177d69ac6dae215 26-Jan-2016 Shishir Agrawal <shishir@google.com> Unhiding MSIM APIs.

1. Unhide MSIM APIs in TelephonyManager that already have non-MSIM equivalent
APIs public.
2. Make MSIM API naming consistent (overloaded, no suffix).
3. Unhide APIs in SubscriptionManager that are necessary for MSIM.

Bug: 26772894
Change-Id: I7a1826255370e9a8c7c62516eb49725dce377c8c
elecom/tests/TelecomServiceImplTest.java
54df728296ba42c46a9445271985ae1b74def5cc 26-Jan-2016 Tony Mak <tonymak@google.com> Fix phone account is disabled everytime after reboot

There is a bug in the code that deserializes phone account from xml,
all phone accounts without extra are disabled after reboot!

The tag next to "extra", which is "enabled", is swallowed in the
readBundle function and hence the value is ignored.

Also update test case to cover this case.

BUG=26792269

Change-Id: I2387c7aed93b79d636ede2c9da4256b3272e86b0
elecom/tests/PhoneAccountRegistrarTest.java
a60d6982ed4b16ad15a5db3ff4597416fbffc153 25-Jan-2016 Sailesh Nepal <sail@google.com> Merge "Fix missed call notification tests"
5600f0bd96227d685c13321619d07414585be620 25-Jan-2016 Hall Liu <hallliu@google.com> Merge "Fix CallLogManager tests"
c9bb95616469ae02cc43a57ea827b45261d49e26 23-Jan-2016 Hall Liu <hallliu@google.com> Fix CallLogManager tests

Fix test failures resulting from the shadow call log change

Bug: 26746699
Change-Id: I934eb8827f26d514f4bab4417f01e418e2a5f51e
elecom/tests/CallLogManagerTest.java
elecom/tests/ComponentContextFixture.java
4d34c5bc9ba32cb03c34fdb4186e084e85af79cf 23-Jan-2016 Sailesh Nepal <sail@google.com> Fix missed call notification tests

My changes to missed call notifications (ag/850080) caused tests to
fail due to TelecomManager not being found. This CL fixes those tests.

This CL also changes queryBroadcastReceivers to specify the given user
handle.

BUG: 22857261
Change-Id: I6f0a5a38b017b8fa32016fa5921d909c0fa61114
elecom/tests/MissedCallNotifierImplTest.java
elecom/tests/PhoneAccountRegistrarTest.java
e091ab90e37845cf4771051a6d2ce0ebadee4fe7 19-Dec-2015 Hall Liu <hallliu@google.com> CallAudioManager refactoring

Separates the handling of audio mode and audio focus into a state
machine and brings ringing, tone generation, and ringbacks under the
control of CallAudioManager.

(cherry picked from commit fc2270137059e855756769752899d613e27d12a8)

Change-Id: Idd765550c907150117b8b66f76e88868ae3785c2
elecom/tests/CallAudioRouteStateMachineTest.java
elecom/tests/RingerTest.java
elecom/tests/TelecomSystemTest.java
elecom/tests/VideoProviderTest.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
elecom/tests/SystemStateProviderTest.java
88cda8452124d43c145d54a97477dc5cf8a32a58 21-Jan-2016 Brad Ebinger <breadley@google.com> Revert "Support car-mode UI in telecom."

This reverts commit d3182912911d167e4a5a8d379cef11c619d18d36.

Change-Id: I48da1122846b18c03bec486ee2bf977f721723a2
elecom/tests/SystemStateProviderTest.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
elecom/tests/SystemStateProviderTest.java
0f55f047d0c862e825a2f14e52bfc343eaf2d39a 15-Jan-2016 Hall Liu <hallliu@google.com> Merge "Add support for earpiece-less devices in audio routing"
72d04b26de0d5f3552be55ec6d0023c6aebaec77 15-Jan-2016 Hall Liu <hallliu@google.com> Merge "Add methods to dump analytics through TelecomManager."
ecd74a56dbce2d15ff46ad3e64a16dfe8b6c734f 13-Jan-2016 Hall Liu <hallliu@google.com> Add methods to dump analytics through TelecomManager.

Implements dumpCallAnalytics in TelecomServiceImpl to export the
contents of Analytics so that it can be uploaded.

Change-Id: Ic2355187967bf5192c803ff8584b1b4ed5cdf1da
elecom/tests/BasicCallTests.java
a993094840386163e9c2aa65a05e14b49d122318 15-Jan-2016 Tony Mak <tonymak@google.com> Updated missed call notification behaviour

Change-Id: Id32110413fbb5fa4ae4c3478e70f54d211b78389

Missed call notification

1. If the phone account has multi user capability, the notification
is shown in current user.

2. If the phone account has no multi user capability, the notification
is shown in the user that owns the phone account of the call

3. Whenever user is switched, reload missed call from database and post
notifications if necessary.

Change-Id: Id32110413fbb5fa4ae4c3478e70f54d211b78389
elecom/tests/MissedCallNotifierImplTest.java
elecom/tests/TelecomSystemTest.java
c207586e68fc76ba092e9e100fafb92737ef9980 13-Jan-2016 Brad Ebinger <breadley@google.com> Fixes LogTest Tests

Fixes error occuring in LogTest tests after Session logging formatting
changed from the displaying at the beginning of the log message to the end.

Change-Id: If404d059615c990a287dc608d64047460cbee244
elecom/tests/LogTest.java
a3e9ddacab074828d8b1867db77e7c96b712ac0c 16-Dec-2015 Hall Liu <hallliu@google.com> Add support for earpiece-less devices in audio routing

Allow devices without earpieces (Wear devices) to route call audio
correctly by falling back to speakerphone. Added tests to verify correct
behavior in this instance.

Bug: 26195788
Change-Id: If73db0cc4c3fcb00b3068276a10d44417d2ddd5c
elecom/tests/CallAudioRouteStateMachineTest.java
e0d23aae71db4aa8dced55debdb0f64301c9a538 19-Dec-2015 Brad Ebinger <breadley@google.com> Merge "Mock WakeLocks in Telecom for Unit Testing"
69fbbf2860e620224fb357299a06ef1ea65a48a2 16-Dec-2015 Brad Ebinger <breadley@google.com> No longer start visible subsessions in Logging

Currently, if Log.startSession() is called when a session is
already active, a new subsession will be created (along with
the corresponding Log messages in logcat). This can cause confusion
in the Logging messages because a subsession was not started
explicitly and also adds un-needed verbosity.

This change creates "invisible" subsessions instead that still
track the start/end of the invisible subsession, but do not
report themselves in the log messages.

Also, to help with verbosity in the logs, the log messages
for createSubsession() have moved down to verbose.

Change-Id: Ifc1638b0bb197f20b6baa70293df5bc389dd1fc2
elecom/tests/LogTest.java
63a89f28d6e86844eea242a0175db21df1624db1 09-Dec-2015 Brad Ebinger <breadley@google.com> Mock WakeLocks in Telecom for Unit Testing

Currently, the proximity and in-call wakelock controllers use
PowerManager and PowerManager.WakeLock, which are final and can
not be mocked. A container named TelecomWakeLock has been introduced,
which encapsulates WakeLock logic for Unit Testing.

Unit tests are added for the ProximitySensorManager and InCallWakeLockControllerTest.

Change-Id: I4a894d4cd8d9d8952144a41a4d0a4bf4dac4de46
elecom/tests/InCallWakeLockControllerTest.java
elecom/tests/ProximitySensorManagerTest.java
a5e650516df103a8234c91433d70b9d9c823ec80 17-Dec-2015 Hall Liu <hallliu@google.com> Merge "Add tests for ContactsHelperAsync"
96a68839b9cd5051a94db1def4d28b922bb87ee2 17-Dec-2015 Tyler Gunn <tgunn@google.com> Merge "Add Video API unit tests, fix auto speakerphone logic."
0a6dd30f0f7acab586db9933bd4836148cd91c89 17-Dec-2015 Hall Liu <hallliu@google.com> Add more tests for TelecomServiceImpl

Change-Id: Ieef40369762736c01a331fe4a3cc72bed8928103
elecom/tests/TelecomServiceImplTest.java
29855705f44029e8578b8c4df9b571748724a03a 12-Dec-2015 Hall Liu <hallliu@google.com> Improve test stability for CallAudioRouteStateMachine

Explicitly run verifications only after all state machine commands have
been completed, by attaching a Runnable to a message to be processed
after all other messages by the call audio route state machine.

Change-Id: I7678eea5148fd08d72aac26183273c8d0d66d295
elecom/tests/CallAudioRouteStateMachineTest.java
9ccc43d63648800e92396c430228772f8d0738cd 15-Dec-2015 Hall Liu <hallliu@google.com> Add tests for ContactsHelperAsync

Change-Id: I6ce3c7523fab97d4dc4d4a23ded84af8ec882e5c
elecom/tests/ContactsAsyncHelperTest.java
fdf90a2f04be1dd020b4a03bdbe0ea5188c2994e 15-Dec-2015 Hall Liu <hallliu@google.com> Merge "Add tests for NewOutgoingCallIntentBroadcaster"
b492f4c845e61fac17c0e523363607d2dd6ba987 15-Dec-2015 Tyler Gunn <tgunn@google.com> Add Video API unit tests, fix auto speakerphone logic.

- Move some of the single call Telecom system tests to a new BasicCallTests
class.
- Change visibility of some methods in TelecomSystemTest to faciliate the
creation of other system test classes.
- Added VideoProviderTest which exercises the Video APIs.
- Created Mock Video Provider.

Change-Id: Id314c18b77e8c635fbde0232a1ccfae851a3071c
elecom/tests/BasicCallTests.java
elecom/tests/ConnectionServiceFixture.java
elecom/tests/MockVideoProvider.java
elecom/tests/TelecomSystemTest.java
elecom/tests/VideoCallTests.java
elecom/tests/VideoProviderTest.java
2bc522472c205df8237e6e2891fa5a4952fb0adf 14-Dec-2015 Brad Ebinger <breadley@google.com> Merge "Fix Crashes on UserCallActivity.onCreate"
220b419bb5d1b4d1df08415c8e52cb7f0decbf7c 11-Dec-2015 Hall Liu <hallliu@google.com> Add tests for NewOutgoingCallIntentBroadcaster

Change-Id: I5dd8ee49e0afc3ab714439ae1ca7f4ce54a26072
elecom/tests/ComponentContextFixture.java
elecom/tests/NewOutgoingCallIntentBroadcasterTest.java
a5c4b8ce1253d96ace236df0c068a1c14a20026f 14-Dec-2015 Brad Ebinger <breadley@google.com> Fix Crashes on UserCallActivity.onCreate

Currently, Telecom's Logging system uses the TelecomService context
for its ContentResolver, which is not available when other processes
execute UserCallActivity.onCreate(). In this case, the default state
session timeout value will be set to the default.

Bug: 26176790
Change-Id: I1806a4ba06995c11da29c197e10fc9654e0f4904
elecom/tests/LogTest.java
ecda55454f4993003e71e09a63d20f94a216cc47 04-Dec-2015 Hall Liu <hallliu@google.com> Add unit tests for TelecomServiceImpl

Added unit tests for TelecomServiceImpl and added some refactoring to
avoid static dependencies in TelecomServiceImpl.

Change-Id: I22a54e1e36c3a44dc07f65f534c0b9b6d534abd9
elecom/tests/ComponentContextFixture.java
elecom/tests/TelecomServiceImplTest.java
elecom/tests/TelecomSystemTest.java
elecom/tests/TelecomTestCase.java
bd5dfb487f28c90df51b50289d8416524e2a3c8f 12-Dec-2015 Brad Ebinger <breadley@google.com> Merge "Adds Telecom Logging to TelecomServiceImpl."
84f4ff64833c6f4af5337f061ae4927b81d0081c 12-Dec-2015 Brad Ebinger <breadley@google.com> Merge "Increase Unit Tests for BluetoothPhoneServiceImpl"
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
elecom/tests/LogTest.java
f7a0897fa1fc5e759505500b690267ad14d860c0 11-Dec-2015 Brad Ebinger <breadley@google.com> Increases stability of Telecom Tests.

TelecomSystemTest will sometimes return null when accessing
CallerInfoAsyncQueryFactoryFixture.mRequests. This seems to be due to
multiple test threads accessing mRequests at the same time. I have
changed the list to a synchronizedList in order to solve this problem.

Change-Id: I673658a823839307a7f42495b9537f623ba6621c
elecom/tests/CallerInfoAsyncQueryFactoryFixture.java
712860276af91b649f2787a9a793521b16f091be 10-Dec-2015 Brad Ebinger <breadley@google.com> Increase Unit Tests for BluetoothPhoneServiceImpl

Adds tests to BluetoothPhoneServiceImpl in code areas
that have been identified as important (76% -> 86%) as per:

go/telecom-code-yellow-coverage

Change-Id: I1294f5873ea0944c79878797e244db346b2ad9a4
elecom/tests/BluetoothPhoneServiceTest.java
f4745b6a7d110d6a9d23fe6c385dc1e3d7c6c2f4 09-Dec-2015 Brad Ebinger <breadley@google.com> Fixes Permission Error in TelecomSystemTest

Recent changes in TelecomSystemTest aim to test a new
KEY_INITIATING_USER Extra set in
new UserCallIntentProcessor(Context context,...).processIntent(...).
Previously, context was not getting set to the correct MockContext,
which was then improperly sending out an intent to the system.
This change uses the correct MockContext and verifies the mocked
sendBroadcastAsUser intent was called before continuing tests.

Change-Id: If09a5fe6cf09fe7bfb0ce8b7e4e0890465bc8aea
elecom/tests/CallAudioRouteStateMachineTest.java
elecom/tests/ComponentContextFixture.java
elecom/tests/TelecomSystemTest.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
elecom/tests/CreateConnectionProcessorTest.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
elecom/tests/TelecomSystemTest.java
23a1974afd37a2ce4210281c7d2921e69cc2747f 07-Dec-2015 Tony Mak <tonymak@google.com> Merge "Allow setting default phone account handle per user"
30cdf12de680cb9ec3cf932706f065a48feade40 07-Dec-2015 Tony Mak <tonymak@google.com> Merge "Methods in PhoneAccountRegistrar should ask for userhandle explicitly"
4a3e2fd2b783c9f667a719237ef527ebe686fe32 04-Dec-2015 Tony Mak <tonymak@google.com> Allow setting default phone account handle per user

The problem we cannot have every users has their own user handle is becoz
we did not store user handle.
Store default phone account handle with user handle, so that every user
can has it owns default phone account handle.

Bug: 25941865

Change-Id: Iad8a920e9ceeb9caa8a7d8bc6a1d2f2dfc8dcd58
elecom/tests/PhoneAccountRegistrarTest.java
elecom/tests/TelecomSystemTest.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
elecom/tests/BluetoothPhoneServiceTest.java
elecom/tests/PhoneAccountRegistrarTest.java
7a1f8239f7d22faef49c1f89de522e908e2e43f8 04-Dec-2015 Tyler Gunn <tgunn@google.com> Track and store call data usage in call log.

Respond to VideoProvider changeCallDataUsage callbacks and track the
most current call data usage in the Call. Use this when saving a new call
log entry.

Bug: 25668261
Change-Id: I1477b10dd9553ff3194e50f27d223d5eb24725bf
elecom/tests/CallLogManagerTest.java
abbb3af2c05c1e523308d67f556cd7dee13a8f6c 02-Dec-2015 Hall Liu <hallliu@google.com> Merge "End-to-end testing for conference calls"
ae694b10e9156cfe0c8c57d73989fed13c887f69 12-Nov-2015 Tyler Gunn <tgunn@google.com> Make TelecomSystemTest compatible with code coverage

Creates a few implementations of interfaces to spy on to avoid
mysterious exceptions resulting from interactions between Mockito and
Emma.

Change-Id: Ie32b1bb101811471722f6e48aa4c5a75f364575c
elecom/tests/MockitoHelper.java
elecom/tests/TelecomSystemTest.java
fd3a71fb611005a95c2063bbf082b81dcdfffc3f 30-Nov-2015 Brad Ebinger <breadley@google.com> Merge "Introduce Session logging to CallAudioManager"
72930a80679d461ad694b6555b0749d5fc4e31a8 23-Nov-2015 Brad Ebinger <breadley@google.com> Introduce Session logging to CallAudioManager

Introduces session logging into Telecom's CallAudioManager and
incoming call entry points.

Change-Id: I7419fd5372a363ac21dbec8d4aeb29b05591300d
elecom/tests/CallAudioRouteStateMachineTest.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
elecom/tests/ConnectionServiceFixture.java
9ecf22f7ae4a58b6afb60f736dcd12e76fdb80d0 25-Nov-2015 Tony Mak <tonymak@google.com> Merge "Update calllog insertion logic"
98e6bdc795585b0d332a7eb86245926c8d80609a 25-Nov-2015 Tony Mak <tonymak@google.com> Update calllog insertion logic

Here are behaviors defined by Lilian, we may revisit the behavior later.

1. Calls using multi user PhoneAccount are inserted to all users
except managed profile.

2. Outgoing call placed through work dialer is inserted into managed profile
only.

3. Calls using non-multi user PhoneAccount should be only inserted to
that particular user.

Change-Id: I84f54afb3af38b931b71063608f38d265aa0417c
elecom/tests/CallLogManagerTest.java
116b859400b6c69c70fd325c352ad503baa3a8cf 18-Nov-2015 Brad Ebinger <breadley@google.com> Introduces sessions into Telecom Logging

Sessions are introduced into the Telecom logging framework in order
to better trace code execution paths in the Telecom logs. Mostly,
this code keeps track of threads that are currently executing code in
Telecom and when a log or event is recorded, the unique session
information is appended to the log/event.

Change-Id: Ied3940fbb33e097636a99571e946dd40a154d64b
elecom/tests/LogTest.java
elecom/tests/TelecomTestCase.java
b0998818637b87adf9c7528a15030e4b65fcf0d7 25-Nov-2015 Tony Mak <tonymak@google.com> Merge "Add field to store who is initiating the call"
f7783fb45c262a36d813cb450062d0076490a530 24-Nov-2015 Hall Liu <hallliu@google.com> End-to-end testing for conference calls

Adds machinery in ConnectionServiceFixture to enable end-to-end testing
for conference calls. Also adds tests to TelecomSystemTests to test the
functionality of conference calls.

Change-Id: I8b8784728bd6077402056e5f88de4bbc2b813bdc
elecom/tests/ConnectionServiceFixture.java
elecom/tests/InCallServiceFixture.java
elecom/tests/TelecomSystemTest.java
42ef808c284791f21be8675174acc7297418fa45 25-Nov-2015 Tyler Gunn <tgunn@google.com> Add "acceptRingingCall()" API which accepts a videoState.

- Added acceptRingingCall API which accepts a videostate to complement the
existing API.
- Added unit test for acceptRingingCall APIs.

Bug: 20159300
Change-Id: I4166a8b7c470632d0ffc0e75504b081ffeea733d
elecom/tests/TelecomSystemTest.java
578a4e6661fc1be20d164458acb335356d742f72 23-Nov-2015 Tony Mak <tonymak@google.com> Add field to store who is initiating the call

Insert userhandle of user that initiate the call before forwarding
the intent to primary user.

Previous ACTION_CALL flow:
Fire ACTION_SEND (managed user) ->
UserCallActivity in Telecom (parent user) ->
PrimaryCallReceiver (parent user)

Current ACTION_CALL flow:
Fire ACTION_SEND (managed user) ->
UserCallActivity in Telecom (managed user) ->
PrimaryCallReceiver (parent user)

The field can be used for:
1. Filter phone accounts for outgoing call
2. Insert call log based on who initiates the call
3. Pass the field to in-call UI which may uses it to indicate it is a work
call.


Change-Id: I78611a4394f00ce0655c37d52b7b456f213ec802
elecom/tests/TelecomSystemTest.java
6377b9423b6638ceed0e4461b302d8bf9db93de4 17-Nov-2015 Hall Liu <hallliu@google.com> Merge "Refactor CallAudioManager's audio routing"
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
elecom/tests/CallAudioRouteStateMachineTest.java
3dfd3e916f1f5f1bd8fe811ab134422b8763bfa7 17-Nov-2015 Brad Ebinger <breadley@google.com> Merge "Add BluetoothPhoneServiceImpl testing"
5385513ae43b4d5896245bf076a83b27dbf32a25 30-Oct-2015 Brad Ebinger <breadley@google.com> Add BluetoothPhoneServiceImpl testing

Adds unit tests for BluetoothPhoneServiceImpl.java, which manages
telecom's interfacing with a headset, including headset events
and connect/disconnect during a call.

Change-Id: Ia692b02f8e4d3fc52b0e266409a4c5ed1ca2e7b8
elecom/tests/BluetoothPhoneServiceTest.java
elecom/tests/ComponentContextFixture.java
b3979ee8e636820cc5e68f26562bc02987e5d489 12-Nov-2015 Hall Liu <hallliu@google.com> Fix test breakage when phone bluetooth is on

When the phone's bluetooth is enabled, TelecomSystemTest will fail with
a permission error in BluetoothPhoneServiceImpl. This change introduces
a new factory to facilitate mocking of BluetoothPhoneServiceImpl.

Change-Id: I58e1d5532a7f55580d37158fee27209e3de24988
elecom/tests/TelecomSystemTest.java
ada0301a8190568d90adba04bd1f555b7894a0e1 26-Oct-2015 Hall Liu <hallliu@google.com> Added tests for CallLogManager

Change-Id: I831599355fa3fa32365f8a7e011b41e37c72c9ec
elecom/tests/CallLogManagerTest.java
elecom/tests/ComponentContextFixture.java
2c93c50e5be7d85b78c4af15aaa10e44f0bcdf3e 28-Oct-2015 Brad Ebinger <breadley@google.com> Revert "Move tests around to better organize Telecom"

This reverts commit f6655ee7f26e85aef274be7e8c95e317d9d4af7f.

Change-Id: Ia54fb6173de6425d5d9979b2498654764549ce19
elecom/CallerInfoAsyncQueryFactoryFixture.java
elecom/ComponentContextFixture.java
elecom/ConnectionServiceFixture.java
elecom/InCallServiceFixture.java
elecom/InCallWakeLockControllerTest.java
elecom/MissedCallNotifierImplTest.java
elecom/MockitoHelper.java
elecom/PhoneAccountRegistrarTest.java
elecom/RingerTest.java
elecom/TODO
elecom/TelecomSystemTest.java
elecom/TelecomTestCase.java
elecom/TestFixture.java
elecom/tests/CallerInfoAsyncQueryFactoryFixture.java
elecom/tests/ComponentContextFixture.java
elecom/tests/ConnectionServiceFixture.java
elecom/tests/InCallServiceFixture.java
elecom/tests/InCallWakeLockControllerTest.java
elecom/tests/MissedCallNotifierImplTest.java
elecom/tests/MockitoHelper.java
elecom/tests/PhoneAccountRegistrarTest.java
elecom/tests/RingerTest.java
elecom/tests/TODO
elecom/tests/TelecomSystemTest.java
elecom/tests/TelecomTestCase.java
elecom/tests/TestFixture.java
f6655ee7f26e85aef274be7e8c95e317d9d4af7f 26-Oct-2015 Brad Ebinger <breadley@google.com> Move tests around to better organize Telecom

In order to better organize the Telecom system, the tests have been moved into the Telecom package instead of a separate .test package.

Change-Id: I762372acc47c9bc4e671d8c66227eb272e20d88a
elecom/CallerInfoAsyncQueryFactoryFixture.java
elecom/ComponentContextFixture.java
elecom/ConnectionServiceFixture.java
elecom/InCallServiceFixture.java
elecom/InCallWakeLockControllerTest.java
elecom/MissedCallNotifierImplTest.java
elecom/MockitoHelper.java
elecom/PhoneAccountRegistrarTest.java
elecom/RingerTest.java
elecom/TODO
elecom/TelecomSystemTest.java
elecom/TelecomTestCase.java
elecom/TestFixture.java
elecom/tests/CallerInfoAsyncQueryFactoryFixture.java
elecom/tests/ComponentContextFixture.java
elecom/tests/ConnectionServiceFixture.java
elecom/tests/InCallServiceFixture.java
elecom/tests/InCallWakeLockControllerTest.java
elecom/tests/MissedCallNotifierImplTest.java
elecom/tests/MockitoHelper.java
elecom/tests/PhoneAccountRegistrarTest.java
elecom/tests/RingerTest.java
elecom/tests/TODO
elecom/tests/TelecomSystemTest.java
elecom/tests/TelecomTestCase.java
elecom/tests/TestFixture.java
d931a017a0abea32ad4485a91402b5f62b9ddb0e 21-Oct-2015 Brad Ebinger <breadley@google.com> Ringer unit tests added and minor refactoring to accommodate testing.

Change-Id: Ia176dff453e1876494e14d8403eb5a9ed3dd3865
elecom/tests/ComponentContextFixture.java
elecom/tests/RingerTest.java
c165a519858a03c4381e8d0ecf8a6c5afa1ad531 24-Oct-2015 Hall Liu <hallliu@google.com> Fix duplicated registerReceiver method

Change-Id: Id4b7adad1b5251f28aa8643fa2054714abc10dca
elecom/tests/ComponentContextFixture.java
877267255abf10ed14ccc88bf5201e48ab867f81 23-Oct-2015 Hall Liu <hallliu@google.com> Merge "Fix TelecomSystemTest#testAudioManagerOperations"
8fb1fb72b084a0497a3c3c3037ce5667bde14482 23-Oct-2015 Hall Liu <hallliu@google.com> Fix TelecomSystemTest#testAudioManagerOperations

testAudioManagerOperations was setting the microphone to mute
and attempting to verify that the setMicrophoneMute methond on
the AudioManager was invoked. However, CallAudioManager bypasses
AudioManager and calls AudioService directly.

This change modifies CallAudioManager so that a mock AudioService
can be injected. The test was modified so that it checks that the
appropriate mute method was called on the mock AudioService instead
of checking the mock AudioManager.

Bug: 25158760
Change-Id: I0d5946ae6b4cd31c9067e818f20dcc37a2e15c86
elecom/tests/ComponentContextFixture.java
elecom/tests/TelecomSystemTest.java
a33c44b34eaed1ec2dd5c87e00e2c0865971b7d1 20-Oct-2015 Hall Liu <hallliu@google.com> Add tests for MissedCallNotifierImpl

Refactored MissedCallNotifierImpl to be more test-friendly
and added unit tests for it.

Change-Id: I1020b7ca88b304309a8d3ee71b36154c84ef5821
elecom/tests/ComponentContextFixture.java
elecom/tests/MissedCallNotifierImplTest.java
1d903ddbf915a4aef4925a0e90042e76151c97a9 10-Oct-2015 Hall Liu <hallliu@google.com> Fix test harness by mocking TelecomManager

Bug: 24618535
Change-Id: I28537b2a64cb401df41d7de892cf21125ce8f851
elecom/tests/ComponentContextFixture.java
elecom/tests/PhoneAccountRegistrarTest.java
elecom/tests/TelecomSystemTest.java
369c8740adecbb47a17171f861322a76588a6319 08-Oct-2015 Tyler Gunn <tgunn@google.com> Add store/retrieve of PhoneAccount extras to PhoneAccountRegistry.

- Add write/read to parser.
- Add Unit test case for XML parsing.
- Add test extra data test ConnectionService phone accounts.

Bug: 22806380
Change-Id: Ib01843ee859616eb6674f070a674b792d52b8869
elecom/tests/PhoneAccountRegistrarTest.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
elecom/tests/ConnectionServiceFixture.java
084ab0835ea9879185d3e6aa7f9be48ae4067bed 15-Jul-2015 Roshan Pius <rpius@google.com> Maintain call time across SRVCC (1/3).

When an IMS conference call encounters an SRVCC event requiring a
fallback to GSM/CDMA, we need to maintain the call time for the
conference host across this fallback. So, adding a connectTime attribute
in the underlying conference host's connection object which can be used
to account for the call time from the now inactive conference call into
the new call created.

BUG: 21918593
Change-Id: I2d31761bd4af4a3ec199b998a0ce511001dcf632
elecom/tests/ConnectionServiceFixture.java
59c21a747c31773a67a32675be29c4d0537a3513 11-Jun-2015 Santos Cordon <santoscordon@google.com> Change Sim Call Managers to use default dialer app instead.

Bug: 21499476
Change-Id: I60505ac1699f287656434b55d81aa61d4ae4ce14
elecom/tests/PhoneAccountRegistrarTest.java
69fa89790a67c497f091c86a9b1ed5a00aace7ae 08-Jun-2015 Yorke Lee <yorkelee@google.com> Use Telecom constant for providing incoming call handle

Bug: 19696065
Change-Id: Idf5385d80c828f28f3078acae9670ace9daab61e
elecom/tests/TelecomSystemTest.java
0d5b6ee93d90a70f9b8fd0fa5ce0c407ae84cc68 29-May-2015 Santos Cordon <santoscordon@google.com> Merge "Add extras to Connections/Calls. (2/3)" into mnc-dev
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
elecom/tests/ConnectionServiceFixture.java
32dd7c331c5b4dc475d96b113a052286973f78fc 28-May-2015 Ihab Awad <ihab@google.com> Update tests to test "hold" state

Update the tests to add simple testing for the connection "hold"
state, and add a simple helper function for assertion with a timeout.

Change-Id: I3fbc947dccdc4c39a632ea96ea6d355a15930230
elecom/tests/ConnectionServiceFixture.java
elecom/tests/TelecomSystemTest.java
b60f00673149da9a96d9369f4e1c4458e9a9cf53 27-May-2015 Ihab Awad <ihab@google.com> Sync for AudioManager

Fixes sync problems where the system calls back into Telecom while
Telecom is synchronously processing a message.

Bug: 21289255
Change-Id: I4ea319113be2e4651c82c6e9712eb4d97ea9e9bb
elecom/tests/ComponentContextFixture.java
elecom/tests/TelecomSystemTest.java
1b5490ac8643a5969adaba6f68d872acd251d666 12-May-2015 Ihab Awad <ihab@google.com> Update tests

ConnectionServiceFixture now does not use Mockito when() allowing
reset() at any time. Added tests for incoming calls.

Change-Id: Ic5f5fc7b910a97d2838090713439f703d80748c6
elecom/tests/ComponentContextFixture.java
elecom/tests/ConnectionServiceFixture.java
elecom/tests/TODO
elecom/tests/TelecomSystemTest.java
0a4b95fc7731943fdd1a9b295daae45eb46b28d0 18-May-2015 Ihab Awad <ihab@google.com> Fix test bitrot breakages

Change-Id: I39cbcd078c07fd48ca9b00abce21871ef273b19d
elecom/tests/ComponentContextFixture.java
elecom/tests/PhoneAccountRegistrarTest.java
elecom/tests/TelecomSystemTest.java
afb408d738ec4583a02dc7ec6bb3c5a74479fb09 19-May-2015 Ihab Awad <ihab@google.com> Merge "Sync for HeadsetMediaButton" into mnc-dev
ea5cb93d81099f17654e0fdf9b8eda3bfa89f081 08-May-2015 Santos Cordon <santoscordon@google.com> Provide enable property on phone accounts.

Bug: 20303449
Change-Id: I4b9cb0e29377233ed4fc01757570351ee6e5856e
elecom/tests/PhoneAccountRegistrarTest.java
731369c3983628e700f161138fe2ea3230033a1a 19-May-2015 Ihab Awad <ihab@google.com> Sync for HeadsetMediaButton

Add synchronization and deferred execution to our interactions with
MediaSession, since MediaSession sometimes calls back via an RPC into
Telecom and can cause us to deadlock.

Bug: 21028885
Change-Id: I8fc0574269a81e817e1c139aa0fe56258c96bd64
elecom/tests/TelecomSystemTest.java
a955f69f199fad0faf2798ebf3ca136a9cf0bc8b 14-May-2015 Santos Cordon <santoscordon@google.com> Merge "[2/4] Use new Icon class in PhoneAccount." into mnc-dev
9c30c280f0007eb32d3ae9a7cad8ceb68120ca41 14-May-2015 Santos Cordon <santoscordon@google.com> [2/4] Use new Icon class in PhoneAccount.

Bug: 21088522
Change-Id: If57c3cb2f1c6630b6bd66e55862bec564e817945
elecom/tests/PhoneAccountRegistrarTest.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
elecom/tests/InCallServiceFixture.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
elecom/tests/PhoneAccountRegistrarTest.java
805917f7d6dfd87cad970cec9be55b24200db7b8 24-Apr-2015 Etan Cohen <etancohen@google.com> Merge commit '569b54e' 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
elecom/tests/InCallWakeLockControllerTest.java
elecom/tests/TelecomSystemTest.java
569b54e5dff12cc29aa253efb3c61bc4fc5d778e 16-Apr-2015 Andrew Lee <anwlee@google.com> Update ConnectionServiceFixture with StatusHints.

Change-Id: Ia19cbaa541cd8265e7de58f3f430eae1a2197421
elecom/tests/ConnectionServiceFixture.java
7cc486c725e2ae9b8051b4f36fd0c41ff3a8aca3 16-Apr-2015 Jay Shrauner <shrauner@google.com> Remove connection substate

Bug:20300433
Change-Id: I4148ac2677598d4db60950712fda2a3be726d791
elecom/tests/ConnectionServiceFixture.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
48105e1a3671c89bf7fb0dc1879221b7caa1351e 14-Apr-2015 Andrew Lee <anwlee@google.com> Merge commit '3631b8e' into mergemeister

Change-Id: I40c4794e1091b26c5cd366dc4baf55626b62a145
5aa226a177ff2b1e780993caa2f922368d0944ab 13-Apr-2015 Andrew Lee <anwlee@google.com> Merge commit 'b63b57e' into mergemeister

Change-Id: I63e820e6ba1095485c3d887c559eab0dc72f7712
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
elecom/testapps/TestConnectionManager.java
elecom/testapps/TestManagedVideoProvider.java
elecom/testapps/TestVideoProvider.java
elecom/tests/ConnectionServiceFixture.java
elecom/tests/SimpleTelecomTest.java
elecom/tests/TelecomSystemTest.java
aa383cca668afd8578a6e007c3ea360768dc52f6 23-Mar-2015 Ihab Awad <ihab@google.com> Further cleanup, and move functionality into TestFixture objects

Change-Id: I62b514ae8fe10f720a60c681968efd2340616eba
elecom/tests/ComponentContextFixture.java
elecom/tests/ComponentContextHolder.java
elecom/tests/ConnectionServiceFixture.java
elecom/tests/ConnectionServiceHolder.java
elecom/tests/InCallServiceFixture.java
elecom/tests/InCallWakeLockControllerTest.java
elecom/tests/MockitoHelper.java
elecom/tests/PhoneAccountRegistrarTest.java
elecom/tests/TODO
elecom/tests/TelecomSystemTest.java
elecom/tests/TelecomTestCase.java
elecom/tests/TestDoubleHolder.java
elecom/tests/TestFixture.java
elecom/tests/unit/InCallWakeLockControllerTest.java
elecom/tests/unit/PhoneAccountRegistrarTest.java
fd93244c8d002699942dfd45be9c7fb9f0eaa4a8 11-Apr-2015 Andrew Lee <anwlee@google.com> Missing BIDIRECTIONAL suffix.

Bug: 20160395
Change-Id: I9c38a13dcbdfa19ad621fbc81f0e049471bdd688
elecom/testapps/TestConnectionService.java
31d68d261288a19e9a402efa84b7afcf7cec9dd2 11-Apr-2015 Jay Shrauner <shrauner@google.com> Use CameraCapabilities constructor w/o zoom params

Bug:20160534
Change-Id: I62cf20afeb22436ef4108db39b6067a9da627580
elecom/testapps/TestVideoProvider.java
abcbce4441720c52a443d292d5adc2d95f446494 07-Apr-2015 Ihab Awad <ihab@google.com> Fix deadlock around locking in AudioManager

Includes proof of concept tests, but the tests are not yet
highlighting the problem, due to its nondeterminism.

Bug: 20103143
Bug: 20108354
Change-Id: I8323a660c6cc4093888f4e608070709a828624e6
elecom/tests/CallerInfoAsyncQueryFactoryFixture.java
elecom/tests/TelecomSystemTest.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
elecom/tests/ConnectionServiceFixture.java
945a82ea92bf4fcc8b505738760650f9fb74960b 02-Apr-2015 Ihab Awad <ihab@google.com> Split unit tests and interactive test apps apart

This CL splits the automated unit tests (*.tests package) and the
interactive test connection services (*.testapps package).

Apart from code hygiene and flexibility moving forward, this makes
Android manifest and build files, and the relevant dependencies,
simpler and easier to follow.

Change-Id: Id8c7763ae65f437fdfdabe8b0a4f3561adadbcb3
elecom/testapps/CallNotificationReceiver.java
elecom/testapps/CallServiceNotifier.java
elecom/testapps/CameraThread.java
elecom/testapps/TestCallActivity.java
elecom/testapps/TestConnectionManager.java
elecom/testapps/TestConnectionService.java
elecom/testapps/TestDialerActivity.java
elecom/testapps/TestInCallServiceImpl.java
elecom/testapps/TestManagedVideoProvider.java
elecom/testapps/TestVideoProvider.java
elecom/tests/PhoneAccountRegistrarTest.java
b63b57e2c35c4769e756f47131c7ebbc0af42c59 23-Mar-2015 Ihab Awad <ihab@google.com> Further cleanup, and move functionality into TestFixture objects

Change-Id: I62b514ae8fe10f720a60c681968efd2340616eba
elecom/tests/ComponentContextFixture.java
elecom/tests/ComponentContextHolder.java
elecom/tests/ConnectionServiceFixture.java
elecom/tests/ConnectionServiceHolder.java
elecom/tests/InCallServiceFixture.java
elecom/tests/InCallWakeLockControllerTest.java
elecom/tests/MockitoHelper.java
elecom/tests/PhoneAccountRegistrarTest.java
elecom/tests/SimpleTelecomTest.java
elecom/tests/TODO
elecom/tests/TelecomSystemTest.java
elecom/tests/TelecomTestCase.java
elecom/tests/TestDoubleHolder.java
elecom/tests/TestFixture.java
elecom/tests/unit/InCallWakeLockControllerTest.java
elecom/tests/unit/PhoneAccountRegistrarTest.java
7a593fa6806014a4f391c8a0d68b23f1ca7f6f04 27-Mar-2015 Yorke Lee <yorkelee@google.com> Add ability to simulate missed calls

After initiating a call using
adb shell am start -a android.telecom.testapps.ACTION_START_INCOMING_CALL
-d "tel:14082932268"

Hang up the call using:
adb shell am start -a android.telecom.testapps.ACTION_HANGUP_CALLS

Bug: 19803865

Change-Id: I913666dc45ea518f4f95a321121680fb7aabbb6f
elecom/testapps/CallNotificationReceiver.java
elecom/testapps/TestCallActivity.java
elecom/testapps/TestConnectionService.java
2d4deb580ae7ded601c1d5f05498cb16252ed39e 25-Mar-2015 Prerepa Viswanadham <dham@google.com> Fix merge conflicts in CallAudioManager and CallsManager.
Update a call to a hidden platform ctor in SimpleTelecomTest.

Change-Id: I76f6d0b9c49862b9412196ce2ea4d3e3ed960357
elecom/tests/SimpleTelecomTest.java
3d05da65a8e488be546b9cef2f44e1a5567132ad 24-Mar-2015 Prerepa Viswanadham <dham@google.com> Merge remote-tracking branch 'goog/mirror-m-wireless-internal-release' into master_merge

Change-Id: I5d9ab761a1060a24680e69d1610ade206660e139
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
elecom/tests/SimpleTelecomTest.java
20afacc3ccd361c93ab80ce7c438a113b4b5183d 17-Mar-2015 Yorke Lee <yorkelee@google.com> Support outgoing video calls with TestConnectionService

Change-Id: I28692515b43f6b0a7f6b651fcead97fe7b6e2e96
elecom/testapps/TestConnectionService.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
elecom/tests/ComponentContextHolder.java
elecom/tests/ConnectionServiceHolder.java
elecom/tests/MockConnectionService.java
elecom/tests/MockitoHelper.java
elecom/tests/SimpleTelecomTest.java
elecom/tests/TestDoubleHolder.java
elecom/tests/unit/PhoneAccountRegistrarTest.java
2a61edaf7945ca15366040d29010c0a6e151a238 16-Mar-2015 Vinit Deshpande <vinitd@google.com> Merge remote-tracking branch 'goog/mirror-m-wireless-internal-release'

Change-Id: I5bde841b9c5766ab33077ae4fd25c546b10117c7
0f764045684661baacacf7fa01ba8fc385c1828b 07-Mar-2015 Yorke Lee <yorkelee@google.com> Merge "Nuke TestDialerActivity"
0566c37d52b5cd62d6117ba4ee1943539a20b0cc 07-Mar-2015 Yorke Lee <yorkelee@google.com> Nuke TestDialerActivity

It doesn't do anything useful right now

Change-Id: I7cd66880a8692fc95273b39fd531230b26b4f70b
elecom/testapps/TestDialerActivity.java
d35be75e088fd4f9073678d89186c959f79001f3 06-Mar-2015 P.Y. Laligand <pylaligand@google.com> Made package name and directory structure match for a Telecomm unit test.

This makes Eclipse happier, and helps make new projects error-free.

Change-Id: Ic91823155c280a3808c246f66325e5e9b77fea9a
elecom/tests/unit/InCallWakeLockControllerTest.java
a365390b0d157fbe1655cdc41ea5d13fa13fdbdf 23-Jan-2015 Ihab Awad <ihab@google.com> Minor visibility changes to make tests work again.

Change-Id: I023974f9f145ec9b39b6d8a1c3b1679638dd59f7
elecom/tests/unit/InCallWakeLockControllerTest.java
0ef7e015abc2396cadba62399edea1539f8ad758 21-Jan-2015 Tyler Gunn <tgunn@google.com> Enable video telephony support. (3/4)

- Modified test connection service to set the video capability on its
phone accounts to enable testing of enabling video.
- Note: Had to change package/permission on the test app so that it could
register phone accounts.

Bug: 19062133
Change-Id: I391ca128a724a1bab2e4ffd5c5f6945e7cc057ec
elecom/testapps/CallServiceNotifier.java
eb9d7ac1ad7aab6735cde889e05f1a3655e2c0d2 20-Feb-2015 Yorke Lee <yorkelee@google.com> Release mediaplayer completely after destroying test call

Change-Id: Ibbe174a35858942d1f00b8c98dccadd215e54592
elecom/testapps/TestConnectionService.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
elecom/tests/unit/PhoneAccountRegistrarTest.java
cf75232f5d4a51d34a52671bee68bd2935aba149 05-Dec-2014 Yorke Lee <yorkelee@google.com> Merge "Improve outgoing call UI responsiveness" into lmp-mr1-dev
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
elecom/testapps/CallServiceNotifier.java
61e6f352c9c1fe8dc346ccf8d3560f7060ec663a 03-Dec-2014 Santos Cordon <santoscordon@google.com> Maintain Full Wake Lock while an incoming call is ringing.

Bug: 18474158
Change-Id: Ia9190a4ee34e138ccd91515db080a98754a0dd27
elecom/tests/unit/InCallWakeLockControllerTest.java
07bc5ee853bc9a0b4cd46e0c702888b2c7989392 12-Nov-2014 Ihab Awad <ihab@google.com> Telecom API updates (4/6)

Bug: 18292176

Change-Id: I28e6aa4fec20aadd77f9a861b0bb8e1e9828cffb
elecom/testapps/TestConnectionManager.java
elecom/testapps/TestConnectionService.java
elecom/testapps/TestManagedVideoProvider.java
elecom/testapps/TestVideoProvider.java
156ae5b83be86098f180335ea940a377667d0698 12-Nov-2014 Ihab Awad <ihab@google.com> Fix PhoneAccount parceling (2/2)

Bug: 18343731
Change-Id: Ib3867448e7731160bc478659d0297a2044050972
elecom/tests/unit/PhoneAccountRegistrarTest.java
7e2c7f34dde14afd18c13d39777331ec2ef3a46a 03-Nov-2014 Ihab Awad <ihab@google.com> Update PhoneAccount icon API (5/6)

Bug: 18291787

Change-Id: I0b83c0d36c67e12c27355d0893a0fa78a4f3aaa6
elecom/testapps/CallServiceNotifier.java
elecom/tests/unit/PhoneAccountRegistrarTest.java
a01b656e2f068646d787adb272377819871642a9 10-Nov-2014 Yorke Lee <yorkelee@google.com> Set appropriate capabilities to TestConference

This allows the "Manage conference" screen to show up correctly
for test conference calls

Bug: 18269622
Change-Id: I8467654a8158c5da8c354057f613f122b22a0ed3
elecom/testapps/TestConnectionService.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
elecom/testapps/TestConnectionService.java
d9f5438b2b4595a784947b92a49406ee99de2589 24-Oct-2014 Ihab Awad <ihab@google.com> PhoneAccounts include literal icon bitmap (3/4)

Change-Id: Ie3f02a5032b01e91d4620134bb7917cddd8b93e6
elecom/testapps/CallServiceNotifier.java
elecom/tests/unit/PhoneAccountRegistrarTest.java
34ed74708b2ae8f6bb3b0d90e36fe81fb6c0cd9b 23-Oct-2014 Nancy Chen <nancychen@google.com> am bf35150d: Merge "Revert "Revert "Add color to PhoneAccount objects (2/3)""" into lmp-sprout-dev

* commit 'bf35150db3ad0ce05130db1880485da167d2e373':
Revert "Revert "Add color to PhoneAccount objects (2/3)""
06ce062a2ceb7ca73560edd6b2f85d0f16a17667 23-Oct-2014 Nancy Chen <nancychen@google.com> Revert "Revert "Add color to PhoneAccount objects (2/3)""

This reverts commit 5f8eaaee9c50567a4b2714bd28b4ed39b7aac2b7.
We're ready to add color to PhoneAccounts

Change-Id: Ie65a13e565c26ea5e93f0835bb2c4684140455c9
elecom/tests/unit/PhoneAccountRegistrarTest.java
3d0ef1dc6a9eb1f4733be472b993f87183cd4d4c 15-Oct-2014 Yorke Lee <yorkelee@google.com> Fix typo in TestCallActivity

Change-Id: I0746a09181337960bcc0cb0044b000f2419108ec
elecom/testapps/TestCallActivity.java
5f8eaaee9c50567a4b2714bd28b4ed39b7aac2b7 12-Oct-2014 Ihab Awad <ihab@google.com> Revert "Add color to PhoneAccount objects (2/3)"

This reverts commit 09c1fec085e1e2b350b36cc4fcbcc31865945a51.
elecom/tests/unit/PhoneAccountRegistrarTest.java
d7a3497213c959b68ed2cbd6c47620d09b59a7d4 11-Oct-2014 Ihab Awad <ihab@google.com> Merge "Add color to PhoneAccount objects (2/3)" into lmp-sprout-dev
615fcd62c503e9dd3a718a84273aa544b955b84b 09-Oct-2014 Ihab Awad <ihab@google.com> Add color to PhoneAccount objects (2/3)

Change-Id: I2c53dbf3275b4c46933cf23e228a10936145cb9f
elecom/tests/unit/PhoneAccountRegistrarTest.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
elecom/testapps/CallNotificationReceiver.java
elecom/testapps/TestCallActivity.java
elecom/testapps/TestConnectionService.java
6de1445a3ef308bfbffaf43cc69d1dcf8e2a22ea 23-Sep-2014 Evan Charlton <evanc@google.com> Fix the broken unit tests

PhoneAccountRegistrarTest is broken, and also non-functional. Get them
updated by fixing proguard (don't strip @VisibleForTesting things),
fixing the setup (need a real ConnectionService), and fixing the tests
themselves to test what PhoneAccountRegistrar does now.

Bug: 17620636
Change-Id: Ibd4d5a4104ff2158b0e7c01a41910f866b94196a
elecom/tests/MockConnectionService.java
elecom/tests/unit/PhoneAccountRegistrarTest.java
465cec049a604655b2c7459458cc2d9136b5d86d 17-Sep-2014 Yorke Lee <yorkelee@google.com> Merge "Implement DTMF tones in test RemoteConference" into lmp-dev
b3c4b285b747c58bfa58e2c58e09cdfb2c2b03b8 17-Sep-2014 Nancy Chen <nancychen@google.com> Merge "Remove ability to enable/disable phoneaccounts (3/6)" into lmp-dev
c43894f93d4481eac726e1a47b3fe1b620f37876 16-Sep-2014 Yorke Lee <yorkelee@google.com> Implement DTMF tones in test RemoteConference

Bug: 17512380
Change-Id: I645366e38d52ab6f09664a3466306eb5bfe9daf2
elecom/testapps/TestConnectionManager.java
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
elecom/testapps/CallServiceNotifier.java
elecom/tests/unit/PhoneAccountRegistrarTest.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
elecom/testapps/TestConnectionManager.java
elecom/testapps/TestConnectionService.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
elecom/testapps/CallNotificationReceiver.java
elecom/testapps/CallServiceNotifier.java
elecom/testapps/CameraThread.java
elecom/testapps/TestCallActivity.java
elecom/testapps/TestConnectionManager.java
elecom/testapps/TestConnectionService.java
elecom/testapps/TestDialerActivity.java
elecom/testapps/TestInCallServiceImpl.java
elecom/testapps/TestManagedVideoProvider.java
elecom/testapps/TestVideoProvider.java
elecom/tests/unit/PhoneAccountRegistrarTest.java