Commit Graph

19 Commits

Author SHA1 Message Date
Tyler Gunn
ffbcd89453 Improve connection manager logging.
1. In ConnectionService, upping the incoming log level to info from
debug; this ensures we can better trace whether methods are actually
called.
2. Added the ability in the logging class to get a new external session
which supplies the owner info which will be passed in to the recipient of
the external session.  This allows Telecom or a connection manager to
pass in a package abbreviation which will form the calling owner info
when the receiver continues the external session.
3. Add owner info to the Session.Info class so it can be passed about.
4. Ensure owner info is copied when getting Session.Info; subsessions were
not showing the owner info in the past; this corrects that.
5. When retrieving the external session info, creating a "package call
stack" with the owner info.  This lets us see the hierarchy of where calls
originated.
Example: cad/cast/ccme
Shows that com.android.dialer send a message to com.android.server.telecom
which relayed a message to com.connection.manager.example.
6. Start sessions in RemoteConnection API methods and pass along external
session info.  This bridges session tracing across a connection manager so
we can now trace a method call all the way from dialer, through telecom,
through the connection manager, and finally into telephony.

Test: Manual call testing with connection manager to verify log behavior.
Bug: 153899641
Change-Id: I4518a50550203818374b4e0b52eccb84ffd561dc
2020-05-05 09:34:07 -07:00
Tyler Gunn
815576c7d6 Improve remote connection logging.
This CL improves traceability of calls initiated via a remote connection
service.
For regular incoming/outgoing calls, when initiating a request to create
a remote connection in RemoteConnectionService, we set
EXTRA_REQUESTING_PACKAGE_NAME in the parcelled request to the package name
of the connection manager.  In ConnectionService this serves as an
indicator that the incoming request is via a connection manager and is
used to trigger setting of EXTRA_REMOTE_PHONE_ACCOUNT_HANDLE with the
phone account handle the remote connection service uses to place the call.
For conferences and existing connections, the initial request is from
the remote connection service to the connection manager so we can
just set the EXTRA_REMOTE_PHONE_ACCOUNT handle there directly.

Also cleaned up logging in the telecom session logging to remove the
assumption that the ownerInfo is an incall service.

Test: Manual testing with connection manager to verify logging.
Fixes: 154353494
Change-Id: Iee1b5cfd3334a5de08d7b04022b7c6d5af6a4b04
2020-04-17 15:46:29 -07:00
Brad Ebinger
c4044355eb Fix infinite recursion due to error log message
Bug: 144446106
Test: atest TelecomUnitTests:SessionTest
Change-Id: I382f90ad6f91262b06ac8816ecf1ecabfa9f6bb6
2019-11-13 16:51:16 -08:00
Brad Ebinger
99f17ced8f Expose ConnectionService Handler to remove flaky tests
Test: atest TelecomUnitTests
Change-Id: Ibb80b5739083ad9f85ee06f4d9f0017f4cb605bd
2019-09-17 10:44:11 -07:00
Brad Ebinger
4bccabef90 Merge "Prevent Infinite Recursion in Telecom Sessions"
am: 8dec6de25a

Change-Id: I779c9424dc7a1f9f14f7907bba76a24b9026ec5a
2019-08-13 10:25:44 -07:00
Brad Ebinger
839bfaf7d0 Prevent Infinite Recursion in Telecom Sessions
There looks to be a case where infinite recursion
is occuring when printing information about
Telecom Sessions. Set a reasonable limit of
iterations and throw a warning when this condition
occurs to better track down a root cause.

Bug: 139045282
Test: atest TelecomUnitTests:SessionTest
Merged-In: Iae69c5db070c5e58ae5d37c12d1c4df027138611
Change-Id: Iae69c5db070c5e58ae5d37c12d1c4df027138611
2019-08-13 00:39:44 +00:00
Jeff Sharkey
9e8f83db6d All Parcelable CREATOR fields are @NonNull.
If they were null, then the Parcelable would fail to work.

Bug: 126726802
Test: manual
Change-Id: I7929ffa2f20e5de1c8e68e8263cca99496e9d014
Exempt-From-Owner-Approval: Trivial API annotations
2019-02-28 23:29:04 -07:00
Hall Liu
48e2615128 Fix flaky AnalytisTest by locking in EventRecord
AnalyticsTests were flaking with concurrent modification exceptions. Fix
this by locking mEvents properly in EventRecord.

Bug: 119226554
Test: leave it to presubmit
Change-Id: I4df0afe399fab148bbebcef51272c56f628ee18f
2018-11-07 18:32:02 -08:00
Hall Liu
8c8d7babf1 Fix Telecom dumpsys timestamps
Change the dumpsys timestamps to use java.time for processing and always
log events with local timezone that was in effect at the time the event
happened.

Bug: 74250969
Test: manual, run dumpsys
Change-Id: Ie53cff4400be1528b3224bd556536a689ef22c8c
2018-03-06 14:20:37 -08:00
Hall Liu
b6643acd8f Add timezone for Telecom event date formatting
Output event times in local time rather than in UTC for compatibility
with the rest of the timestamps in the bug report

Test: manual
Change-Id: I2d458f09aec635a43e3d0565e8f8da803124f368
2017-07-19 14:57:56 -07:00
Tyler Gunn
2db81b599b Add ability to dump events in a timeline view.
Adding new event dump which shows the events for all call, sorted by
time of event.

Test: Manual
Bug: 38450166
Change-Id: I9fd4ce92bdf62ef48d6940f03db1f2388003e9fc
2017-05-19 10:24:24 -07:00
Brad Ebinger
0c3541be65 Readability improvements in Logging
We now truncate Session method paths and IDs based on the Logging level
to improve Session Logging readability in logcat. If another external
session is started off of an existing external Session, the preceding
histories are replaced with "..." so that the Session information is not
overwhelming.

Bug: 26571395
Test: Unit Tests and manual tests pass
Change-Id: I9ffda3d64f1072fa6228a82a86116a5e47d18c96
2016-11-16 11:05:15 -08:00
Brad Ebinger
3445f82907 Modify AIDLs to include Session.Info
Modifies the IConnectionService.aidl file to include Session.Info
information to pass from Telecom to Telephony, which is used to start
external Sessions in Telephony from Telecom.

Test: Manual testing and Unit Tests pass
Bug: 26571395
Change-Id: Ia09a0abfa13d5167542d4c67465ea9aa1930b58b
2016-10-27 16:11:18 -07:00
Brad Ebinger
a0dc9765d3 Add support for starting external Sessions
This change adds support for parceling Session Information to be
transmitted over AIDLs and starting an external session in the external
process.

Test: Telecom Unit tests and new SessionManager Tests.
Bug: 26571395
Change-Id: Ie27ed88d4a8c344b34568025ddcf150fdcb38d62
2016-10-25 14:22:40 -07:00
Brad Ebinger
37521b9ba5 Merge "Switch on android.telecom.Log in Telecom" 2016-10-20 22:53:39 +00:00
Brad Ebinger
836efade0c Adds registerSessionListener API to Log
Adds the registerSessionListener API to android.telecom.Log to allow
callbacks to occur when a session has been fully completed.
CP from internal branch.

Test: Manual Testing
Bug: 26571395
Change-Id: I70ebd6f432768a5d7bd8f3a0997b8e0ef335bb35
2016-10-19 14:32:46 -07:00
Brad Ebinger
096d2829ed Add support for new SessionManager and EventManager tests
Test: Ran new unit tests
Bug: 26571395
Change-Id: I6d14d7c05b8fdc8dc1319a81f0e41f7bcd989b85
2016-10-13 15:26:58 -07:00
Brad Ebinger
4fb372fe16 Switch on android.telecom.Log in Telecom
Move over the Runnable Class into android.telecom and turn on the
framework's usage in Telecom.

Test: All Telecom unit tests pass. Manual Log testing has also been
confirmed to be working as it did before.
Bug: 26571395
Change-Id: If7e2036c746c5a953f3a77e2d625a423ce5bf8f3
2016-10-11 16:26:11 -07:00
Brad Ebinger
51b9834180 Transplant the Logging system from Telecom
This change is the preliminary transplant of the functionality from
Telecom into android.telecom. It is currently not being used
anywhere and is not hooked into Telecom yet. It will be after this
change is committed.

Test: Refactoring CL. Existing tests still pass
Bug: 26571395
Change-Id: I406975e686c6eaab7e31b1efa426b3406c8e90cf
2016-09-30 15:01:01 -07:00