History log of /packages/services/Telecomm/src/com/android/server/telecom/Call.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ad18dc9e336c73922192e1693a836781cff6c929 15-Feb-2017 Hall Liu <hallliu@google.com> Accept timeout from apps requesting call disconnect

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

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

Bug: 34474757
Test: manual, unit
Merged-In: I3121dcaf973a10043ffcaa0c8251aa21e18d027e
Change-Id: I1b535f17aefffe423cfbc2cb1d42352e8f4b57f0
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
d5d98841d71dc33255503b04504e805b4f55b1e7 07-Dec-2016 Hall Liu <hallliu@google.com> Fix tests for CallAudioRouteStateMachine

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

Test: unit tests
Change-Id: I688592bf68187b2dda7bc1f02009e3fb360ea0ab
Fix: 33252757
(cherry picked from commit cff959e60f914754961fde4bcca1a97cd363d1ad)
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
96a0be67619944378d95cdedc64b004aadb341e2 01-Dec-2016 Christine Hallstrom <hallstrom@google.com> Handle audio route restrictions set on calls

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

This is a cherry-pick of abandoned ag/1520954

Bug: 32958838
Change-Id: Ie30847c995839516507df0c70178a591c39f6cdd
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
9b618b8bd0e3e216ee9d9df96bec0e1f8841aa14 18-Oct-2016 Tyler Gunn <tgunn@google.com> Fixes for IMS Conferences via the RemoteConnectionService API.

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

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

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

Bug: 31464792
Change-Id: I7b63f145c741c29e1735f50a473585f26ef70fc7
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
f2373e177b6e122b84dd1a22320629d0280de1c6 12-Sep-2016 Shigeru Murai <sharp_android_SA@list.sharp.co.jp> Fixed an issue in VoicemailCallFilter process timeouts.

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

Change-Id: I159745c25371996bb22108568b3b42ec37d358c9
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
f036c0ba85c7933b7ccae74b3ef008a3b18d9176 13-Sep-2016 Tyler Gunn <tgunn@google.com> Merge "Ensure null ConnectionService references don't crash phone." into nyc-mr1-dev
d7fe686253f2135a948cafc776aa25db645ec27e 10-Sep-2016 Hall Liu <hallliu@google.com> Add connection properties to analytics

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

Change-Id: I1a5bc61228cbd676b8de218d503b30e8a76bfce2
Fix: 31395995
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
165ee7501fb1a13b5dcde1a9986426cfa0c93f4d 06-Sep-2016 Tyler Gunn <tgunn@google.com> Ensure null ConnectionService references don't crash phone.

- Modified Call logic to remove precondition asserts for mConnectionService
in favor of null check and error logging.
- Modify rejectCallAndLog to skip calling reject on the incoming call if it
is already destroyed. This is due to a call which was ended before the
call filtering completes.

Bug: 31236443
Change-Id: I0f93c65697a1b8e697a49118d642ecffe3dea130
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
33e453811b7dc0af47301d1aa22384de3d464da4 02-Sep-2016 Tyler Gunn <tgunn@google.com> Increase log level for VideoProviderProxy, add connection event logging.

Increased log level for VideoPRoviderProxy to info (this is not a very
chatty API) to aid test team; this is primarily to expose the sesssion
events -- I didn't see a value of putting these in the regular telecom
event logs.
Added Connection Event logging in the telecom event logging.

Bug: 31199425
Change-Id: I33ac8a67ae6c4a16c26a6c3d0ccf696735e730bb
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
13e8a6938eb5db779ea41f82f00916363ad09aa6 04-Aug-2016 Tyler Gunn <tgunn@google.com> Auto reject video requests for secondary user.

- In Telecom, when the ConnectionService sends informs us of an upgrade
to video request, if the phone account for the call does not support video
calling, then we will automatically send a response back saying the user
wants to stick with audio-only.
- Also, it turns out the Call object already knew whether it supports video
or not, so I was able to clean up the change I made previously to prevent
video calling on the secondary user.

Bug: 30600205
Change-Id: I64a29933d9da3f443dbad5fbd058f4b5735cfc51
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
225cc686653a9d53a15c9212ca0386505a9fea3d 27-Jul-2016 Santos Cordon <santoscordon@google.com> Merge "Add more logging to Telecom for NYC-DR." into nyc-mr1-dev
0d7a00a8040771e1c361af5f0cb402c35efd3868 27-Jul-2016 Santos Cordon <santoscordon@google.com> Add more logging to Telecom for NYC-DR.

Bug: 30411195
Change-Id: I074dcfc41f96ae056153b951cd272896fc116a86
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
10274f7f86f15ea6643b861c0d21ebcb73e8d407 27-Jul-2016 Tyler Gunn <tgunn@google.com> Auto downgrade video calls when phone account doesn't support video.

When adding calls to Telecom, ensure that incoming and outgoing video
calls are auto-downgraded to audio-only when the phone account does not
support video.

Bug: 27616192
Change-Id: I7fd15718af414903ab312f9aa9f20f8102a38f11
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
54ca13a21940379065becf4f564329b275c6c7ce 20-Jul-2016 Tyler Gunn <tgunn@google.com> Add telecom log to report when call changes external state.

Bug: 29906222
Change-Id: Id3c6e70d7922d83b84c533e60cd665c0f6d3d1d3
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
3ff5eddd28eeec2fed1c833a493ba7469bfa951f 12-Jul-2016 Brad Ebinger <breadley@google.com> Only Redial calls in the case of Emergency Calling

Currently, if there are multiple Calling Accounts and a call fails, we
redial the call on another Calling Account. We should only redial if it
is an emergency call being placed and it has failed from Telephony with
an Error.

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

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

Change-Id: I1bf6c1f7e182834c3ab1ed34cd119467a4698993
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
11cbb8ac504de60ed5faf0399325809d7558348c 11-Jul-2016 Hall Liu <hallliu@google.com> Merge "Switch to speakerphone when upgrading to video" into nyc-mr1-dev
6e8f3d70ac7397afb4cb5ab276d1cd385c92dd21 20-Jun-2016 Brad Ebinger <breadley@google.com> Rename Telecom Call Ids to include attempt

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

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

Bug: 28799824
Change-Id: I7e23497ab671712bc8d3cc9542537ae1c4829afc
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
9696c2187bb8c2fc77e72377df79e080578605b3 25-Jun-2016 Hall Liu <hallliu@google.com> Switch to speakerphone when upgrading to video

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

Change-Id: I4b8eb1c0f21753a8878f72d9279335a946c9f5a9
Fixes: 29563103
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
4640c4fc55ca4118351330d68684ca9989661ccd 23-Jun-2016 Hall Liu <hallliu@google.com> Record video call events in analytics

Record whether the call was ever a video call and a list of video
session upgrade/downgrade requests in Analytics.

Bug: 29239768
Change-Id: I50c7a3044f7ad4c13638bb7b493e97f3c1325a18
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
70d6f858f10a77277c63aafcaa1f113f647117a6 21-Jun-2016 Tyler Gunn <tgunn@google.com> Add video events to Telecom logs.

Adding some video state, request, and response tracking events to the
telecom event logs.

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

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

Bug: 28623064
Change-Id: Iea6d4a7482365534a3a0c6c672a969dae8141932
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
b71c70b5c7ff858ac4f358b240efa09f8b8d3958 02-May-2016 Tyler Gunn <tgunn@google.com> Merge "Ensure connection video capabilities can only be set if video supported." into nyc-dev
fa1e97e57f1024f9f85e5e3d54f9af44b27ce213 26-Apr-2016 Tyler Gunn <tgunn@google.com> Ensure connection video capabilities can only be set if video supported.

Add check in setConnectionCapabilities to ensure that video capabilities
are not added to a Call if the underlying PhoneAccount does not
support video. This is to protect against errors originating from lower
layers.

Bug: 28233279
Change-Id: I822445d1bb4459f3fa4a582bd9f9996d8b736ca3
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
6d4b66df3d918e3f17263ff40ca3ba0ec5a46719 02-Apr-2016 Hall Liu <hallliu@google.com> Incorporate parallel call blocking checks

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

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

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

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

Bug: 28179159
Change-Id: I44bc0b94f185c66aeddb68549223533249bb0b62
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
3da57646c4f2803eb482fcea46c76203717d5715 05-Apr-2016 Brad Ebinger <breadley@google.com> Modify outgoing Call logic to support multiple PhoneAccounts

When a Phone call is active, Telecom will use the same
PhoneAccount for any subsequent outgoing call made during the life of
the active foreground call. This change constructs a list of possible
PhoneAccounts that a user may want, depending on if any of the active
calls are on a SIM PhoneAccount and uses that list to determine if the
chosen PhoneAccount is available.

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

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

Bug: 27458894
Change-Id: I40160edd6191e71b409ff1f18ca2b8cc9662211f
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
5b70c1c2ef08f06bacd4156b266e8ce5b3ccdc07 04-Mar-2016 Hall Liu <hallliu@google.com> Move CallerInfo lookup into a utility class

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

Bug: 26883888

Change-Id: I9e00b21a3c5ce5c725fa91ec229f104e7c65c81e
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
f36f5149b8de765b9ba1dfff3226d8e00f7272eb 28-Mar-2016 Brad Ebinger <breadley@google.com> Merge "Record Call's Via Number in Call Extras to CallLog" into nyc-dev
571d5e66b8cbee023702b4b0a2a1c28663c5a7f8 15-Mar-2016 Tyler Gunn <tgunn@google.com> Add connection properties to Connections.

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

Bug: 27458894
Change-Id: I484783727c840a56882bca79c35280a4a338256d
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
baf52ba1520ef528b65329c813389b8183150f3d 22-Mar-2016 Brad Ebinger <breadley@google.com> Record Call's Via Number in Call Extras to CallLog

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

BUG: 25594198

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

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

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

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

Bug: 27458894
Change-Id: I421ebab28fada224bddca54ed4d3d9dff6f33bcf
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
cf80e1fbec61a343b403827cb1d21e267ec9dda7 01-Mar-2016 Santos Cordon <santoscordon@google.com> Merge "Add *AsUser() calls where appropriate for multi-user support." into nyc-dev
f0f99f34fc993dc72c335133c6b04720c826c891 19-Feb-2016 Santos Cordon <santoscordon@google.com> Add *AsUser() calls where appropriate for multi-user support.

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

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

BUG=25357778

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

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

Bug: 26807413
Change-Id: I40c709fd09260c6a40b63fd2c401e5a582035a5c
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
d29d93778fe288d87aef03e0a934099995b550bf 08-Feb-2016 Tony Mak <tonymak@google.com> Cleanup isWorkCall logic

Instead of laze initialization, configure the value of isWorkCall in
setTargetPhoneAccount.

Change-Id: Ibeec80cbdf0f41eb2d5d5082626bf3a872530856
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
4b1759dcf2b8fe89fa0dc407152e5a8fcb829dbb 03-Feb-2016 Hall Liu <hallliu@google.com> Remove race condition between NOCIB and account selection

Place an outgoing call once both account-selection and the new outgoing
call broadcast are done instead of assuming that account selection will
take longer than the broadcast.

Bug: 26110078

Change-Id: I6b035e929e9dc01a7330c8756f8afd2d3c69ba7c
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
c99e1d0dfb86ee1f26e7fbda343cecc579784010 15-Jan-2016 Victor Chang <vichang@google.com> Merge "Show work missed call notification for sim call from work contacts"
c11336037bb88d62626d8dc263ef7db43877c35e 12-Jan-2016 Brad Ebinger <breadley@google.com> Clean up messy bugfix

Clean up a messy bugfix that was previously committed at ag/843900.

Change-Id: I9e4df558c49561f98d2296ef17fb15f45172ad93
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
a270e4d00e16016aafc61c3a6a628fdde681f5a8 12-Jan-2016 Brad Ebinger <breadley@google.com> Update isWorkCall to work with multi-SIM devices

Updates InCallController.toParcelableCall(...) to only check if a call
is a Work call after the user has selected the Phone Account that will
be used to make the call. Before the user has selected the Phone Account
to use, the call will be set as not a Work call and will be updated to
the correct state after the Phone Account is chosen.

Bug: 26484778
Change-Id: I7162ab5ee2ac117a2ba02bc0dc00a0f71fd59e7b
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
9e7f98ac892c6b88905e8971dfd7228c604c2f52 04-Jan-2016 Victor Chang <vichang@google.com> Show work missed call notification for sim call from work contacts

BUG=26082618

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

Bug: 26022174
Change-Id: I18c039c1026acd6439809a01e4e742c8127d207c
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
0a6dd30f0f7acab586db9933bd4836148cd91c89 17-Dec-2015 Hall Liu <hallliu@google.com> Add more tests for TelecomServiceImpl

Change-Id: Ieef40369762736c01a331fe4a3cc72bed8928103
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
220b419bb5d1b4d1df08415c8e52cb7f0decbf7c 11-Dec-2015 Hall Liu <hallliu@google.com> Add tests for NewOutgoingCallIntentBroadcaster

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

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

Refactor CallAudioRouteStateMachine to use callbacks in StateMachine to
handle logging.

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

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

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

Also, tests have been added for CreateConnectionProcessor

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

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

Change-Id: I029688cbb28ba75c00df64b7c1aa9eda382fde99
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
b64bbfd21ed93bec77c6797be27293f4dc9b0a93 05-Dec-2015 Bryce Lee <brycelee@google.com> resolve merge conflicts of 63b075d113 to master.

Change-Id: I9570cca152dc3b9f07211d98b86d907abe91e6da
a7ca2561f99d7ea3154f3f08a65f6abeb9b9cfd8 04-Dec-2015 Bryce Lee <brycelee@google.com> Fix log type used for logging silence.
am: 18ceebcb85

* commit '18ceebcb85640fbb167c33e50d323580a47a2961':
Fix log type used for logging silence.
7a1f8239f7d22faef49c1f89de522e908e2e43f8 04-Dec-2015 Tyler Gunn <tgunn@google.com> Track and store call data usage in call log.

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

Bug: 25668261
Change-Id: I1477b10dd9553ff3194e50f27d223d5eb24725bf
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
18ceebcb85640fbb167c33e50d323580a47a2961 04-Dec-2015 Bryce Lee <brycelee@google.com> Fix log type used for logging silence.

Change-Id: I8d8c12e73fa0536ff5b88800bfb8b7bb699444c8
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
0da5fa4d6a0942a0297af6d85582d3978a473664 30-Nov-2015 Bryce Lee <brycelee@google.com> DO NOT MERGE ANYWHERE

Handle audio route restrictions set on calls.

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

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

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

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

Bug: 25644529
Change-Id: I89a98a4ad8ed4d94d7bf5eed07b57f353824e338
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
578a4e6661fc1be20d164458acb335356d742f72 23-Nov-2015 Tony Mak <tonymak@google.com> Add field to store who is initiating the call

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

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

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

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


Change-Id: I78611a4394f00ce0655c37d52b7b456f213ec802
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
6377b9423b6638ceed0e4461b302d8bf9db93de4 17-Nov-2015 Hall Liu <hallliu@google.com> Merge "Refactor CallAudioManager's audio routing"
f62630a57de0d52be2bdbc92a9bf8f305cc0892d 27-Oct-2015 Hall Liu <hallliu@google.com> Refactor CallAudioManager's audio routing

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

Change-Id: I4ca66abe72609d67dc8bde8ed8ff1538b7d0cf57
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
5385513ae43b4d5896245bf076a83b27dbf32a25 30-Oct-2015 Brad Ebinger <breadley@google.com> Add BluetoothPhoneServiceImpl testing

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

Change-Id: Ia692b02f8e4d3fc52b0e266409a4c5ed1ca2e7b8
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
6c625447d9629be03f33db1fd2c5e1c745c77201 11-Nov-2015 Yorke Lee <yorkelee@google.com> Merge "Fix crash during boot."
ada0301a8190568d90adba04bd1f555b7894a0e1 26-Oct-2015 Hall Liu <hallliu@google.com> Added tests for CallLogManager

Change-Id: I831599355fa3fa32365f8a7e011b41e37c72c9ec
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
6df5eb48cba587c6533cddff6cbc0825186f3e36 27-Oct-2015 Dianne Hackborn <hackbod@google.com> Fix crash during boot.

Change-Id: I9c030aa6a4d9df962ee16c79b30d7b68410aec4d
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
d931a017a0abea32ad4485a91402b5f62b9ddb0e 21-Oct-2015 Brad Ebinger <breadley@google.com> Ringer unit tests added and minor refactoring to accommodate testing.

Change-Id: Ia176dff453e1876494e14d8403eb5a9ed3dd3865
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
b8ce19c04800b46e37385ea60795b21a7d14cded 15-Oct-2015 Hall Liu <hallliu@google.com> Add support for post-dial digits to logs.

Bug: 24955678
Change-Id: I9bc7ecc574dd50b2f389a147245aab7a65ae1e2c
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
d15d693be6b7cad7ef8b0a7dd2665b8904eb0697 18-Sep-2015 Roshan Pius <rpius@google.com> Log "Direct to Voicemail" calls in Calllog.

Merging call reject/missed call notification handling in
processDirectToVoicemail calls, so that all calls are logged in
call log.

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

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

Bug: 23357902
Change-Id: I485f751d1668e96b7787c4be97aa76c1e5ec0798
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
ef51640d6f3d0bf7ffc9408b3a0addee15a528b7 04-Sep-2015 Roshan Pius <rpius@google.com> am 669f90b7: Abandon audioFocus only when all the calls are disconnected.

* commit '669f90b7544d0f8ec42336ea6757e133b499c145':
Abandon audioFocus only when all the calls are disconnected.
669f90b7544d0f8ec42336ea6757e133b499c145 03-Sep-2015 Roshan Pius <rpius@google.com> Abandon audioFocus only when all the calls are disconnected.

Due to the change in ag/757925 to abandonAudioFocus when the foreground
call is in disconnected state, we end up prematurely abandoning audio
focus for IMS conference scenarios. When IMS conference is created
first, we disconnect the foreground call before creating the new IMS
conference call. This results in us abandoning audio focus and
reinitializing it when the conference call is created. In this scenario,
there should be a background call which is not in DISCONNECTED state.
So, redo the if check to see if there is any non-DISCONNECTED call in
CallsManager before we abandon audio focus.

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

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

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

Change-Id: I26a13496e3cff596ba950bf9abed35c36b917721
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
fa3b7b6ac2e81a989850f0d5d5bc4fba6fd67fff 13-Aug-2015 Roshan Pius <rpius@google.com> am 17010e55: Disallow resetting of emergency flag in telecom.

* commit '17010e559b99302cd64450a92e30c7817128035d':
Disallow resetting of emergency flag in telecom.
17010e559b99302cd64450a92e30c7817128035d 13-Aug-2015 Roshan Pius <rpius@google.com> Disallow resetting of emergency flag in telecom.

Once a call is marked as an emergency call in telecom, prevent
resetting the flag from lower layers.

BUG: 22851640
Change-Id: I3880871c33b691040984e631b0da8170ac9356b9
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
46b42ef307e1b334db7a6ff42e1a69349331851b 12-Aug-2015 Tyler Gunn <tgunn@google.com> am 05f9e8d0: Merge "Minimize the number of calls to PhoneNumberUtils.isLocalEmergencyNumber." into mnc-dr-dev

* commit '05f9e8d01064d63b08b5f888dc0cb4ee03c7f024':
Minimize the number of calls to PhoneNumberUtils.isLocalEmergencyNumber.
6ffe531cc43849b5ca22a23647f5e729fae01c25 12-Aug-2015 Tyler Gunn <tgunn@google.com> Minimize the number of calls to PhoneNumberUtils.isLocalEmergencyNumber.

On a standard outgoing call, isLocalEmergencyNumber was being called
from 30-40 times. Each of these calls requires a system service
invocation.

The Telecom Call object already has an isEmergencyCall() property which
is set any time the handle on the call changes.
When ever possible in Telecom, I have used this already calculated value.

These changes reduce the number of calls to isLocalEmergencyNumber
by about 5-10.

Also removed a duplicate call to setHandle() in the Call constructor.

Bug: 22985202
Change-Id: Ic8662d4ab506486858caf4fbff61c32bae2b7c8c
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
41045b499a47c00459986c96bbbb28ffee2cbefc 05-Aug-2015 Bryce Lee <brycelee@google.com> Allow a custom component to receive notification of missed call.

By setting the custom component, the system notification is suppressed.

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

Bug: 22331056
Change-Id: Ib6147e55cd886d678d924c92bb86743c22ad6366
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
38c066e0b475c7e36901203fc11b528a0a34610d 12-Jun-2015 Tyler Gunn <tgunn@google.com> Merge "Play tone when video upgrade request is received." into mnc-dev
86014fcf9ec86e198a1ebac7c46e0e5c630735d7 12-Jun-2015 Tyler Gunn <tgunn@google.com> Play tone when video upgrade request is received.

Added a VideoProviderProxy which intermediates between the VideoProvider
in the ConnectionService and the InCallService.

Changed CallsManager to listen for session modification requests via the
VideoProviderProxy and report these to its listeners via the
CallsManagerListeberBase.

Changed InCallToneMonitor to listen for session modification requests and
to play a tone when a request to upgrade is received.

Also, added an intent in the TestInCallService which I neglected to commit
in a previous CL.

Bug: 20232310
Change-Id: I1b105968f519ff6b166bbd02cb57b1cf68d2cea9
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
5fa4e4f1eb98f052cc0ee4b3ad0f6acb8e92c719 10-Jun-2015 Santos Cordon <santoscordon@google.com> Add more logging.

1) Call state logging was lost in a merge conflict, adding that back.
2) Adding better ringing state logging. Fixes problems:
- No more superfluous "STOP_RINGER" logging
- Adding call-waiting logging
- More accurate call attribution for start and stop ringing

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

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

Bug: 21573551
Change-Id: I567abaf4b6c0de51656869d1c7367a7ff3e51cd1
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
b3907b3e79864a3a42d5e7105e5051f7e364fdba 28-May-2015 Santos Cordon <santoscordon@google.com> Add extras to Connections/Calls. (2/3)

Two major changes:
1) Add the notion of extras to a Connection. These extras will be
parceled through to InCallService as Call.getExtras()
2) The previously existing Call.getExtras() has been renamed to
getIntentExtras(). This name better describes the fact that these
particular extras are from the original CALL or INCOMING_CALL intents.

Change-Id: I4eed1e1bb47e83f8ba5c843cab7e7e492a297c71
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
736fe75ad682ac2663bd3e8613521144e2269cab 02-May-2015 Prerepa Viswanadham <dham@google.com> Merge commit '336b6a1' into merge_try2

Change-Id: I471327b21bb250640a17dac06251bd45227910e5
5fb78406444dc654dfe6f33a3cf4d079d30a8357 29-Apr-2015 Tyler Gunn <tgunn@google.com> Fixing issue where some video calls are not logged as video calls.

Some video calls are not properly logged as video calls in the call log.
This is due to the fact we only track video state history for the call
log when the call is active.
1. Incoming video call answered as video -- since the video state never
changed while the call is active, the fact its a video call is missed.
2. Rejected and missed calls -- calls never were active so are not tracked
as such.

Bug: 20689156
Change-Id: Ie1c155db968844a346493c78f63c055dde6b5195
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
ee6c2fef0331f14f186c7f4cc2914b2cc280bafc 24-Apr-2015 Santos Cordon <santoscordon@google.com> Add disconnect cause + phone number to event logging.

Change-Id: I62528dbc5f8675d2b4401549ee8aaf950465da39
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
92694519535c54f542b4ef3973e9c1934f2feeff 23-Apr-2015 Santos Cordon <santoscordon@google.com> Move CallState and rename PRE_DIAL_WAIT.

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

Bug: 20532827
Bug: 20532435
Change-Id: I79ce36c7e971c1a49b857506c9a56cfe316069cf
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
f136b2714c5dd4e85d0a875abfa7baa77b29be38 20-Apr-2015 Santos Cordon <santoscordon@google.com> Merge "Add call event logging to telecom."
2685dabdb656f72dfe851215f2e99f82896f052f 18-Apr-2015 Santos Cordon <santoscordon@google.com> Add call event logging to telecom.

This code saves the last 5 calls and prints out all the call-related
events when doing a "dumpsys telecom". This includes dumping all
information about the last 5 calls so that bug reports always contain
information about the calls.

Bug: 18923652

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

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

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

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

Change-Id: I00a8a3bebd56a5f78b6b3fa3958d6cf3929b1834
48105e1a3671c89bf7fb0dc1879221b7caa1351e 14-Apr-2015 Andrew Lee <anwlee@google.com> Merge commit '3631b8e' into mergemeister

Change-Id: I40c4794e1091b26c5cd366dc4baf55626b62a145
0ecbaf215d6928be597d486a0aebf4e68550fdc7 13-Apr-2015 Torbjorn Eklund <torbjorn.eklund@sonymobile.com> am 44651116: am cd3abbf7: Create new empty Bundles when creating new Call

* commit '446511160590d344478d04c2a5c60fcfb3c5f045':
Create new empty Bundles when creating new Call
d240fe8e16205623eb6cb73c3d42448554690033 02-Apr-2015 Rekha Kumar <rekhak@codeaurora.org> IMS-VT: Change parameter type of data usage
Change Data Usage methods to take parameters of type long
instead of int.

Change-Id: I6a277dedb5976261035084955ed8a90da256061a

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

Propagate the call substate changed message to the UI

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

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

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

Change-Id: I09b82dcb6308a1177716b77e87da68161000518b

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

Change-Id: Ief145e0592e58de46c7a75d858effdd72fa8b476

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

Change-Id: I0c6288a8fd672c9b7a13edac11e29875d0df4eb7
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
aa383cca668afd8578a6e007c3ea360768dc52f6 23-Mar-2015 Ihab Awad <ihab@google.com> Further cleanup, and move functionality into TestFixture objects

Change-Id: I62b514ae8fe10f720a60c681968efd2340616eba
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
abcbce4441720c52a443d292d5adc2d95f446494 07-Apr-2015 Ihab Awad <ihab@google.com> Fix deadlock around locking in AudioManager

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

Bug: 20103143
Bug: 20108354
Change-Id: I8323a660c6cc4093888f4e608070709a828624e6
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
cd3abbf7209280fed6f39b9ab383919347c386ce 08-Apr-2015 Torbjorn Eklund <torbjorn.eklund@sonymobile.com> Create new empty Bundles when creating new Call

...instead of using Bundle.EMPTY.

Bundle.EMPTY is a global static resource and will no
longer be empty if one Call adds data to this Bundle.

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

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

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

Bug: 16680364
Bug: 19820114
Change-Id: I3840f92270100811161120dffcfe297bef7c4ea2
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
eb39aa2c275ee5755e93eb4bc5b3b10085a97948 03-Apr-2015 Tyler Gunn <tgunn@google.com> Video call accepted as audio shows up as video call in call log.

- Modified video state history tracking in Telecom Call to only track
video state history when call is active. This ensures while call is
dialing or ringing we do not capture the video state.

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

Change-Id: I6a277dedb5976261035084955ed8a90da256061a

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

Propagate the call substate changed message to the UI

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

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

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

Change-Id: I09b82dcb6308a1177716b77e87da68161000518b

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

Change-Id: Ief145e0592e58de46c7a75d858effdd72fa8b476

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

Change-Id: I0c6288a8fd672c9b7a13edac11e29875d0df4eb7
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
b63b57e2c35c4769e756f47131c7ebbc0af42c59 23-Mar-2015 Ihab Awad <ihab@google.com> Further cleanup, and move functionality into TestFixture objects

Change-Id: I62b514ae8fe10f720a60c681968efd2340616eba
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
eef83a54638d1292fd91f2e5fded602c4da56f3c 27-Mar-2015 Santos Cordon <santoscordon@google.com> Merge "Fix problem with AsyncQueryHandler"
8731faf3a1dcf888b894d4ad0faab97effab10bc 26-Mar-2015 Ihab Awad <ihab@google.com> Fix problem with AsyncQueryHandler

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

And various other similar problems.

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

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

And various other similar problems.

Bug: 19941246
Change-Id: I324f09a5161e26593c0d24d5311a371d8971870d
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
e6dbc9d8448211f10b245ededf25d740cb561b40 26-Mar-2015 Ihab Awad <ihab@google.com> Fix problem where incoming calls would hang and never complete

Bug: 19941246
Change-Id: I50f50f2ab81a79069a5a7a0884eaa75daa43a909
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
d1d63e149fb9b820b4004c745c86d13b5334e780 26-Mar-2015 Ihab Awad <ihab@google.com> Fix problem where incoming calls would hang and never complete

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

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

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

Complete refactoring Telecom to remove singletons from the core code.

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

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

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

Change-Id: I3036f200b56f710e7f830b469260a67145c327e7
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
a365390b0d157fbe1655cdc41ea5d13fa13fdbdf 23-Jan-2015 Ihab Awad <ihab@google.com> Minor visibility changes to make tests work again.

Change-Id: I023974f9f145ec9b39b6d8a1c3b1679638dd59f7
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
646fa3d6eaea71fb4c3270fde1a30eeb7c5e4288 28-Jan-2015 Sailesh Nepal <sail@google.com> Add timeout for emergency calls

Currently connection managers are only able to route
emergency calls if the call can't be placed by the
normal phone account first.

Unfortunately this strategy only works for "fake" emergency
calls (for example when you set a fake number using
ril.ecclist).

When actually dialing "911" the call doesn't disconnect
even if there's no service. This means that the connection
manager never gets a chance to handle the call.

To fix this issue we're adding a timeout for emergency calls
if a connection manager is present. If after 25 seconds
the call is not yet active then we'll disconnect the call
and route it through the connection manager. The timeout
length is 60 seconds if the device is in airplane mode.
Both timeout values can be modified using config values.

To limit the impact of this change we've also added the
following extra condition:
- only use a connection manager if we have wifi
connectivity but no cellular connectivity

BUG: 19020123

Change-Id: Id2d740006cbf850db1cffb0d9f2aaca702ef1366
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
d92e73772327537fe65edda43ca0ceb6fc781e51 10-Jan-2015 Tyler Gunn <tgunn@google.com> Fix for call timer resetting when starting IMS conference call. 4/4

- Added support in Conference for specifying the connect time when the
conference is created.

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

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

Bug: 18644688
Change-Id: Ib04658316f725146a65b399d3f477791260c3f5a
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
a2e1cebe4b42dc4b4188d0d916bfcee468a77ac5 04-Dec-2014 Sailesh Nepal <sail@google.com> Merge "Fix fallback for emergency calls" into lmp-mr1-dev
2767926bb2d241d651e823a25d5a24295c120ec5 03-Dec-2014 Sailesh Nepal <sail@google.com> Fix fallback for emergency calls

When the first call service disconnects the
disconnect state causes the in-call UI to close.
This means that falling back to the call assistant
for emergency calls didn't work.

Fix was to not set the disconnect state until fallback
was completed.

Bug: 18593307
Change-Id: Ifd0a83662b3edd9b7f324a3eb0b8d519cab44513
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
117f0ac39a1ad4bd849082b6e6aa5c12b1041239 03-Dec-2014 Tyler Gunn <tgunn@google.com> Merge "Fixing issue where VoLTE conference calls have incorrect call time." into lmp-mr1-dev
c314fcc186caa90c9c78b93aa2299d7641c9d4f1 02-Dec-2014 Tyler Gunn <tgunn@google.com> Fixing issue where VoLTE conference calls have incorrect call time.

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

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

Bug: 18292176

Change-Id: I28e6aa4fec20aadd77f9a861b0bb8e1e9828cffb
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
98c4e2a1f98dcf27ee57151811814e2e0fbb76c3 20-Nov-2014 Santos Cordon <santoscordon@google.com> Merge "Fix call duration for unanswered/missed calls." into lmp-mr1-dev
40f9b179e6aaa0d906d38a48040425f82727aab4 17-Nov-2014 Santos Cordon <santoscordon@google.com> Fix call duration for unanswered/missed calls.

Made call times be equivalent to Jellybean/Kitkat.
Missed calls, rejected calls, unanswered outgoing calls all show 0:00.
Missed calls in particular dont show a time at all.

Tested with Conference calls, Active/Hold, Rejected, Missed,
Outgoing->Rejected, Outgoing->End Call.

Bug: 18403859
Change-Id: I60bedc425681808d48d768a435f86f2545916de1
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
e4a9c412f5c6f76f006659f0b4e171ef4547dc45 15-Nov-2014 Yorke Lee <yorkelee@google.com> Add Systrace logging to Telecom

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

Bug: 18373617

Change-Id: Id37c75f2e2475923dcd66aa7325b3d8767f29a97
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
752cacbc0b88b9b4cb4ab7bd547e17b5d2690693 06-Nov-2014 Sailesh Nepal <sail@google.com> Continue processing calls that don't connect

If a call goes from DIALING to DISCONNECTED and there are
unprocessed phone accounts then we continue processing.

This fixes a problem where we didn't fallback to the
connection manager for emergency calls.

Bug: 16192560
Change-Id: Ic693a810e4a386f7fdb6f36700d95c8bbd325d0b
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
9644c42647f39d710d9d2900cdf6400e00e23ffe 07-Nov-2014 Yorke Lee <yorkelee@google.com> Merge "Don't set voicemail handle to null" into lmp-mr1-dev
4a04e84a3c247b7b2f6021fa9be7d4e89e8630cf 07-Nov-2014 Santos Cordon <santoscordon@google.com> Merge "Reuse calls canceled through NEW_OUTGOING_CALL broadcast." into lmp-mr1-dev
96e662d3811673f284da0f9d2deabe939918a3b1 06-Nov-2014 Yorke Lee <yorkelee@google.com> Don't set voicemail handle to null

Voicemail handles have empty numbers, keep them as-is so that
they can be correctly handled in Telephony.

Bug: 18275014

Change-Id: Ia6c9d004e978e8a121944b50fd84c178624b0a7f
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
cf5b2918ca58b155911a66222ae5b4d21cb5b8ec 06-Nov-2014 Santos Cordon <santoscordon@google.com> Reuse calls canceled through NEW_OUTGOING_CALL broadcast.

When a call is canceled because of NEW_OUTGOING_CALL broadcast,
we no longer remove it immediately. This code adds a 200ms delay.
The 200ms delay is long enough that if an app reposts another call
to the same number (with a gateway number, for example), instead of
destroying and recreating the call, we attempt to reuse the existing
one. This eliminates the jank in the UI caused by the call being
destroyed and a new one recreated.

Bug: 17692408
Change-Id: I225a4fcc6f00d764cf76595f15f6d2d0785b9fe2
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
ecaaeac225ada350b9b3acfb485583cc388050de 06-Nov-2014 Santos Cordon <santoscordon@google.com> Don't show quick response messages for private numbers.

The respond-to-sms code was seeing "tel:" as the uri address, so I
updated the code so that restricted, unknown, and the above example all
get translated to a null address. This forces everything to work as
intended.

Bug: 18092431
Change-Id: Ibad1b510afd523268a9a37e2f48d0d62a7a7ebe4
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
686f453920381348ec162828269e751aca535580 20-Oct-2014 Yorke Lee <yorkelee@google.com> am eae93b4c: am c9fe671f: Merge "Update call capabilities when call is removed" into lmp-dev

* commit 'eae93b4c741e70d8f0780ca92c747f6950173d8d':
Update call capabilities when call is removed
604a90f596deb41998e021151b3ddc8019e28eac 20-Oct-2014 Yorke Lee <yorkelee@google.com> Update call capabilities when call is removed

Bug: 18018700
Bug: 17586196
Change-Id: I4bb733fea421e4c18378f0ff96b571e6b2f66a14
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
2adbf6a0b65d8ed45c051dbe92780d821a3454dd 15-Oct-2014 Yorke Lee <yorkelee@google.com> Merge "Fix incorrect reported time for missed calls upon reboot" into lmp-mr1-dev
0c1e4f6713d04f193e211e0b3d25968c0ece8535 15-Oct-2014 Yorke Lee <yorkelee@google.com> Fix incorrect reported time for missed calls upon reboot

Bug: 17550526
Change-Id: I019e02649c0821b0e3e6b78a6b59e0fba51ad240
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
504eb83ea06f4c737a4f4fdbd65aa2450505420c 13-Oct-2014 Tyler Gunn <tgunn@google.com> Fixing issue where Google Voice calls are logged twice to call log.

1. Changed disconnect cause for aborted calls to "CANCELED" which ensures
they are not logged.
2. Also, added a check in Telecom to avoid bringing up the InCall UI
immediately when a new call is made, if Google Voice is installed. This
is to ensure that the user does not see two reveal animations. This was
due to the fact that when the call was initially added and subsequently
aborted, the InCall ui would be shown. With this change, if GVoice is
installed, adding the call is delayed.

Bug: 17961478
Change-Id: Ic0055a53ac85980fa22136a5c8b6cb59be347da9
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
66fe882a6437de1010af0dc8cd7350f81f2e028a 11-Oct-2014 Santos Cordon <santoscordon@google.com> Update foreground calls with child-parent call changes.

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

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

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

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

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

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

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

Bug: 16852844
Change-Id: I5dfdfc1bd4675f6b300a4a55a3098582f9d715a2
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
c3f986b5ac49756ba44de15e8fdeb761c124e913 03-Oct-2014 Tyler Gunn <tgunn@google.com> Merge "Conference call merge button visibility issue. (1/2)" into lmp-dev
703d7cfdab59f84221fd803dd5810bea0e26cc56 03-Oct-2014 Tyler Gunn <tgunn@google.com> Conference call merge button visibility issue. (1/2)

- Calling onConferenceableCallsChanged listener on change of Call.
- This was preventing the change in conferenceable calls from being
communicated to the InCall UI.

Bug: 17767618
Change-Id: Ib9f7c9dbc0d05089475b6fe79e338be2c32e8698
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
88a4a60284de8e1222488667b810b098c16d22ac 30-Sep-2014 Santos Cordon <santoscordon@google.com> Support MERGE/HOLD for Cdma calls through BT Headset.

We have to manufacture states for CDMA multi-calls, which do not
expose HOLD/SWAP in the traditional way other calls do.

Bug:17699262
Change-Id: I251e59b1f15b5e2d9a6b2929ec1fcaba3d9f4101
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
a7fa743f76242e9f039eea2fea0911f59255522e 22-Sep-2014 Yorke Lee <yorkelee@google.com> Use handle uri instead null if caller info lookup is not done

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

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

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

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

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

Bug: 17329632
Change-Id: I85767d424bcfd59b3929819c9c6de46fc4a8629e
/packages/services/Telecomm/src/com/android/server/telecom/Call.java
f193ba45fae5bc87e6a57779e4f5b56be59d08b0 12-Sep-2014 Santos Cordon <santoscordon@google.com> Guard against simultaneous calls.

1. If you get an incoming call we auto reject it if any calls exist which
are in any state of dialing out. (Tested with SIP/PSTN combination).
2. If you answer an incoming call, we automatically disconnect the
foreground call if it does not support being put on hold. (Tested with
SIP/Cdma combination).

- Also fix bug where we were allowing a child call to be set as the
foreground call.

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

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

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