History log of /frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
041b6e81c00ebc29af3bac1581a0d78d2c8fcf4b 27-May-2017 Tyler Gunn <tgunn@google.com> Post feature capability changes to handler.

Posting feature capability changes to the ImsPhoneCallTracker handler.
This removes potential race conditions when the Ims service posts a lot
of updates at the same time.

Test: Manual
Bug: 62076575
Merged-In: I464e6f16fce8d00925b9f633ddd1f015a183a9fb
Change-Id: I464e6f16fce8d00925b9f633ddd1f015a183a9fb
(cherry picked from commit bba4c2136d2665ca692c9fa9d55ca39b84a6a114)
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
9f4db346f6640922b0ac1186098062d166bf7f0d 25-May-2017 Tyler Gunn <tgunn@google.com> Merge "IMS conference merge improvements." into oc-dev
52e43154b3422d464a7361c40e15012b843c8fc7 20-May-2017 Tyler Gunn <tgunn@google.com> IMS conference merge improvements.

1. Re-map ended by conference merge to "IMS_MERGED_SUCCESSFULLY".
This later gets translated to Telecom disconnect cause "OTHER".
This is helpful to ensure the InCall UI is able to recognize that a call
ended because of the fact it is joining a conference.
2. Send connection event when starting to merge two calls; this way the
InCall UI can suppress transient states when merging.
Note: I purposely only send "merge complete" when merge fails; that way
when the calls disconnect naturally at the end of the merge, the incall ui
still knows they're in a "merging" state.

Test: Manual
Bug: 37581781
Change-Id: I22abfbae470c7e67b6e6309f58c958820a697609
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
8784f4e7ae91379d235ed65939b4101af3ca8213 11-May-2017 Tyler Gunn <tgunn@google.com> Add unit tests for ImsVideoCallProviderWrapper.

Specifically adding tests to ensure that the issue described in the bug
is handled correctly.

Test: Manual/unit
Bug: 35304446
Change-Id: I40fb4b7df15c55114bda506442e5efa0aefbd809
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
ef2b6345c1b136e4b24e8df23049a48f7e5dd12b 13-May-2017 Jayachandran Chinnakkannu <jayachandranc@google.com> Merge "Map CODE_LOCAL_ENDED_BY_CONFERENCE_MERGE to NORMAL disconnect cause" into oc-dev
d6adcf507cdd3e10fab019c9848733d006287e83 11-May-2017 Jayachandran C <jayachandranc@google.com> Map CODE_LOCAL_ENDED_BY_CONFERENCE_MERGE to NORMAL disconnect cause

This change also optimizes imports

Test: Following scenarios for VoLTE and CS call and
verified the cause sent in PreciseCallState.

1) Conference call merge
2) Conference call, one remote party ends the call
3) Conference call, all remote parties end the call
4) Conference call, hangup locally
5) Normal call and hangup locally
6) Normal call and remote party ends the call

Bug: 38225047
Change-Id: I7ea843683eebfa2e60683ddffd11995b426f0a12
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
21174cff5010593d3108c7bdfa31d7b657008ad0 11-May-2017 Brad Ebinger <breadley@google.com> Reset IMS Capabilities when IMS disconnects

When IMS deregisters, reset the IMS capabilities
to false so we do not accidently return the wrong
result for TelephonyManager.isVolteAvailable()
if the ImsService does not set the capabilities to
false before deregistering.

Test: Telephony Unit Tests
Bug: 36374918
Change-Id: I42b066f8a97770f23d71a0c646f384f7cbfdb57b
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
ec581c0b21b5da662b9fe60a8212a66196a9f05c 18-Apr-2017 Brad Ebinger <breadley@google.com> Better handle MSIM DDS changed event

On DSDS MSIM devices, when Default Data Subscription event
is received, the ImsService may choose to switch which
Slot ID is active.

This change better handles that switch and removes a
crash that was happening due to
ImsServiceProxy#getFeatureStatus getting called
circularly.

Bug: 37361882
Test: Run Telephony unit test
Merged-In: If0f2e3c90de378421bc17d029bf1e6a3ced6bb34
Merged-In: I2cfef49f833e330289f172bae7e422f5afa5fc40
Change-Id: If61332d8c2d4dacb96d27d706abac6afc612749b
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
468e5725d5fcc44672c074e166e8ce05e8e9a151 13-Apr-2017 Shuo Qian <shuoq@google.com> ECBM SystemProperty cleanup

- add a 'set' method in phone.java, and use it to set ECBM system property
and mIsPhoneInEcmState variable
- use isInEcm() method in the phone.java to read mIsPhoneInEcmState

Change-Id: Ie3882d1e9285904a17def68993987ae0549941a7
Test: manual
Bug: 30361624
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
96afde9f7d9f6c6f6fbc10215309963af30b1b42 30-Mar-2017 Tyler Gunn <tgunn@google.com> Correct NPE when active call is disconnected.

Its possible for an active call to be disconnected, in which case it has
no ImsCall. This causes a NPE in the "shouldDisconnect..." logic.

Test: Manual
Bug: 36777742
Merged-In: I4b4a3564143c60df811ba9f6040ca073e49f7487
Change-Id: I00cba85d426aedbbb46251528953b314f4f5dc35
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
50a1a2054c4e2dd1c6e0793f3eb05e705ed90d01 28-Mar-2017 Brad Ebinger <breadley@google.com> Merge "Null check IMS calls in shouldDisconnectActiveCallOnAnswer" am: b40f09bceb am: 84835fe2d6
am: 431f50d7e0

Change-Id: Id8db8b06e41d7d2de0329ebd3ea473e56fce8b01
84835fe2d63f03997011ed6f3cddda691971fc3d 28-Mar-2017 Brad Ebinger <breadley@google.com> Merge "Null check IMS calls in shouldDisconnectActiveCallOnAnswer"
am: b40f09bceb

Change-Id: I72faeab21453a11a3c2a6ef8096aebd3b9814e44
b40f09bceb76d597ba7d189538a6c078e5af9477 28-Mar-2017 Brad Ebinger <breadley@google.com> Merge "Null check IMS calls in shouldDisconnectActiveCallOnAnswer"
bd57f801aaa65822f3d8e3dce38a71b989d80763 23-Mar-2017 Brad Ebinger <breadley@google.com> Merge "Revert "Speculative DISCONNECTING fix for ImsPhoneCallTracker"" am: 0a72d2beed am: ab44afee43
am: 9dea9c86d0

Change-Id: I5f9f13c959b2f868e8feb5e55871edaae54fa984
ab44afee431edea51e30394c6273c0f6be969974 23-Mar-2017 Brad Ebinger <breadley@google.com> Merge "Revert "Speculative DISCONNECTING fix for ImsPhoneCallTracker""
am: 0a72d2beed

Change-Id: I954b95b8eb08e9696300020ab551940a87c384b1
50a6eae6fb10462b1edb12cc30cb9701ca18a212 23-Mar-2017 Brad Ebinger <breadley@google.com> Null check IMS calls in shouldDisconnectActiveCallOnAnswer

Adds a check to shouldDisconnectActiveCallOnAnswer to
ensure that the active IMS call and incoming IMS call
are non-null. This can happen in cases when the
ImsPhoneCallTracker moves into a bad state.

Bug: 36273870
Test: Telephony Unit Tests
Change-Id: Ia31bb8cc6e425b63f836e8244bb3919d10c50731
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
4f47ce14d99a68077f3570a7f3304be50a4a10a7 23-Mar-2017 Brad Ebinger <breadley@google.com> Revert "Speculative DISCONNECTING fix for ImsPhoneCallTracker"

This reverts commit 9f13848d600c0782a5bcb3b1d2d7dca5dca35005.

Looks to be causing issues where ImsPhoneCallTracker
state is out of sync with ImsService

Bug: 36273870
Change-Id: Id3cfbdc007c561f886adffd16def76dac553ac27
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
3ef828485c160fd7e82b82869e0ebcb802cdcf23 17-Mar-2017 Jayachandran Chinnakkannu <jayachandranc@google.com> Merge "Pass cause and precise call fail causes for IMS calls" am: 93fc20f26f am: 639962772f
am: 67aad17aa0

Change-Id: Ied70bdb4e757bd7e22c38b98bc7711fe513a34ba
639962772f21769143e606bf60a38ceae545c13b 17-Mar-2017 Jayachandran Chinnakkannu <jayachandranc@google.com> Merge "Pass cause and precise call fail causes for IMS calls"
am: 93fc20f26f

Change-Id: I7441017dda3232db9f6633ce7a21bba5ded9a53e
93fc20f26f57b3c7dae541125a2ddebdce80dea4 17-Mar-2017 Jayachandran Chinnakkannu <jayachandranc@google.com> Merge "Pass cause and precise call fail causes for IMS calls"
222bd9d64068a23f5470561655ca4dbd2359eece 12-Mar-2017 Jayachandran C <jayachandranc@google.com> Pass cause and precise call fail causes for IMS calls

Bug: 35609963
Change-Id: I7955a246b89e8dfd8a4b21ab9c8c4203b569c0a4
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
ca9f50fa11f1f911b2911eb7cae7d7232fc31b8e 16-Mar-2017 Brad Ebinger <breadley@google.com> resolve merge conflicts of 6b0d9a09f to stage-aosp-master am: a2793ccd4f
am: fd9bb1fd3e

Change-Id: I8ae467f9ad2a405632ddc6d06db9f96c5b7d454b
a2793ccd4f2256ee6ee7a6c90381f5666a0b9538 16-Mar-2017 Brad Ebinger <breadley@google.com> resolve merge conflicts of 6b0d9a09f to stage-aosp-master

Change-Id: Ic406e5468690f8a6e771a77c921dd49718f76b21
782c44d28a8944478b6906aa5c86a14ffd0e63db 15-Nov-2016 Jack Yu <jackyu@google.com> Added configuration for VT downgrade/tear down when data disabled

Added a new flag that allows carriers to ignore data disabled
(e.g. data reaches limit or user disables data) so VT calls
will not be downgraded/torn down and VT service will not be
disabled.

bug: 32880745
Merged-In: I977f1aa511c59f32446b4a76de3c6da54500adc1
Change-Id: I977f1aa511c59f32446b4a76de3c6da54500adc1
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
750cea57d86fe5f7eac0dd04f95c255c4eb3dba2 21-Feb-2017 Brad Ebinger <breadley@google.com> Merge "Remove Session ID from ImsService APIs that are not used" am: 3fe31f7fe8 am: 14b00f95e2
am: 94f2eb99a6

Change-Id: If008f945c9d78485a872390a4bd75f1c24e8bfa0
14b00f95e21a7cab72bfa18d9ef906a287bf6de2 21-Feb-2017 Brad Ebinger <breadley@google.com> Merge "Remove Session ID from ImsService APIs that are not used"
am: 3fe31f7fe8

Change-Id: I1ca31ed55c46a51ef8630995259f68db94cc860b
d8c6d59607f963be65bb78f92c44194a78b66108 17-Feb-2017 Brad Ebinger <breadley@google.com> Remove Session ID from ImsService APIs that are not used

1) Remove session ID from ImsService APIs that do not need them.
2) Change logging in ImsResolver to be less verbose.

Test: Manual
Change-Id: Ifaa3daf6d78ef5dae873b3c5e48be60a5cf79836
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
1a25e132f5aaed6f523834b3ef9d9529db5e5ce3 17-Feb-2017 Brad Ebinger <breadley@google.com> resolve merge conflicts of 87ee8a1b2 to nyc-mr2-dev-plus-aosp

Change-Id: Ic783c5e7d21a9945cde5e6692f8dec785e5572e1
4a424775eab77d5f9a805ef56eca2e526038f0a1 25-Jan-2017 Brad Ebinger <breadley@google.com> Modifications to support ImsResolver and adds Tests

1) Adds unit tests for ImsService and related classes.
2) Modifies the ImsPhoneCallTracker to support the new ImsResolver.
3) Modifies the ImsServiceController to relay ImsService status callbacks.

Test: Unit Tests added
Merged-In: Ibcb001ce13e0bcc21f02deede64f7ee8f1549e59
Change-Id: Ibcb001ce13e0bcc21f02deede64f7ee8f1549e59
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
7152d901c51e288759259ae3e482bb5fe1c23173 25-Jan-2017 Brad Ebinger <breadley@google.com> Modifications to support ImsResolver and adds Tests

1) Adds unit tests for ImsService and related classes.
2) Modifies the ImsPhoneCallTracker to support the new ImsResolver.
3) Modifies the ImsServiceController to relay ImsService status callbacks.

Test: Unit Tests added
Change-Id: Ibcb001ce13e0bcc21f02deede64f7ee8f1549e59
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
d396bd69cadbcbf3d441762e679dc6fc09f08aee 08-Feb-2017 Brad Ebinger <breadley@google.com> Merge "Speculative DISCONNECTING fix for ImsPhoneCallTracker" am: d4da840894 am: 6987ff9218 am: 6495916087
am: 29adbf007f

Change-Id: Icc7f807590e4bb2e0ab2559e414b53141affe357
29adbf007f1051716492cb3a1a96690ba6c08240 08-Feb-2017 Brad Ebinger <breadley@google.com> Merge "Speculative DISCONNECTING fix for ImsPhoneCallTracker" am: d4da840894 am: 6987ff9218
am: 6495916087

Change-Id: I11683bc6742f8cd8459c5e07ab70fc228c7f6936
9f13848d600c0782a5bcb3b1d2d7dca5dca35005 07-Feb-2017 Brad Ebinger <breadley@google.com> Speculative DISCONNECTING fix for ImsPhoneCallTracker

There is an issue occuring that causes an ImsPhoneConnection to
be left in the ImsPhoneCall without ever being cleaned up. This
causes the ImsPhoneCall never move into the IDLE state and blocks
new outgoing calls from being made.

Through speculation and code observation, it looks as though
this case may happen when the ImsService never responds to a
terminate request and telephony never receives the onDisconnect
callback. This change adds a new timeout that will expire after
some time and verify that the ImsPhoneConnection did indeed
eventually disconnect. If it did not, then we can assume that
the modem is not still tracking the call and we can call
onDisconnect ourselves.

Bug: 35012199
Test: Manual
Change-Id: I288d2950cd245ed6e40dd364e68d739a7d122d6c
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
79f2a645c5f638dd7af899757d50581063013cd0 03-Feb-2017 Tyler Gunn <tgunn@google.com> resolve merge conflicts of 58d671b9b to nyc-mr2-dev-plus-aosp

Test: Fix build.
Change-Id: I7e1d6754a8a060b4ca34de187c2c8bc607559f4c
4558536154e496ea917b343e496ed64c94250873 30-Jan-2017 Tyler Gunn <tgunn@google.com> Add support for wildcard reason code remapping.

The KEY_IMS_REASONINFO_MAPPING_STRING_ARRAY carrier config supports
remapping a from code and string reason to a new ims reason code.
Adding support for the from code being specified as a wildcard.
In practice we've ended up seeing the modem report a range of
"from codes". However, the message itself is definitely unique.

Test: Manual, unit
Merged-In: Ibfcfe8229b224f61d732b62e69b14126f2075916
Bug: 32571209
Change-Id: Ibfcfe8229b224f61d732b62e69b14126f2075916
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
aed3107f7735394f1a08f7a03749f4788012571d 30-Jan-2017 Tyler Gunn <tgunn@google.com> Add support for wildcard reason code remapping.

The KEY_IMS_REASONINFO_MAPPING_STRING_ARRAY carrier config supports
remapping a from code and string reason to a new ims reason code.
Adding support for the from code being specified as a wildcard.
In practice we've ended up seeing the modem report a range of
"from codes". However, the message itself is definitely unique.

Test: Manual, unit
Bug: 32571209
Change-Id: Ibfcfe8229b224f61d732b62e69b14126f2075916
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
690c2fcad7d48d160b06ae0d0b531e84d51d253b 18-Jan-2017 Tamas Berghammer <tberghammer@google.com> DO NOT MERGE: Revert "Update package names to work with the proto3 compiler"
am: a2dc503a98

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

This reverts commit ac3e61c9cb50ea674704430c770389a61c7d19b6.

Change-Id: Iad4b8e7e9375d8f15fe091503045fee74330f806
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
543dac701ed560a8eb69d1a01a56723561c3bbdc 18-Jan-2017 Tamas Berghammer <tberghammer@google.com> Update package names to work with the proto3 compiler
am: ac3e61c9cb

Change-Id: I9b535aa7e88bd4ff5289bf283bc0c169ac92fb6d
28374365ab472ce7eee6b1a7eb671f976aca9ef7 12-Jan-2017 Jack Yu <jackyu@google.com> Merge "Unregister data enabled changed listener on default phone" am: 989070554a am: 602e5a193d am: b2a2cf5dd0
am: f9e44ef552

Change-Id: I1f1e569dc54ce9ab80c7f39038ff4b2fcdb889be
f9e44ef5524b1d67393455ae3f96ab9b4f2ad34a 12-Jan-2017 Jack Yu <jackyu@google.com> Merge "Unregister data enabled changed listener on default phone" am: 989070554a am: 602e5a193d
am: b2a2cf5dd0

Change-Id: I46308b5a1dbae258c3dad9d28b592284b65bc526
d2c46a7e08af8f56c0f2112a78969d3d647cfa03 23-Nov-2016 Jiazeng Tian <jiazeng.tian@sonymobile.com> Unregister data enabled changed listener on default phone

[Description]
"com.android.phone" process crash after ACTION_IMS_SERVICE_DOWN
is sent out when ImsPhone is ready.

[Root cause]
When ACTION_IMS_SERVICE_DOWN is sent out, ImsPhone is disposed
and ImsPhoneCallTracker unregisters data enabled changed listener
in DcTracker from instance of ImsPhone but ImsPhone has no
object of DcTracker(i.e. null) then NullPointerException
has been happend.

[Solution]
When ImsPhoneCallTracker unregisters the listener, it refers
to default GsmCdmaPhone which it has an object of DcTracker

NOTE:
When ImsPhoneCallTracker registers the listener, it already refer
to default GsmCdmaPhone.

Test: manual with adb command to send IMS related intent.
Bug: 34206487
Change-Id: Iac9636de33074634fe9ccd451d510b4863bdc9ba
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
ac3e61c9cb50ea674704430c770389a61c7d19b6 22-Jun-2016 Tamas Berghammer <tberghammer@google.com> Update package names to work with the proto3 compiler

Bug: b/28974522
Change-Id: I5f3adf4946ee4ba1e09e4f40afe83c151405972a
(cherry picked from commit 9460a22f3c1ae70dde80e34557d7011be113b39a)
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
2539fc03945ae1a604ab2049c245636d9f23fd1d 22-Dec-2016 Meng Wang <mewan@google.com> Merge "Update ImsConnectionStateListener"
df233bacb5f868db8b5ba1e26782382de866ee58 22-Dec-2016 Tyler Gunn <tgunn@google.com> Use video pause signaling when data limit reached. am: 359c182111
am: 0455ac9f63

Change-Id: Id98b7ac9d4ea603fefe58b3d6d668e359a521c01
359c182111879b821c0b7eba6d5fa52194293212 21-Dec-2016 Tyler Gunn <tgunn@google.com> Use video pause signaling when data limit reached.

When the data limit is reached and video is disabled, use the "pause"
video signaling instead of disconnecting the call.
Previously, ImsManager#updateImsServiceConfig would be called when data
was disabled due to hitting the data limit. This would cause VT to be
unprovisioned; as a result it was not possible pause or unpause the video.
To solve this, when the data limit is reached and we're about to pause,
we are now deferring the updateImsServiceConfig until the call terminates.

Test: manual
Bug: 30760683
Change-Id: Ia1d4247cb5a11da7694e9d197a506442c7f675f4
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
793a20fb5b45954bb14133bcad65e4e3f3efe397 12-Dec-2016 Meng Wang <mewan@google.com> Update ImsConnectionStateListener

1. Replace onImsConnected() with onImsConnected(int)
2. Replace onImsProgressing() with onImsProgressing(int)

Bug: 33430556
Test: m
Change-Id: I5021b41b2c44b1242f5866791cbb11f07815d86c
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
a4e2afb6a96c5a2350586df3d6884dc80d87f2c4 15-Nov-2016 Jack Yu <jackyu@google.com> Added configuration for VT downgrade/tear down when data disabled

Added a new flag that allows carriers to ignore data disabled
(e.g. data reaches limit or user disables data) so VT calls
will not be downgraded/torn down and VT service will not be
disabled.

bug: 32880745
Merged-In: I8852d1f636d7cc73802119666b902b7df6a39e72
Change-Id: I977f1aa511c59f32446b4a76de3c6da54500adc1
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
16b2d037bcf47f79084b8dbc9e92979c83f55dba 18-Nov-2016 Jack Yu <jackyu@google.com> Added configuration for VT downgrade/tear down when data disabled

Added a new flag that allows carriers to ignore data disabled
(e.g. data reaches limit or user disables data) so VT calls
will not be downgraded/torn down and VT service will not be
disabled.

Test: telephony unit tests
bug: 32880745
Change-Id: I8852d1f636d7cc73802119666b902b7df6a39e72
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
99514fe66b80220ffd9bee6eda432944ce81b224 16-Nov-2016 Brad Ebinger <breadley@google.com> Only get WiFi status based on RAT extras am: 75f96a40e7
am: e3c2042b60

Change-Id: Ie393f5e38431fd95a3337baa64e4a6097c57d7e0
75f96a40e73bbf262287b64f7ba79f058adac472 15-Nov-2016 Brad Ebinger <breadley@google.com> Only get WiFi status based on RAT extras

We used to set the WiFi Connection property based on the the provisioning
status of the phone until the RAT extra was set from the modem. This is an
obsolete method of determining whether or not to set the WiFi property and
was causing some calls to be improperly marked as WiFi.

Test: Manual Testing
Bug: 30964593
Change-Id: I9922ff17ffb704a09e9b2cebeb147a7463b9898b
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
9460a22f3c1ae70dde80e34557d7011be113b39a 22-Jun-2016 Tamas Berghammer <tberghammer@google.com> Update package names to work with the proto3 compiler

Bug: b/28974522
Change-Id: I5f3adf4946ee4ba1e09e4f40afe83c151405972a
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
dc16d0f315fc0ded5566ad2f44b5ea4245a25021 30-Sep-2016 Jack Yu <jackyu@google.com> Combined TelephonyEventLog and part of the connectivity metrics app into the new TelephonyMetrics
am: f2d0fa6486

Change-Id: Idd0540c5568367a8df807eaa1f4aa9b64c1ab213
f2d0fa64860a12423fb8709766d6af90fba5e6cf 27-Sep-2016 Jack Yu <jackyu@google.com> Combined TelephonyEventLog and part of the connectivity metrics
app into the new TelephonyMetrics

Added the new TelephonyMetrics to support metrics collection
through dumpsys.

bug: 31224848
Change-Id: If4b6032e98b6cc8b68e8459e0e799a3755b1f2f9
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
3379e399780e6e6531eb84f14d1eca92ae48af2a 24-Sep-2016 Hall Liu <hallliu@google.com> Fix answering waiting call simultaneously with active call disconnect

When the user answers a call-waiting call at the same time as the remote
end disconnects the formerly-active call, an error may occur where the
in-call ui is left in an inconsistent state and the waiting call is
never answered.

Normally, when a call-waiting call is answered, the active call will
first be held. Then, after the modem reports that as successful,
onCallHeld will issue the EVENT_RESUME_BACKGROUND message to answer the
call-waiting call. However, if the remote end disconnects while the user
is answering, onCallTerminated will be called instead.

This change alters onCallTerminated to issue the EVENT_RESUME_BACKGROUND
message if it occurs in the middle of a call-switch.

Change-Id: Icb757274ad63af46ebff5028dc484f8497777987
Fix: 31684640
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
9cf07ae65ed86b9e79aaa74b66441f0811d9cc15 01-Sep-2016 Tyler Gunn <tgunn@google.com> Expand ImsPhoneCall logging and add updatePhoneState check.

Analysis of the logs for the associated bug has not revealed any reason
why that bug has happened.

1. Added a speculative fix to ImsPhoneCallTracker#updatePhoneState to
ensure that any pending MO call is also not idle when considering the
state to be off hook.
2. Added more logging to ImsPhoneCallTracker, and ImsPhone to help diagnose
the issue.

Bug: 31000943
Change-Id: I0713a7bd6e5c91fc458e67af530de0bcce8a7aee
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
68d7118dd596c2459c6af3eb531654aafa9fe602 23-Aug-2016 Tyler Gunn <tgunn@google.com> Remove one time sending of handover from wifi to LTE connection event.
am: 2d996aa606

Change-Id: I7ddab85cc9d84b5c1978340913ca0023060278c3
2d996aa6061c038ba69dbe3b9430c5164283db22 19-Aug-2016 Tyler Gunn <tgunn@google.com> Remove one time sending of handover from wifi to LTE connection event.

We will always send the event and let dialer filter it out.

Bug: 30837560
Change-Id: I3c40d8ee236bd5c27a8891f5c7b25a8fef0d4feb
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
9d20ef647af402d5929f572507953034cadfe278 19-Aug-2016 Tyler Gunn <tgunn@google.com> Merge "Fire connection events when call is remotely held and unheld." into nyc-mr1-dev
33290100c702ea8a1d4fcede360fc81e81bfccb2 18-Aug-2016 Tyler Gunn <tgunn@google.com> Fire connection events when call is remotely held and unheld.

Bug: 30349182
Change-Id: Icb94db6a8c146db7d4e63108cb19b16ea438f212
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
df0a189fcdf375cb6f0f1f533e20efec575d6c4e 17-Aug-2016 Tyler Gunn <tgunn@google.com> Send connection event on handover from WIFI to LTE.

Send a connection event when handover from wifi to LTE occurs for a video
call. This event is only sent once, the first time it happens.

Also added a test intent which can be sent to reset the preference.

Bug: 30837560
Change-Id: Iefc2c4024d4d1956e8a9153345b6c2892bd7c38b
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
2e7e09e79c04f34034bebea8f5d86606bb584577 13-Aug-2016 Tyler Gunn <tgunn@google.com> Add support for downgrade to audio when data limit is reached.

Fix the SUPPORTS_DOWNGRADE_TO_VOICE calculation in ImsPhoneConnection; it
was relying on signaling from the modem, which apparently doesnt work.
Instead relying on a carrier config option to set that value.

Adding logic in ImsPhoneCallTracker to auto-downgrade to audio and send
a connection event indicating why it happeend to Dialer. This is only used
when the carrier supports it.

Bug: 30702393
Change-Id: Ie7ed3ba8b8aa6c45391d9dd45c4bbf7fe8c957ee
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
2f9f55d539817926542b7db63a41d76badded853 12-Aug-2016 Tyler Gunn <tgunn@google.com> Drop video calls when data is disabled.

Handle dropping of video calls for one of two reasons:
1. User disables data.
2. User exceeds the data limit policy on their device.

In both cases, terminate any ongoing video calls. Ensures the correct
disconnect cause is propagated up to the InCallService.

Bug: 30702393
Change-Id: I36d236c8f69f9dc5b17368cc5329ac1df991fac4
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
508daf6f8286407cf34e32750148fad120009c13 10-Aug-2016 Tyler Gunn <tgunn@google.com> Add timeout for handover to wifi.

When we expect to handover a vt call to wifi, add a timeout to check to
be sure the handover did happen. IF it iddn't notify the Connection of
the failure.

Bug: 30697460
Change-Id: I243d4a063b5300cdf3b8e7fedddd4d747153af66
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
0b93f32c1bed6554f058b9f614a0435f7dbfe942 05-Aug-2016 Tyler Gunn <tgunn@google.com> Notify telephony when a handover from LTE to WIFI fails.

Also adding test intent which can be used to simulate this situation.

Bug: 30697460
Change-Id: Ic45708699bbeedbb58920373180ea63a8d65ad78
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
48208a24933a644261184f47517a6a8ed7d6fd54 03-Aug-2016 Tyler Gunn <tgunn@google.com> Add "SIP forbidden" as valid reason for call pull failure.

Vendor testing uncovered the fact that a call pull could fail due to a
SIP Forbidden error. Adding this disconnect cause to the pull fail logic
to ensure that a failure to pull due to this reason will result in the
call becoming external again.

Bug: 29906222
Change-Id: Ifab30cff23bb512731da0e16ea00e86c22d8226b
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
c10b7afb2e174246d7110db5cf2948129af4603d 27-Jul-2016 Brad Ebinger <breadley@google.com> Retry Connecting to ImsService if it is not up yet

When the ImsService crashes, there is a possibility of the
ACTION_IMS_SERVICE_UP broadcast getting received before the ImsService
is available from ServiceManager. This change introduces a retry timer to
try reconnecting the ImsService if it fails to bind.

Bug: 29891063
Change-Id: Id3d69d76630752f892ec80573d79f4da55c70395
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
db5b6a50186bc3fc8d42c50f4d23c91b05412ec6 22-Jul-2016 Tyler Gunn <tgunn@google.com> Handle video session modify responses while paused.

There is a limitation in the modem implementation whereby when the remote
party has paused video (eg sent dialer to the background) any session
modify requests which are sent are responded to, but the video state of
the connection is NOT updated until the video state becomes unpaused
again.

To handle this, ImsPhoneConnection will now listen for session modify
responses received via the VideoProvider. When paused, valid
responses to requests will be used to update the current video state of
the ImsPhoneConnection. When the video becomes unpaused, we will resume
using the modem reported video state.

Bug: 29381561
Change-Id: I1ac854dbc292affb3bc0bb9ce98b2fea33014cbb
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
cdcdab3863bfa009f50ab30569ec2eefb31d34d2 22-Jul-2016 Tyler Gunn <tgunn@google.com> Merge "Handle failure to pull an external call." into nyc-mr1-dev
3de018282cd7dae66d4dfff41303e81419d2004d 20-Jul-2016 Tyler Gunn <tgunn@google.com> Handle failure to pull an external call.

Look for two expected call fail causes which can occur if an external
call is being pulled, and the pulled ImsPhoneConnection disconnects.
These call fail causes are a signal that the call pull has failed.

We use this to trigger a callback which causes the TelephonyConnection to
swap the ImsPhoneConnection out for the ImsExternalConnection.

Bug: 29906222
Change-Id: I22e570ffd578ef5e474d6abaf5d89378bd17996c
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
d2b1b9dbc1f6a4fa960c9b5762f82e503cc37c27 18-Jul-2016 Amit Mahajan <amitmahajan@google.com> Store selfIdentityUris provided by IMS service.

Bug: 24613146
Change-Id: I337a84a2ed6a37eaa146f9abc2ad28c059ff37e5
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
c73180f29125d48e582e5104d65635601f0d296b 15-Jul-2016 Pankaj Kanwar <pkanwar@google.com> Merge "Enhance logic for determining if answering call will disconnect fg call." into nyc-mr1-dev
79de4402e6be40cbe9cef27d8378645957e4ec88 14-Jul-2016 Tyler Gunn <tgunn@google.com> Enhance logic for determining if answering call will disconnect fg call.

There is logic to determine if a FG video call should be disconnected
when an audio call is received. It was missing a check to see if VOWIFI
is enabled. If VOWIFI is not enabled, then the check applies. If VOWIFI
is enabled, the check does not apply.

Bug: 28933314
Change-Id: I57ace7583906bddb93f81735809a2e21069da380
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
a8f5a859f8e4a15902d729af5d2edc9a9433ba41 08-Jul-2016 Jack Yu <jackyu@google.com> Disable VT when users turn off data or hit data limit

Disable VT when users turn off data or hit data limit. If
there are ongoing VT calls, we'll need to downgrade them
to VoLTE calls.

bug: 27316521
Change-Id: I7988d0475583e7fec50888eaee1e5a0d4d5b8cc6
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
91c714c06cc426b4f1af05a758c4d560b16f6d24 11-Jul-2016 Tyler Gunn <tgunn@google.com> Finalizing Multiendpoint functionality.

1) Finish plumbing of PULLING call state.
2) b/29522023 - Handle case where the maximum number of calls across all
devices has been reached and a new call cannot be placed; report a new
Telephony disconnect cause which maps to an appropriate user friendly
message.
3) b/29633039 - Make the ImsExternalCallTracker keep track of the last
call pull state for each external call. Also, track whether the device is
in a call, and whether video is enabled on the device. Use this to enforce
the rules that an external video call cannot be pulled if video is not
enabled on the device, and that calls cannot be pulled when there is an
active call on the device.
4) Fixed a circular initialization dependency between ImsPhoneCallTracker
and ImsExternalCallTracker. Previously, the ImsPhoneCallTracker would
spool up the ImsMultiEndpoint service and set the ImsExternalCallTracker
as a listener. HOWEVER, the ImsEXternalCallTracker isn't actually
created until AFTER the ImsPhoneCallTracker is. It just so happens the
ImsPhoneCallTracker init happens on a thread, so ImsExternalCallTracker
would normally be initialized before ImsPhoneCallTracker. Whoops.

Bug: 29522023
Bug: 29633039
Change-Id: Iddabb61dcad79c93665c28e07b333e807cbc576d
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
6f62aeaeed40342a41a838245da92f9d6982aafd 08-Jul-2016 TreeHugger Robot <treehugger-gerrit@google.com> Merge "Fix incorrect call radio type on UI during silent redial" into nyc-mr1-dev
d45e0852699f073cb67ef957eadffd4e8130aff5 22-Jun-2016 Shriram Ganesh <sganesh@codeaurora.org> Fix incorrect call radio type on UI during silent redial

When handover takes place, the ImsPhoneConnection objects
attached to the handover call are not cleaned up until the call
ends on the CS pipe after handover. As a result, the stale object
keeps updating UI on the IMS registration state. This causes the
call UI to show WiFi call when the call is on CS. The fix here is
to clean up the ImsPhoneConnection objects as soon as they are
mapped to CS connections upon handover.

Bug: 29551456
Change-Id: Iafa668c29c9501d6c3845327a9b19458dbfdd84e
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
a2dfbf36ff4cea04078fccecdb7382bbbf5420ce 07-Jul-2016 Jack Yu <jackyu@google.com> Merge "Removed unused PII from TelephonyEventLog" into nyc-mr1-dev
c3ec7d484569eff5005ee31fe3c96dfc00b86096 07-Jul-2016 Jack Yu <jackyu@google.com> Removed unused PII from TelephonyEventLog

Removed the PII captured during call origination even
though it is not used or sent to the server at all.

bug: 30000046
Change-Id: I1f54fda0b4390c78dc6848b66d9a9ed19737ec7d
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
f8a97a03e91c81eee19420bcdf66a2305f0b4578 07-Jul-2016 Brad Ebinger <breadley@google.com> Fix NullPointerException in ImsPhoneCallTracker

Fixes a NullPointerException in ImsPhoneCallTracker.getVtDataUsage(). We
must first check that the VideoProvider returned is non-null.

Bug: 29998389
Change-Id: Ia3132a2e8c8f2c5d70528f89cd9af78c857382e5
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
4d4857b26a7bac1689fc28f20b5682a9a9fd26d0 01-Jul-2016 Tyler Gunn <tgunn@google.com> Merge "Properly handle multi-endpoint answered elsewhere disconnect cause." into nyc-mr1-dev
48921d863bf4d93c89071dfde4d44cd27fec6314 22-Jun-2016 Jack Yu <jackyu@google.com> Added VT data usage support

Store total VT data usage since boot up for NetworkStatsService
to query.

bug: 20888836
Change-Id: If2078bd85fcbe2838a17fc8b282a05317e94c3ff
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
8582f01cac98266bfd86c42e58eab3bf810328c4 16-Jun-2016 Hall Liu <hallliu@google.com> Set disable add call during video call extra from carrier config

Bug: 29047863

Change-Id: Ic32f01c40337eccd197cc2573f5a01f81b35f3ea
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
37c0d71f5221943f25a36613d52618b37126d1c2 22-Jun-2016 Tyler Gunn <tgunn@google.com> Update ImsPhoneCallTracker to detect situations where call will drop.

Add logic to set a property on incoming telephony connections if
answering the call will cause the active call to be disconnected. This is
tied to carrier logic which requires that a wifi video call is dropped
when an incoming audio-only call is answered. That same logic also
includes the provision that a call which has had video at some point in its
lifespan will be treated as a video call.

Bug: 29275420
Change-Id: Id9f58150a6bbd9894076913a880036a7e7fc6834
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
cf3a2925c10f87f4b6af0f3a1c369f57954f7733 17-Jun-2016 Pavel Zhamaitsiak <pavelz@google.com> Add missing null checks to ImsPhoneCallTracker

Also use CODE_LOCAL_ILLEGAL_STATE instead of CODE_UNSPECIFIED when
ImsManager is null.

Bug: 29386303
Change-Id: I9fcaecf033b9f3363fb849b2d64b9c2b8db20035
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
5deeeef8a7c8685abda3bdf00464bc2582c2b5c6 09-Jun-2016 Tyler Gunn <tgunn@google.com> Properly handle multi-endpoint answered elsewhere disconnect cause.

Two issues:
1. The "answered elsewhere" disconnect cause was mapped to "call pulled".
2. The "answered elsewhere" disconnect cause would be remapped as a missed
call.

Bug: 29236416
Change-Id: I4cb46a68079fdefd273c532b378e703c24ba7f4e
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
67f3535dbfa1e4ca1ed846dd649015e8bd1f7328 25-May-2016 Tyler Gunn <tgunn@google.com> Multi-endpoint changes.

Passing the EXTRA_IS_CALL_PULL extra directly into the ImsCallProfile.
mCallExtras; this is where the modem looks for it, not in the "intent
extras".

Adding unit test for ImsExternalCallTracker (still more tests to be added
in the future); this required adding a new interface to abstract away
some stuff that is needed for the tests.

Bug: 27458894
Change-Id: I24b20d13d5dfeb422295d80c0eec72800836ae74
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
1c23d391a314ffdb71874b06e9a0e54607208832 12-May-2016 Tyler Gunn <tgunn@google.com> Better handling of dialog event package numbers, and call pulling.

1. Remapping the ImsReasonInfo codes associated with pulling a call to
the DisconnectCause.CALL_PULLED cause. Note: This will need to be updated
in the future as there is a bug in the modem which remaps calls pulled to
the "answered elsewhere code".
2. Convert the dialog event package SIP URI to a tel URI and use that to
set the address on the connection.

Bug: 27458894
Change-Id: I197ce52f6a15df74dcc0c8609f74242b1af910bc
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
b25b43f0497f1a476598a0277e109f786ed3f817 23-Apr-2016 Tyler Gunn <tgunn@google.com> Move initialization of Multiendpoint interface into getImsService().

I previously had the setup of the multiendpoint interface in ImsPhone,
however at that point ImsManager was not yet configured.
I have moved the multiendpoint interface initialization into the
ImsPhoneCallTracker#getImsService() method (similar to the ECBM interface
setup).

Bug: 27458894
Change-Id: I2b2ba9637686bb01fb38e3195e60ae151bf9adb6
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
93da8529345711fd1a5617f3c8b15c0921eececb 15-Apr-2016 Tyler Gunn <tgunn@google.com> Wire up IMS framework APIs and call pull.

1. Wired up the IMS framework APIs so that the modem can inform us of new
dialog event package changes.
2. Wired up the call pull API so that calls to it make it down to an
ImsExternalConnection.
3. In ImsExternalCallTracker, listen to the call pull requests on the
external connections, and use this to trigger the actual pull of the call,
which is essentially a dial with an extra specified (per QCOM).
I abstracted away the idea of pulling the call using the ImsPullCall
interface, which ImsPhoneCallTracker implements.

Bug: 27458894
Change-Id: Idd20a95c2993b29dcd0a7e6c71fb6232cff88736
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
b3a89f53603f828acf1c8b530cedffe20e253d77 15-Apr-2016 Santos Cordon <santoscordon@google.com> Merge "IMS: During a call swap, handle the resume failure" into nyc-dev
afb0fad639cdaff9abb4d405e039bd61cd8d3cb6 26-Feb-2016 Anju Mathapati <anjucm@codeaurora.org> IMS: During a call swap, handle the resume failure

During a call swap, the active call is first placed on hold,
followed by the resume of the already held call. If this
resume attempt fails, then try to recover by resuming the
original active call.

Fix: 25498498
Change-Id: I9dc83e95e79fd04f9a080572ac861d30dd916c5c
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
2c7c4b693e6772342620c41e94b159bd495fa7c1 14-Apr-2016 Tyler Gunn <tgunn@google.com> Merge "IMS-VT: Set video call provider on call update." into nyc-dev
3652067799a38973435c8663ab9cdb2a8290e48f 06-Apr-2016 Garik Badalyan <garikb@codeaurora.org> IMS-VT: Set video call provider on call update.

VideoCallProvider is set upon creation of ImsPhoneConnection.
If creation of video provider is delayed in vendor code, e.g.
because UE is not video capable at that moment, then video
features will be disabled for the lifetime of that session.
This change checks and sets the video provider if it's not already
set upon receiving an update from vendor code.

BUG=25696226
Change-Id: I33bfde75726f64ead87f0b1e4b4005e4ddd90619
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
7a1c1b02c8603c2bf2f3b401facb389528180eed 08-Apr-2016 Pavel Zhamaitsiak <pavelz@google.com> Switch TelephonyEventLog from using ITelephonyDebug to ConnectivityMetricsLogger

Bug: 28026463
Change-Id: I3c4f14e8a6611f0cb5c52eb24573621d3a13c4cb
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
ffb90b77322fa64adbe79b976f1c16f3c9441753 19-Mar-2016 Amit Mahajan <amitmahajan@google.com> Change to release wakelock on ECM exit in ImsPhone.

Includes ImsPhone ECBM unit test.

Bug: 27378459
Change-Id: I71da054e303d0a88ee79b6429fc3a154121efe46
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
66c92257d2798059af324f6d20e8f8ff04d7e47d 21-Mar-2016 Tyler Gunn <tgunn@google.com> Merge "Rename carrier config option." into nyc-dev
cc8ea4abbe4f1f755dc5cf1b576d51ceb24fe79d 17-Mar-2016 Amit Mahajan <amitmahajan@google.com> Some more unit tests for ImsPhone.

Bug: 25691379
Change-Id: Iafbe34b0b7edc8a53c0607b46f5abf8618f3768a
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
9f5345c094210aa5d6606b7705a85a7bc17e831d 17-Mar-2016 Amit Mahajan <amitmahajan@google.com> Fix for failing ImsPhone unit test.

Bug: 25691379
Change-Id: I035cc0fb5c5ce17bfc111e1faf6ff41fd80b701f
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
517a9b682f976d9df627c2f4c05c7edb07fca3c3 16-Mar-2016 Tyler Gunn <tgunn@google.com> Rename carrier config option.

Renaming BOOL_ALLOW_EMERGENCY_VIDEO_CALLS to
KEY_ALLOW_EMERGENCY_VIDEO_CALLS_BOOL.

Bug: 27346047
Change-Id: I628075814510abfe9d2c0aecad3abd0069932bff
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
93c62c8a71821f46194e16ca3e84f95e101edb90 15-Mar-2016 Amit Mahajan <amitmahajan@google.com> More ImsPhone unit tests.

Bug: 25691379
Change-Id: I9d0c6c45def7cf60228ea86412cf38d55068a6ff
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
7dc57a87610b8f203605639338c5aca12886ec53 12-Mar-2016 Amit Mahajan <amitmahajan@google.com> More unit tests for ImsPhone.

Bug: 25691379
Change-Id: I32e96837df872eec6671b46f5e5d1b2b4a3bc665
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
6882f480d0141b3a111a340309147e74458f4eda 08-Mar-2016 Omkar Kolangade <omkark@codeaurora.org> Merge "IMS-VT: Update video state of the connection first." into mm-wireless-dev
am: 2e4144afaf

* commit '2e4144afaf7c62fb7cfacb094c94a63d6e32a8c7':
IMS-VT: Update video state of the connection first.
57d5bd9f23c9b380ddd205665758ece8784578a4 21-Aug-2015 Omkar Kolangade <omkark@codeaurora.org> IMS-VT: Update video state of the connection first.

Video state is used to determine if connection modification
happened. Delaying video state updates confuses other layers,
which use the video state notification to determine if session
upgrade/downgrade happened.

Bug: 27477899
Change-Id: Ibc5f89dc631625322b04f8f68686877a2b25999b
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
ecac744a4e585e3c7af95ffa06fa3e711131200c 02-Mar-2016 Amit Mahajan <amitmahajan@google.com> First unit test for ImsPhone.

Bug: 25691379
Change-Id: I61a2f0805220782e7dbebaf50604b596ef3ba24b
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
75ba09a17a669f4906268088a769836aa87d8241 19-Feb-2016 fionaxu <fionaxu@google.com> ImsPhoneCallTracker Test

bug: 25691379
Change-Id: Iaa258417cea39e82325fa812fc7b6fdce4bd5cfc
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
f4d5de98490b7b1a9dcea8df4e10a13315a71403 24-Feb-2016 Tyler Gunn <tgunn@google.com> Merge "Inform registrants of which connection started or stopped the hold tone." into nyc-dev
ad03bd3454a9dd0e8edb61b8794f07d8a26f8187 18-Feb-2016 Tyler Gunn <tgunn@google.com> Inform registrants of which connection started or stopped the hold tone.

When receiving a hold tone signal and informing registrants via
startOnHoldTone/stopOnHoldTone, also include the connection which initiated
the start/stop. This is necessray to ensure only the TelephonyConnection
which initiated a hold tone issues a Connection Event.

Bug: 25357778
Change-Id: I1590b61affb28c40173f08a8f6233d8efe6a5e6e
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
b456cd0d4709a7a4d6eb7f35394ebba00895b133 18-Feb-2016 Chen Xu <fionaxu@google.com> Merge "ImsPhoneConnection Unit Test" into mm-wireless-dev
am: 0c0e3fa5a5

* commit '0c0e3fa5a512ef858a0713bb2d4320ad05968b3a':
ImsPhoneConnection Unit Test
f9b150b221db15e88b97a0b9c0971ca3c71c0313 17-Feb-2016 fionaxu <fionaxu@google.com> ImsPhoneConnection Unit Test

bug: 25691379

Change-Id: I97709053f4f1265646c4b8a03c314b3fc88caf4a
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
f066553c79b2c022a238037f7182e4d60193375d 16-Feb-2016 Omkar Kolangade <omkark@codeaurora.org> IMS-VT: Update videoProvider in main thread
am: ee275ae7d4

* commit 'ee275ae7d45847e3eb84ce7725df3717d3addee3':
IMS-VT: Update videoProvider in main thread
ee275ae7d45847e3eb84ce7725df3717d3addee3 20-Nov-2015 Omkar Kolangade <omkark@codeaurora.org> IMS-VT: Update videoProvider in main thread

Setting video provider in seperate thread is causing timing
issues due to which media signalling is happening on
video provider of closed session. So, process merge complete
indication after video provider is updated to ensure that
media signalling happens on video provider attached with
conference imscallsession.

Bug: 27170551
Change-Id: I9a5ca67402effbf22135addcbd3be240d36669b8
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
0ae749285976deff6f73db0d414f36548c5682b3 09-Feb-2016 Tyler Gunn <tgunn@google.com> Fix issue where mSwitchingFgAndBgCalls was not cleared after swap.

The mSwitchingFgAndBgCalls flag is used when performing a call swap along
with mCallExpectedToResume to determine if if the call swap was successful.
The existing code in onCallResumed handled the case where the wrong call
has resumed, which indicates that the swap failed. It did not, however
handle the case where the call which was expected to resume did resume.
In this case the mSwitchingFgAndBgCalls was left set to TRUE.

In the case of this bug, after 2 swaps, a remotely disconnected fg call
would cause the bg call to auto-resume, which it should not. This is due
to the fact the mSwitchingFgAndBgCalls flag was left TRUE from the last
swap.

Bug: 26115831
Change-Id: I934f2eff54365b5e92b56299a6692857faf617bf
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
a8b33dee0bc27112a4c6cc9f8f733b03eb4ae3d0 29-Jan-2016 Pavel Zhamaitsiak <pavelz@google.com> Merge "TelephonyEventLog: Add some unit tests and missing log events" into mm-wireless-dev
9746fca2d7389f0fce6d5d031d87acd87b9de723 28-Jan-2016 Pavel Zhamaitsiak <pavelz@google.com> TelephonyEventLog: Add some unit tests and missing log events

Also some code cleanup and minor bug fixes.

Change-Id: I327566f8c3839bf64aebc4db0c6170ba2bd7de87
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
836576ff591cd4fcbfafbc89154009a6f587f070 27-Jan-2016 Tyler Gunn <tgunn@google.com> Merge "IMS:Exit ECBM before dialing pending non-e911 call" into mm-wireless-dev
791a8f50cc8af712c92c79b576a6c90326c1df60 27-Jan-2016 Tyler Gunn <tgunn@google.com> Merge "IMS: Notify supplementary service failed for call hold failures" into mm-wireless-dev
5326ba5f8e9488416fd7160680dc6b6319c6b00e 10-Oct-2015 Anju Mathapati <anjucm@codeaurora.org> IMS: Notify supplementary service failed for call hold failures

- We need to notify supplementary service failed in case call
hold fails.

Change-Id: I46548397e726f621776ea8f37dca0ad28af70554
BUG=26770582
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
e5c2995cec720cb3f0ba6609378574683770108d 10-Dec-2015 Anju Mathapati <anjucm@codeaurora.org> IMS:Exit ECBM before dialing pending non-e911 call

When the device is in Emergency CallBack Mode, then exit the
ECBM before dialing a pending non-emergency mobile originating call.

Change-Id: I22cf3540dbff7630203feca13c255e61ec2500d4
BUG=26719991
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
27e0378194d55fdcb23f4a3a85dc620a234b5855 25-Sep-2015 Anju Mathapati <anjucm@codeaurora.org> IMS: Display caller name for MT VoLTE call

Caller display name is not getting updated on UI if Telephony
doesn't receive the caller information in the first incoming
notification from RIL.

Update the caller display name received in the subsequent
incoming notifications from RIL.

Bug: 26718453
Change-Id: I706b08c0bdba199400d1fd6a7e8cd780878e495f
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
a57b6e419678ea9db7455cf4abc90b2f085e8852 15-Jan-2016 Amit Mahajan <amitmahajan@google.com> Merge "Send emergency call state change intent on emergency call start/end" into mm-wireless-dev
a579e9c631d70bb6dbd39283438212d5ff8f19c0 14-Jan-2016 Amit Mahajan <amitmahajan@google.com> Send emergency call state change intent on emergency call start/end

Bug: 24147407
Change-Id: I2517daf2bde95a95c68b2c74225fad7004bd73c5
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
5054dfa7fd9b0520d30a102ed5a2107af11590c8 12-Jan-2016 Pavel Zhamaitsiak <pavelz@google.com> Use TelephonyEventLog to send events to TelephonyDebugService

Send following:
- RIL Data call events
- RIL Voice call events
- RIL SMS events
- Service State changes
- IMS call events

Change-Id: I865d8852982aca03b770e8712aac707afecb0f79
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
c1b229b7389e4cd682452c8d662afa1b3af14345 30-Dec-2015 Jack Yu <jackyu@google.com> Reduced the radio log

Reduced the radio log by moving some to VDBG or merging few lines
into one.

bug: 25956251
Change-Id: I6a18b6f101ac5bb9aff40c2223fc72034e0cf5bf
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
dc3b93d59312b84dcfa776f7691f6a87462b45a2 29-Dec-2015 Jack Yu <jackyu@google.com> Added dump support to more telephony components.

Added dump support to Ims components and also improved service
state tracker dump support.

bug: 25955373
Change-Id: I295ac57be70303b072069dca70fd3b8827461cfc
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
31baa629e6d1afe981002be95d5287f23af46a67 11-Dec-2015 Tyler Gunn <tgunn@google.com> Merge commit '5e135330856f187b160cc0c235afc1aafdba2099' into mncvtdev-to-mmwirelessdev-merge-2015-12-10

Change-Id: Iee290e7651cf059cf660b056866337eb311738b7
1a87ab3d7170d618f048c4f5af8c7504a587aaa5 10-Dec-2015 Jack Yu <jackyu@google.com> Merge from master

Change-Id: Ifbd86600111d2c444031ff608fab62fb2ee4b236
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
08111609eb4e838de7bff4960bbbd7f9c54a060e 14-Oct-2015 Pavel Zhamaitsiak <pavelz@google.com> IMS: Fix ArrayIndexOutOfBoundsException

On some configurations IMS service is not reporting UT capabilities.
We should correctly handle such shorter feature capability list.

Bug: 24882289
Change-Id: I96a2c5d09b4e83bdcd5e8b31a5bb1446638757a5
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
4677e1d9088a0cc787112b5daa0b70896021920e 11-Sep-2015 Tyler Gunn <tgunn@google.com> Add early-bail in instant lettering cleanse method.

- This was a nit from a previous commit. Adding an early-bail in the
method which cleanses instant lettering messages.

Bug: 22779583
Change-Id: I76010fca96323284cc06e5cbe596218e30d59dcf
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
746b6b52a15b53ef141c18d1a5bbb13f5fa7d10c 11-Sep-2015 Tyler Gunn <tgunn@google.com> Merge "Escape carrier-specified characters with backslash for call subject." into mnc-dr-dev
21048a2bc97d932a3ddecdfd79003a03f34263ec 02-Sep-2015 Nivedita Sarkar <nsarkar@codeaurora.org> IMS: Decouple Call Extras from call state change notification.

Currently call extras are closely coupled with call state changes.
To propagate call extras from internal.telephony.Connection the
PRECISE_CALL_STATE_CHANGED event shall be triggered which is genarally
triggered when phone/call changes its state. This change removes the
above mentioned dependency by raising onExtrasChanged event when
changes in extras are detected.

Bug: 22329706

Change-Id: I7c0f5dc3229b2d7ae83d06a8e3fade45d1b62c90
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
5c0859c8c66d65f066fedf300ff75eee42114657 10-Sep-2015 Tyler Gunn <tgunn@google.com> Escape carrier-specified characters with backslash for call subject.

Added ability to escape carrier-specified characters with a backslash
in call subjects prior to sending.

Bug: 22779583
Change-Id: Iab68a1036238581a86dadccd969ffdc7e1a2fa52
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
c421278a6b58c0e38aac8106b38312e5a2961389 09-Sep-2015 Santos Cordon <santoscordon@google.com> Merge "Nullify mPendingMO *before* updating the call state." into mnc-dr-dev
e60eeda2d11680f919879d4fca2fc0f623fd546e 09-Sep-2015 Tyler Gunn <tgunn@google.com> Merge "Remove carrier-defined invalid characters from call subjects." into mnc-dr-dev
d6345bfe54d2fa3e1e8d6997cef73105be07f660 09-Sep-2015 Tyler Gunn <tgunn@google.com> Remove carrier-defined invalid characters from call subjects.

1. Look up a regular expression containing carrier-specific invalid
characters for call subjects.
2. If found, use reg exp to cleanse the call subject prior to setting
on the dial intent.

Bug: 22779583
Change-Id: I708468294e94d5959cd2fe0f605ec0515b6e2eaf
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
2770b0f5449670eadab1d68ea8d5fa4788f4704a 09-Sep-2015 Santos Cordon <santoscordon@google.com> Nullify mPendingMO *before* updating the call state.

The code used to null out mPendingMO after it send out the notification
and updating it's state. While mPendingMO is not null, update-state code
will always short-circuit to offhook so it is necessary to reset the
variable before updating the state (GSM & CDMA already do this).

Bug: 23530363
Change-Id: I0491b371d0de52d21fd6e0d96e2660c63c38fada
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
8bfa1b42f0ffebf33239546ceaf5d6f5ca813191 01-Sep-2015 Amit Mahajan <amitmahajan@google.com> Adding emergency call start/end indications in ImsPhone.

This is needed to correctly support emergency callback mode.

Bug: 23704763
Change-Id: I1983987b75e055d8acf99b9e628bbcabbd41c911
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
3ad4ada3da3377ecdc7857b681069c2e115b936d 14-Aug-2015 Tyler Gunn <tgunn@google.com> Merge "IMS: Call Extras Propagation To Network" into mnc-dr-dev
c02d6b7f2f48a291b42892424e6858f71c3d84a9 14-Aug-2015 Tyler Gunn <tgunn@google.com> IMS: Call Extras Propagation To Network

Adding the missing plumbing required for call
extras to be propagated to the network as part
of a Dial request.

Bug: 22685114
Change-Id: Ic5ed1757b23a0951f8fb0fb50a8d373336dc3a6b
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
6bb557b243f3fc9984b82319026519608ada2c9c 12-Aug-2015 Roshan Pius <rpius@google.com> Add delay between DTMF tones to meet carrier spec.

Carrier specifications require a minimum delay of 215ms between DTMF
tones that are sent out. So, adding a delay between the end of
processing a DTMF char and begining of processing of the next DTMF char.

BUG: 23064351
Change-Id: Ife7b9dfe99319cd3fd383034d8076dd475ad5fa0
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
58a8cae64aa40e07d31f2f31cdd9932df056d995 07-Aug-2015 Anthony Lee <anthonylee@google.com> Merge "IMS : UT Service Capability" into mnc-dr-dev
164cea0175c29fa2da4652253b1f3b3c03707c3e 15-Jun-2015 Anju Mathapati <anjucm@codeaurora.org> IMS : UT Service Capability

1) When UT is enabled, storing the value in
ImsPhoneCallTracker and retrieving the same
through ImsPhone

2) When service state is OOS, check the
UT capability. If enabled, then process
the dial request

Change-Id: I88a3c3ad544e876085f108b386eb57a3bc36b488
Bug: 21850717
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
c1d9e728264af06808d4374d39c71dd81642cafc 06-Aug-2015 Tyler Gunn <tgunn@google.com> Populate EXTRA_DISPLAY_TEXT for outgoing calls with a subject.

- Ensure call intent extras are passed into dialInternal, allowing the
RIL to know the subject.
- Set the EXTRA_DISPLAY_TEXT on the imsCallProfile to the
EXTRA_CALL_SUBJECT from Telecom.

Bug: 22685114
Change-Id: If5a2c2d505a1120cdb0a6560906fa8c20e5edeb9
Signed-off-by: Tyler Gunn <tgunn@google.com>
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
dcd076fab22ea9e9c96af5da03e04aaba7c57ee2 23-Jul-2015 Nathan Harold <nharold@google.com> am 13f146ab: Merge "Improve logging in ImsPhoneCallTracker.onFeatureCapabilityChanged()" into mnc-dev

* commit '13f146ab20a69f90cf9e7a58ae38767f5b875577':
Improve logging in ImsPhoneCallTracker.onFeatureCapabilityChanged()
915b8a421c34b0872c96199d4390a70d5a76ed98 21-Jul-2015 Nathan Harold <nharold@google.com> Improve logging in ImsPhoneCallTracker.onFeatureCapabilityChanged()

Change-Id: I839316f14bc53d2c4ec5a39112c6bed5263173c2
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
d242431c27d4a7af9f2de3c16e570a3fc4a963bb 20-Jul-2015 Tyler Gunn <tgunn@google.com> am ac464da4: Merge "Prevent preciseCallStateChanged from firing for media capabilities change." into mnc-dev

* commit 'ac464da4b52c34dc989d7356cba983a82f6d300c':
Prevent preciseCallStateChanged from firing for media capabilities change.
d8413260e889d5b4db43e652304553ed29fa3e41 20-Jul-2015 Tyler Gunn <tgunn@google.com> Prevent preciseCallStateChanged from firing for media capabilities change.

In processCallStateChanged, there was the potential for
"notifyPreciseCallStateChanged()" to be called, even if ignoreState was
true. Moved the code for invoking the precise call state changed
callback into the "else" clause of the conditional.

Bug: 22564433
Change-Id: Ib2a05bd5f592005d57623812c6cd40c2bfcbf253
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
593f6da2f72898a723f4423f174e83ceca691f03 16-Jul-2015 Tyler Gunn <tgunn@google.com> am 5299d996: Merge "Enhance ImsPhoneCall/Tracker logging and fix swap on bad state change" into mnc-dev

* commit '5299d9964976098ad5192474d485dbd02db9a0d4':
Enhance ImsPhoneCall/Tracker logging and fix swap on bad state change
5299d9964976098ad5192474d485dbd02db9a0d4 16-Jul-2015 Tyler Gunn <tgunn@google.com> Merge "Enhance ImsPhoneCall/Tracker logging and fix swap on bad state change" into mnc-dev
53ed80f4bd5b15ca9494a376f05c84f0ac79462f 14-Jul-2015 Anthony Lee <anthonylee@google.com> resolved conflicts for merge of d9c3a08d to mnc-dr-dev

Change-Id: I0df7348fbbca184c5da80a28f24e0751be036f16
707644d8250cc5c3c2287068a9df210d7eb3e863 14-Jul-2015 Tyler Gunn <tgunn@google.com> Enhance ImsPhoneCall/Tracker logging and fix swap on bad state change

ImsPhoneConnection:
- Added check in update() to ensure we skip the update if we are putting
the call into an ACTIVE state, but there is a pending request to
hold the ImsCall. This is really a bug in the RIL; we are NOT getting
the callSessionHeld callback when putting a recently formed conference
call into the background. Without this check, we end up detaching the
ImsPhoneConnection from the "background" ImsPhoneCall and attaching it
to the "foreground" ImsPhoneConnection, which causes a scenario where there
are multiple active calls at the same time. I will file a bug against
the RIL to fix this missing state reporting.

ImsPhoneCallTracker:
- in switchWaitingOrHoldingAndActive check for the case where we are
holding a foreground call and reset the flag indicating we're expecting
to see a resume. This wasn't causing the bug I was working on but I
can see how it might have undesirable effects.
- added some extra debug logging to help track down hold/resumes
- fixed some BAD logic in onCallMerged added in change ID
I94abbae37eb6773f1824c0e5c3a267d345610ada. This code was swapping the
ImsPhoneCall references for foreground and background directly in order
to ensure that the right calls were passed in to ImsPhoneCall#merge.
The ImsPhoneCallTracker assumes the ImsPhoneCalls mForegroundCall and
mBackgroundCall will always stay the same; ImsPhoneConnections are attached
and detached from these ImsPhoneCalls, but the original references must
stay the same. Fixed up that code to ensure it does what its supposed to
without messing up the original references.
- Added logState method which can be turned on via debug flag to periodically
dump verbose state of the calls tracked my ImsPhoneCallTracker. I had
a hard time figuring out what was going on and this helped a lot.

ImsPhoneCall:
- Added enhanced logging when ImsPhoneConnections are moved between the
foreground, background, etc calls. Also added knowledge of whether an
ImsPhoneCall is a foreground or background call so that logging can be made
more clear.

- After operations which change which calls are FG or BG, calling
ImsPhoneCallTracker.logState() which will log the full ImsPhoneCallTracker
state for even easier debugging (but only if the stop-ship flag is on).

Bug: 22173672
Change-Id: I704af9522a81ee036f290c7c723de4c3602229fd
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
d9c3a08d5958e5ced0c0c9f7aabf376a5fe59bb2 08-Dec-2014 Anju Mathapati <anjucm@codeaurora.org> IMS: Do not update connection state for onCallUpdated callback.

onCallUpdated callback is to inform updates on parameters of ImsCall
other than the call state. Updating the call state during onCallUpdated
is sometimes corrupting the connection state, especially during
hold/resume operation. Hence refactored code to not update state
of connection for call updated callback.

Change-Id: I55ed948fe3b5b03f8836b84d7952a39f97cd2a8a
Bug: 22170586
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
13fdc46cce53cd571fe19c69d944a5d597db9c55 07-Jul-2015 Anthony Lee <anthonylee@google.com> am e589ac93: Merge "Change conference connect time to ignore undefined connect times." into mnc-dev

* commit 'e589ac9330e28d0e7fb76fed963c8c846fff047b':
Change conference connect time to ignore undefined connect times.
8762e33ba987774e43aa9f4e216ebdb084d3a03e 24-Jun-2015 Tyler Gunn <tgunn@google.com> IMS: Supplementary services

- Propagate IMS supplementary services to telephony framework
- Introduce call forwarding history info.

Bug: 21725750
Change-Id: I43b281fe194e4a096dd057bb365cbf097d7be85a
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
03545e6c17da992dc0087fcd0db1262277e8da37 29-Sep-2014 Omkar Kolangade <omkark@codeaurora.org> IMS MWI Feature

Adding logic to propagate waiting
voice message count to UI.

Change-Id: I922d8ff3138aefdbf284b5ec9f84afcedaff59a1
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
08e9c4b483dac2cbf1b7fe4cbad22f003ff92bcb 31-May-2015 Shriram Ganesh <sganesh@codeaurora.org> MWI,phantom call,Suppl services

1. IMS MWI Feature
- Add new API to update waiting
voice message count, for UI
propagation based on RFC 3842

2. phantom call support

Supplementary services

4.Unsol supplementary service notification
- send unsol supplementary notification to UI
- add call history info

5. Add Error message in commandexception

6. Add getExtras method

Miscellaneous:

7. IMS: Update Connect time for dialing/incoming SRVCC calls

Connect time (mConnectTimeReal) will be updated only for ACTIVE calls
and it's not updated for calls which are transferred from DIALING/ALERTING/
INCOMING/WAITING to ACTIVE as part of SRVCC. Due to this once call is
ended call duration will not be updated properly in connection.

Update Connect time properly for DIALING/ALERTING/INCOMING/WAITING to
ACTIVE SRVCC calls.

Change-Id: I551e63840b6a63e0cbd97919d4b03d2a68334dbd
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
7ee3f31d9670662a3d4a652860396340b386c29e 30-Jun-2015 Tyler Gunn <tgunn@google.com> Change conference connect time to ignore undefined connect times.

- The existing code to get the earliest connect time for a conference
could potentially return 0 (i.e. undefined). Although I've not run into
this in my own testing, it is theoretically possible.
I suspect the reason that the connect time was being reset when starting
a conference is that one of the ImsCalls must be returning a connect time
of zero, which in Telecom is treated as "unspecified" (in other words,
no connect time specified, so use now).

Bug: 22089306
Change-Id: I79be11b67767650455600befbecf841ff8b87c09
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
025c01920e4cf357594379ef35fe89c715e3507e 23-Jun-2015 Etan Cohen <etancohen@google.com> Fix build due to merge of pag/217347 - "Auto-downgrade emergency vt ..."

Original CL:
Auto-downgrade emergency vt calls to audio when no carrier support

Change-Id: I21b486890b212a9733e8d40dab87575f66204f30
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
feb939eb46ace6d4f59576ad4ccfec53f181d5b9 23-Jun-2015 Etan Cohen <etancohen@google.com> Merge commit '8560465' into merge
f38f5932049a1afae94c1b12111310f0eb476436 29-Sep-2014 Omkar Kolangade <omkark@codeaurora.org> IMS MWI Feature

Adding logic to propagate waiting
voice message count to UI.

Change-Id: I922d8ff3138aefdbf284b5ec9f84afcedaff59a1
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
a39be34a8f36e16361ae9b920e02ca1237aea071 20-Jun-2015 Santos Cordon <santoscordon@google.com> am 03eab6e2: Merge "Plumb intent extras through to IMS Phone." into mnc-dev

* commit '03eab6e2e46c4efd1e9251b60013f6a4fb1b5e6b':
Plumb intent extras through to IMS Phone.
df0280231c51a24a0b66c24034827d7f73d6e1ac 13-Jun-2015 Santos Cordon <santoscordon@google.com> Plumb intent extras through to IMS Phone.

Bug: 21735451
Change-Id: I7c44a658b2585d272375c573bb31974109540bb4
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
81a37ae5a6809f3977102df29e4dfd8427572d73 11-Jun-2015 Uma Maheswari Ramalingam <umam@codeaurora.org> am 007b8ea2: IMS Conference changes

* commit '007b8ea24251ebb713780be787c069cedb3a4c6a':
IMS Conference changes
007b8ea24251ebb713780be787c069cedb3a4c6a 19-May-2015 Uma Maheswari Ramalingam <umam@codeaurora.org> IMS Conference changes

CL handles -
- refer failure for held call
- 4 way conference merge

Bug: 20224516, 20232100
Change-Id: I94abbae37eb6773f1824c0e5c3a267d345610ada
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
c67db11f3c5dfaed45769169ba507cab007d4403 31-May-2015 Shriram Ganesh <sganesh@codeaurora.org> MWI,phantom call,Suppl services

1. IMS MWI Feature
- Add new API to update waiting
voice message count, for UI
propagation based on RFC 3842

2. phantom call support

Supplementary services

4.Unsol supplementary service notification
- send unsol supplementary notification to UI
- add call history info

5. Add Error message in commandexception

6. Add getExtras method

Miscellaneous:

7. IMS: Update Connect time for dialing/incoming SRVCC calls

Connect time (mConnectTimeReal) will be updated only for ACTIVE calls
and it's not updated for calls which are transferred from DIALING/ALERTING/
INCOMING/WAITING to ACTIVE as part of SRVCC. Due to this once call is
ended call duration will not be updated properly in connection.

Update Connect time properly for DIALING/ALERTING/INCOMING/WAITING to
ACTIVE SRVCC calls.

Change-Id: I551e63840b6a63e0cbd97919d4b03d2a68334dbd
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
8560465c584604ff51ceb4492bb7daca023e7d52 28-May-2015 Tyler Gunn <tgunn@google.com> Auto-downgrade emergency vt calls to audio when no carrier support.

Where the carrier config indicates that video emergency calls is not
supported, auto-downgrade to audio-only on dial.

Note: This functionality is moved from telecom.

Bug: 20089489
Change-Id: Ib72f37fa036178c5b6bc315c23533d451f605eb9
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
6aa33188a3e6329d51551a4100fe37d430ab713c 05-May-2015 Etan Cohen <etancohen@google.com> More complete (including VoLTE/VT) debug information for IMS feature changes.

Change-Id: I0f053a9512d0df4ba113bf08eb64353d68fe9f30
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
52c1bebcaf545d679923ffbac870eb581faf2b13 25-Apr-2015 Anthony Lee <anthonylee@google.com> Add plumbing for merge failures and renable button. (4/4)

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

Bug: 20229905
Change-Id: I9a49b25b7ed08061db804e8afd01a0a34be7370c
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
28f0b85be9cddf2c3c9ef268e3bf2781747a66f2 15-Apr-2015 Tyler Gunn <tgunn@google.com> resolve merge conflicts of 5b326ce to m-wireless-dev.

Change-Id: I6327e47b036f9c0ad968e465b4b3f4d74038edd1
ce67e30bf7a91a3ff63f86020c2d91c248c3a71b 01-Apr-2015 Tyler Gunn <tgunn@google.com> Prevent merging conference calls hosted on peer device.

With IMS, the "multiparty" bit on an ImsCall is set to "true" when a call
is merged into a conference. This not only occurs on the device hosting
the conference call, but also on the devices of the callers merged into
the conference.

This CL adds code to propagate changes in the multiparty state of a call
from the ImsCall up to the ImsPhoneConnection.

Bug: 19478784
Change-Id: I51b84731dbc77a235d2602db751af016e6c397ea
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
288268d5528e0df03f348e303954813cb188c55b 24-Mar-2015 Rekha Kumar <rekhak@codeaurora.org> IMS-VT: Propagate video capability of phone to telecomm.
To dynamcally enable/disable Make Video Call button in dialer,
the phone capabilities need to be propagate to TelecommMgr.
Propagate video capability of phone to telecomm layer.

IMS-VT: Notify call updates
-When call type is updated from VoLTE to VT, this notification
does not reach UI. Fix this

Fix the issue - Unable to add second VT call when first call is active
- Cache the video state of the new pending call when the foreground
call is HOLDING.
- Use the cached video state when dialing the pending MO call or
accepting the pending MT call after the first call is put on HOLD.

Ims: Add support for WIFI network mode notifications
Added support for enabling and disabling features for Voice and
Video when network mode is WIFI or IWLAN

IMS-VT: Peer capabilities
-Add support for peer capabilities
Change-Id: I44177dd6804b69a7b790021502eda0eb3bea3cab

IMS-VT: Do not allow changing the TTY mode during a Video call
When the device is already in a video call, the user SHOULD NOT
be allowed to change the TTY mode. If the user tries to change,
then an UI alert message will be displayed explaining it cannot
be changed during video calls.

Propagate the call substate changed message to the UI

Notify video capability to listeners in certain new scenarios
- In certain cases, we have seen that when the phone
object is deleted/re-created, we fail to notify the
video capability to the listeners.
- There also seemed to be a race condition when the
time a listener registers is not in sync with
the time we are notified of the video capability.
- In order to fix the above two issues, we notify
registrants when a new phone is created and
updateParentPhone is called. Also, when a new
registrant registers with us for video capability
changed, we immediately notify them of our cached
capability.

Change-Id: Ic6002c2518104c20b5de10d1081af4559f506ace

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

Change-Id: Ia1155960492165cff7f4993a4bf98ecc920ebf41
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
e51d918511afab905399d9fda7f51442f15bd8a7 12-Mar-2015 Pavel Zhamaitsiak <pavelz@google.com> When Wi-Fi calling is available display SPN as SPN+" Wi-Fi"

Bug:19681794
Change-Id: I2859d4d26c3103d9900befc6f5fe4aa50c6eadb7
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
53f2bb9ba3118ff4c22e20ab3ad46ec97a72ac24 06-Mar-2015 Pavel Zhamaitsiak <pavelz@google.com> Show notifications in case of some IMS Registration errors

Change-Id: I3aded2ee422f070f19399bd3f6f56bf4f6f7272c
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
0ba5c4a978fba0c15c8539c790a3ae1793bd99e3 04-Feb-2015 Rekha Kumar <rekhak@codeaurora.org> IMS: Ims Registration and Handover error codes support

- Support for IMS registration error code and error message to be
passed to UI.
- Propagate the call session handover info to the UI
- Show the error message as a Toast on the UI
Change-Id: I8b53d14c8f151e19496608504918cd79150a35e2
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
04b0216a5f64b70ec4b06f129946fff4ef359878 23-Feb-2015 Andrew Lee <anwlee@google.com> Update internal telephony connection's wifi state.

When the ImsPhoneConnection is updated, pass the state of whether it
is using Wifi to the Telecom Connection. This is done by checking
changes to a Connection's feature capabilities to see if
isVowifiEnabled.

This is a temporary measure. In the long run, this information will
be passed up on the ImsCallSession, and we will need to listen to
WFC handover events.

Bug: 19151548
Change-Id: I53c84cb0169abd72c35407ca3e77952bac30d656
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
62a2b2f341be6130e4022b487648ff2fee06db8c 14-Jan-2015 Libin.Tang@motorola.com <w16529@motorola.com> IMS: add api to indicate the current availability of IMS call on IWLAN.

Also add the WIFI only handle.

Change-Id: Ia96d8a3a6e3146603b76760cec02593bf5f1e3b6
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
fd2305639e3761c2bf3213463c4f17cc8310f4d0 29-Jan-2015 Tyler Gunn <tgunn@google.com> Fixing conference merge where only one party is added to conference.

- added "swap calls" flag to the onCallMerged listener. This is used
to indicate that the fg/bg calls need to be swapped after the merge.
- changed how we get the connect time for the conference. This is now
stored when a conference merge is started (required because of the delaying
of merge complete; one of the calls is already non-existent at the time
we want to get the connect time).


Bug: 18960042
Change-Id: Icc4b60756d333373fe181612824b0c13c076408b
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
3588d6ddff39416a909260e284ba2c0cbfdf4fe3 23-Jan-2015 Pavel Zhamaitsiak <pavelz@google.com> Merge "IMS:silent redial/srvcc call cleanup." into lmp-mr1-dev
69e989aceb5660b39932049daad2299f75f07201 20-Jan-2015 Libin.Tang@motorola.com <w16529@motorola.com> IMS:silent redial/srvcc call cleanup.

When silent redial or srvcc occurs. the IMSPhone call state is not set to idle
even after the call is ended. Also, the mConnection in mHandoverCall is not
cleaned up. This CL is to fix these 2 issues.

Bug: 19035679
Change-Id: I6bee704e2d7d8bf05ca1a910d25af4a02347328b
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
990c42d788cb2f39cd7a6ddd97e5ebdefb298f75 21-Jan-2015 Libin.Tang@motorola.com <w16529@motorola.com> Fix the issue that Volte call is not cleaned up properly from telephony
framework when call failure is notified through dial command response.

Bug: 19054326
Change-Id: I09feb74b36244fed05a59bb1e11bb32e08fa63cf
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
90d3640600ab3b80bd7a6f878e24bb764f0b08a1 23-Jan-2015 Pavel Zhamaitsiak <pavelz@google.com> Merge "Add an API to access the CDMAPhone/GSMPhone call tracker state for DCTracker to check" into lmp-mr1-dev
b79f845a0451895b0f0b8a926a8571511d476ce8 20-Jan-2015 Libin.Tang@motorola.com <w16529@motorola.com> Add an API to access the CDMAPhone/GSMPhone call tracker state for DCTracker to check

As concurrent voice/data is not supported for all RATs, the DCTracker checks
the default phone's call state through getState API as one of the conditions
to set up data call.
For device supports VOLTE, the default phone's getState reflects the
default phone(CDMAPhone/GSMPhone) and IMS phone call state.
So the data call can't set up if the VOLTE call is in progress.
As IMSPhone call state should not impact the data call setup, this CL is
to add an API to access the CDMAPhone/GSMPhone call tracker state for
DCTracker to check.

Bug: 19090488
Change-Id: I96bb29f80d81fa6b39e2e05f1d7f47a72244ed9b
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
c7c2aff39afb425b34ea6cc17d172cc28f5ab4f0 15-Jan-2015 Tyler Gunn <tgunn@google.com> Fixing resume of FG call after failure to merge IMS calls.

The problem was due to a bug in switchWaitingOrHoldingAndActive. When
we start a swap between FG and BG calls, a flag mSwitchingFgAndBgCalls is
set so that we can detect situations where the swap fails and "unswap" the
calls.

The original switchWaitingOrHoldingAndActive which occurs when dialing out
the new call to add to the conference was failing to toggle
mSwitchingFgAndBgCalls back off because no onCallResume is received (this
is where the flag was turned off in the past).

To fix this I reset the mSwitchingFgAndBgCalls flag when we get an unhold
and do not request a resume.

Bug: 19034876
Change-Id: If9f2360bbf3d7294b856ab021e3a0a8c46f2d928
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
52c193f0c615a9153a702ea2597217202613e413 10-Jan-2015 Libin.Tang@motorola.com <w16529@motorola.com> IMS: fix ImsPhoneConnection wakelock stuck
Bug: 18965642

Change-Id: If708a0cde665fd9225138bf07db7d27e2cd36709
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
af622caecc38ae80d7d5d3128c3896068d78baf3 23-Dec-2014 Pavel Zhamaitsiak <pavelz@google.com> Merge "Uses TTY mode and VoLTE over TTY support to determine call type: IMS or CS." into lmp-mr1-dev
bd4bb4f2250463ba59dc98be649f6aa4df9fb682 18-Dec-2014 Libin.Tang@motorola.com <w16529@motorola.com> IMS: add the api to get IMS registration information.

Bug: 18668325
Change-Id: Id5b0ed420990bde44b3525c7ec22eb37827d649c
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
f1099a9dfe0250a6b343de0646413db4034381de 15-Dec-2014 Etan Cohen <etancohen@google.com> Uses TTY mode and VoLTE over TTY support to determine call type: IMS or CS.

Bug: 18593974
Change-Id: I5a993688ade0269bcf3ca61c69cf9c274e694a13
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
de2242679c927ed9c46fa42f40162b113e337112 10-Dec-2014 Omkar Kolangade <omkark@codeaurora.org> IMS: Detach disconnected connections from its parent

Detach disconnected connections from its parent once
the call is ended

----------------------------------------------------

IMS: After SRVCC handover, disconnect the dropped IMS calls

After a successful SRVCC handover, disconnect the handover pending
or dropped IMS calls, if any

Bug: 18777284
Change-Id: If4899c70c587c70b8202559b3fe0027ecd166f21
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
6d91e295add44a5b7e611cb51401a20b3caa6571 11-Dec-2014 Pavel Zhamaitsiak <pavelz@google.com> IMS: Notify about change of TTY mode of other call participants

Pass notification to Phone app

Bug: 18247323
Change-Id: I975a93909dc02cc211e956667f5efb2ca3f330bb
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
5d1d2d7c9f7a3b0d09269b2a6fe8a76d4cdd0f4b 11-Dec-2014 Pavel Zhamaitsiak <pavelz@google.com> Merge "IMS: SRVCC related changes." into lmp-mr1-dev
4be56374921b52d54b80889540d982f39d26e3ab 09-Dec-2014 Uma Maheswari Ramalingam <umam@codeaurora.org> IMS: SRVCC related changes.

1. Telephony: Multiparty srvcc

Change-Id: Ie689f31d7970ecf3a5008cf1dad450045d0b34db

2. SRVCC: Add support for incoming call SRVCC

Transfer connections from ringing call to handover call on getting
Handover Complete notification. This allows for accept to be done
on the default phone instead of IMS phone after SRVCC. Set the
state of ImsPhoneCall object to Idle after the transfer.

Change-Id: I09cfcc9fc99b3ea4b3a4bd332af546bcfae4b679

3. Add support for SRVCC conference call

Add support for updating the parent of handover connections to
point to handover call.
Update status of the handover call object based on the status of
foreground, background or ringing call.

Change-Id: Iacd7daa929d0da9a0e020491669165aa42bed144

4. Add support for SRVCC connection clean up in Ims Service

Added support for SRVCC connections to be cleaned up in the IMS
Service by calling close opertion on the call session and
subsequently removing the call session from list of tracked call
sessions

Change-Id: I850ab111c884bbe7698810b15d0e9c8bdb10e8c9

5. add null check when add all srvcConnection

add null check when add all srvcConnection

Change-Id: I3bc93a301584e7fc16ef5aabf474bd1577402d22

6. IMS/911: Do not clear handover connections on SRVCC COMPLETE

Even though SRVCC or silent redial is successful, the handover connection
objects are cleared before migrated to CS domain. Proper checks are added
NOT to clear the handover connection objects as they are removed as and
when a new driver call via CS pipe is received and processed.

Change-Id: I061fa81e651b4c6b6bdea1f1cf0b09dde39fdb4a

7. Add fix for picking correct Handover connection

A single handover call cannot track both the foreground and
background call state after handover.

Added support to go through all the handover connections and
pick the first match based on the number and if there is no
match check the state.

Added support for tracking the state of call associated with
the connection before handover. This is used to retrieve the
correct connection based on state.

Change-Id: Iec87c09523d459998d0880252a71f98eb8e296a2

Bug: 18559588
Change-Id: I0c428b33e09684fc7f33f0abd7f9c0471961ad1f
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
d9aa1a75304b1c04c352198b9269f40a2a059f74 09-Dec-2014 Andrew Lee <anwlee@google.com> Pass Message to sendDtmf, notify postNotify.

+ Use ImsPhoneCallTracker's sendDtmf method instead of the commands
interface.
+ Echo GsmConnection/CdmaConnection in notifying post dial listeners
after the post dial state is updated. Otherwise, the post dial dialog
is not shown.

Bug: 18643493
Change-Id: I9db13a673bd022bf3949a268f5f54f2c8f2511fc
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
77b812e71c7d2e434a90a777cf2b608e9db3bc61 09-Dec-2014 Tyler Gunn <tgunn@google.com> Merge "Cannot swap active and background calls after failing to merge." into lmp-mr1-dev
c204cc0f515864b36187d60f6ab79af28885d36e 06-Dec-2014 Uma Maheswari Ramalingam <umam@codeaurora.org> IMS: start and stop dtmf tones.

Support of start and stop dtmf tones in Imsphone

Bug: 18371919
Change-Id: I9dec982035e8fdffcd198685caecceffb7e9f406
CRs-Fixed: 751797
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
276bc50374a46461b334fef28fdf07b536d96c71 08-Dec-2014 Tyler Gunn <tgunn@google.com> Cannot swap active and background calls after failing to merge.

When a conference call merge fails, an attempt to swap between the active
and held calls will fail; resuming the bg call fails. The problem is
switchWaitingOrHoldingAndActive swaps the FG/BG ImsCall references before
getting positive confirmation that they suceeded.

1. When initiating a call swap, keep track of the call we expect to
resume. In the resume success method, check if we resume a call other than
the one we expect to. In the resume fail method, check if we failed to
resume the call we expected to. In both cases, switch the FG/BG call
references back to ensure that state signaling is handled properly.
2. Trigger a notifySuppServiceFailed on the phone to report that the
resume failed; this is used by Telephony to display a failure message.

Bug: 18656014
Change-Id: I8e67389601861a933c648ca876d4e8a12ef54fee
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
bc28f0884cc08e06afdb34a9068faa4334323338 02-Dec-2014 Tyler Gunn <tgunn@google.com> Merge "Cleanup to remove misused CallGroup concept." into lmp-mr1-dev
0db65ec818e58fb5b83a492e082db4536f3b83e0 01-Dec-2014 Tyler Gunn <tgunn@google.com> Cleanup to remove misused CallGroup concept.

- Removed call group references in ImsPhoneCallTracker.

Bug: 18588383

Change-Id: I2128a978299dd7030c98c01f3e4c27ad15fbfa14
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
53dde7e076954c250e55d156cc1df1202c3a8a9e 27-Sep-2014 Etan Cohen <etancohen@google.com> MSIM IMS: convert to phone ID based selection.

Bug: 18576822
Change-Id: I2dea8ef3cb897fc2f8b7798937319df06b33701c
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
d3b1fc2d1f7de07a947c7bcaad1c44b5021ceac9 20-Nov-2014 Andrew Lee <anwlee@google.com> Merge "Return MERGED_SUCCESSFULLY as a disconnect cause." into lmp-mr1-dev
8f37dc99700424c41ec46960f33852f2a89683db 18-Nov-2014 Etan Cohen <etancohen@google.com> VoLTE over CDMA phone: when FG call terminated by remote do NOT unhold BG call

Matches GSM and VoLTE over GSM. The BG call is restored but stays on hold.

Bug: 18375108
Change-Id: I8ac65a9b0070b98235ccc53f9de366a84a8f07da
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
f885059bcd0c294e9830bfe5aeb16974c0717fa3 13-Nov-2014 Andrew Lee <anwlee@google.com> Return MERGED_SUCCESSFULLY as a disconnect cause.

If a call was merged, change the disconnect cause to
IMS_MERGED_SUCCESSFULLY instead of NORMAL (because it was not
actually terminated as the result of a remote disconnect).

Bug: 18291234
Change-Id: I4cff83ace2aaa6062f4e182e9ac0f441bf77a23a
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
4e47e27d1d2cbd8e533cdd2081c5bc8e51b79ad9 16-Nov-2014 Anthony Lee <anthonylee@google.com> Register for supplemental service failures in CallManager.

This is to enabled the plumbing for us to show the user an error
message when conference calls fail to merge.

Bug: 18080792
Change-Id: Ie301eac647967cbd38e66c7cdd1cb333b99adb45
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
f53559f13dc272115f27f3b23955933da45ce127 04-Nov-2014 Tyler Gunn <tgunn@google.com> Conference event package performance improvement.

- Instead of sending each participant to the telephony conference
controller, all participants are sent at once. This way the conference
only needs to be recalculated once.

Bug: 18057361
Change-Id: I2e81a14ac6ad2858cf70d98ba0b7e14f0bd55cb5
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
b52ad26bd96320f47a3157ba13d080ab71522a15 31-Oct-2014 Anthony Lee <anthonylee@google.com> Merge "Changed the prototype for onCallMerged." into lmp-mr1-dev
9511319220e2596c02b65d2cab0ca34cbec30b99 29-Oct-2014 Libin.Tang@motorola.com <w16529@motorola.com> IMS: fix auto-resume behavior for remote hangup on Volte call made on
carriers that also supports CDMA.

Bug: 18120718
Change-Id: Ib39c9e04247886786950acf84b84fe4517cb176f
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
e0edd708029cd6154101437051e3068a75675ee0 30-Oct-2014 Anthony Lee <anthonylee@google.com> Changed the prototype for onCallMerged.

The removed parameter is never used and it actually doesn't make
much sense as the layer that calls this callback doesn't have
any sensible second call to return to the handlers.

Bug: 18056632
Change-Id: I4abe92c020f64692370d9ab309e0d12877bdbb06
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
fdca22cc56b0e1ef1504e36a5aacb2ebbc4d146c 28-Oct-2014 Tyler Gunn <tgunn@google.com> Communicating participant changes to conference controller.

- Add event handlers to pass participant info to conference controller.

Bug: 18057361
Change-Id: Ifdd2d871994fc6e347f54d1e69686f7c68a7d6b0
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
f1227d71324a4d1916c3fd441ca688cc76129583 18-Oct-2014 Libin.Tang@motorola.com <w16529@motorola.com> IMS:Re-Initiate Conference Call from Leaf Node Causes Conference Call Crash.

During conference call, if there is an incoming call and user accepts it,
the ims FW triggers two accept commands since ims FW triggers the onCallHeld
multiple times for conference call.
The multiple accept commands causes the ims ril to respond failure. As the result,
the call drops and also crash occurs.
The fix is to block the multiple accepts in ims FW layer.

Bug: 17606426
Change-Id: I89904d4c64dad0d19398f74408ddc177f59c40ce
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
3b2b1bd2293667d4de32920cdad2c19f77777e2f 18-Oct-2014 Libin.Tang@motorola.com <w16529@motorola.com> IMS: fix Missed call notification not shown.

Bug: 18012896
Change-Id: Ifff83c401171de7317ab93359174df357779c38a
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
5fbf6bed80437e092a93e6137de56e6b409910b1 17-Oct-2014 Etan Cohen <etancohen@google.com> Added log to clarify cause of incoming call termination: rejected or missed

Change-Id: Id59630b6fefb50bc4320622f79ca70a7459ba28b
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
f8a5a95e21d2844193b9f9ce91fbee379df84504 13-Oct-2014 Libin.Tang@motorola.com <w16529@motorola.com> IMS:autoresume the holding call to simulate CDMA network behavior
when default phone is CDMAPhone during voltecall.

Change-Id: I8bc363c0f3e9385d14c4a067ae055069e41081c1
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
b7aff911e1106eb2eb16fd2bafae0ed8f4d4d4f7 14-Aug-2014 Shriram Ganesh <sganesh@codeaurora.org> Ims: Send user selected TTY mode to lower layers.

Irrespective of whether TTY device is connected or not
send TTY mode setting to modem whenever user changes it
from settings.

Change-Id: I6f6b82e3bb7fd326f71b0aabf4c1098a06c8941c
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
dc2b5d1c32cad5269106d00fd106bd64097238f4 11-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: I2fa094034f8a32ac887a6f653ba6d40d7a1761e2
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
97fba207643a87dd718395010a98ded3e809a3d7 12-Sep-2014 Libin.Tang@motorola.com <w16529@motorola.com> IMS: release the imsphoneconnection wakelock when handover occurs from volte to cs.

Bug: 17469563
Change-Id: I3652de773da0398cb9d7455d0c82e6c9504171af
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
17e77849f88cf20dc5a28aeede66b839fbbdb831 03-Sep-2014 Uma Maheswari Ramalingam <umam@codeaurora.org> Add null check for IMS Connection when conference call ends

Add null check before accessing ImsConnection object when
conference call is ended as findConnection() may return null
when there is no connection associated with the call object

Bug: 17332291
Change-Id: I3b74277b20f3a26c1b026bfa15ef4d368fb6f8af
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
bc0406859056e2de6d36cbddf39e15fcfa8155b0 24-Aug-2014 Libin.Tang@motorola.com <w16529@motorola.com> IMS: fix missed call notification not shown.
Differentiate the missed call/rejected call during onCallTerminated callback.
Also remove the onCallTerminiated from onCallStartFailed as
onCallTerminated should be triggered by the vendor ims.

Bug: 17142654
Change-Id: I107717c21f7da89e945cf74d14fbe2d2d24f94b3
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
2e081b3f9e8cfaae482a08cb885b6f79a39f5a4c 24-Aug-2014 Libin.Tang@motorola.com <w16529@motorola.com> IMS: modify sendDtmf to pass char input since vendor ril will translate the
char input to int.

Bug: 17282921
Change-Id: If30470868db4fb50154cf84f56aecd6daef7ddd5
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
ac82d4da0473991006a752e2337ccb93e85f0946 22-Aug-2014 Etan Cohen <etancohen@google.com> Fix crash on hangup: Runtime exception thrown rather than CallStateException

This is still an invalid state to reach to. However, all other invalid states
in this routine also throw CallStateException.

Bug: 17205457
Change-Id: Ib8c958a49f303f6babfeceeb900090a57116a17b
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
cf91ae7acc62eba22d9e652e5de5fb90a89e2ac8 19-Aug-2014 Libin.Tang@motorola.com <w16529@motorola.com> IMS: add isVolteEnabled/isVtEnabled based on registrationFeatureCapabilityChanged.

Bug: 17182366
Change-Id: Ib203320c6fdb2242263c526b1d73c8c8bce2f1e4
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
77c77080eaf88cfc55eb16bff6fd2788817a6896 13-Aug-2014 Libin.Tang@motorola.com <w16529@motorola.com> IMS:fix phone crash caused by null pointer access.

Change-Id: Ie98a8fcfa3488f9cce0a09c358e9f2297c7f5a42
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
d5c5a168b4f5806701a4d146309c996acca7183d 08-Aug-2014 Ihab Awad <ihab@google.com> Final structural tweaks to Telecomm API (6/8)

Bug: 16416927
Bug: 16494880
Change-Id: I6cd739b0fe525038ace0f213b05732e0cd95902a
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
7ea29fc7651195bbaf67028413278898a898ac00 12-Aug-2014 Tyler Gunn <tgunn@google.com> Add null-check when setting up ImsVideoCallProviderWrapper.

Bug: 16886403
Change-Id: I55b996fc3ef1ef37310565984eef3ae993844b9d
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
ea8cb63201520592011a92849ad3661d22776c87 08-Aug-2014 Andrew Lee <anwlee@google.com> Set VideoCallProvider on IMS connections.

Bug: 16886403
Change-Id: I912807f4dc7fce5b80c642d6275f3ad04af498e2
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
04e36a78936967df68d9175ac09dd3f087727888 01-Aug-2014 Uma Maheswari Ramalingam <umam@codeaurora.org> Add ECBM functionality for IMS

Code for adding ECBM functionality for IMS.

Change-Id: I2833c81baf0a55a18ac6433c47fd76bad7cf0ec9
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
a89314bcc94c43512299131609feea0c2c8167cf 01-Aug-2014 Libin.Tang@motorola.com <w16529@motorola.com> IMS:incoming call drops due to MT call intent delivery too late.

Change-Id: I9f0e8f3ac2bdaf7bff9d1a198f3b134386bf6d69
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
eb37adebf70275a8d8e5f2478637a66a44e71de8 28-Jul-2014 Andrew Lee <anwlee@google.com> Update VideoState references.

Bug: 16629892
Change-Id: I243b304d5b61ed530b965eab2abb9bfbd02893d5
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
2999afbcfeab69bf7473e1b9bcabb1c9c6935b19 21-Jul-2014 Tyler Gunn <tgunn@google.com> Various IMS changes. (1/2)

1. Passing through videoState to acceptCall in ImsPhone and below.
2. Fixing issue in GSMPhone where IMS calls are always dialed as
audio.
3. Adding setter on android.internal.telephony.Connection for
call video provider and passing through to telecomm.Connection

Bug: 15893156
Change-Id: Id7a53807873add408d59452e1b79cfa748f972e8
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
64e62340aae85179a6468ccac4a401900eb4dc2f 18-Jul-2014 Tyler Gunn <tgunn@google.com> Adding videoState to telephony connections.

- Modify base telephony Connection to include abstract getVideoState
method.
- Override in CDMA, SIP, GSM connections to return AUDIO-ONLY.
- Override in ImsPhoneConnection to map from ImsCallProfile to
VideoCallProfile vidoe states.

Bug: 16285417
Change-Id: Icdf9ea3ae21475964f454ca4c92ab54791cb86aa
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
9f9aadee921db335adc891412a6e1e828153cfc6 12-Jul-2014 Etan Cohen <etancohen@google.com> MSIM support for IMS

Added support to handle IMS in MSIM scenarios. Supports an ImsService interface per
subscription.

Note: These individual ImsService interfaces can be implemented on a single or multiple
IMS stacks.

Change-Id: I6d4ce7dd1cc6f75f89a41951ef8fce78afde811c
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
6bbcbfd62c9aa5787e7c33936e2246ff05b59d58 08-Jul-2014 Tyler Gunn <tgunn@google.com> Adding support for specifying videoState in dial methods in Phone.

In ImsPhoneCallTracker, wired up dial to start a call with
the correct IMS call type.

Bug: 16014224
Change-Id: If131529fee7eb03e63fa445d04e15246e51967be
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
bd4d6093314c0d2afc4b4f69f352957d01d9bc58 29-May-2014 Uma Maheswari Ramalingam <uramalin@quicinc.com> Handle CallMerge Fail scenario

Handle Call Merge Fail scenario.

Change-Id: I0042d655f781d98b5b2db568885906a3a1b1dbc8
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
a8467dd0c524787104b1ccdddc5e8af10ba729ed 13-Jun-2014 Wink Saville <wink@google.com> Merge kwd to master

Change-Id: Idb607c0aa32f80fe4fe1539aedea7a221e9e7f04
/frameworks/opt/telephony/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java