Age | Commit message (Collapse) | Author |
|
A recent change (ag/31966526) was made to stash the originating user into
the android.telecom.Call.Details#getExtras(). We have been seeing
crashes in the Telecom system service as a consequence. We thought we
fixed this with (ag/32508382) and assumed it was due to the fact
that an InCallService living in the system server alongside Telecom was
getting a local reference to the Telecom call extras and hence being
able to cause a concurrent modification exception. It appears that was
contributing, but perhaps not the actual root cause.
Looking back at old bugs this same signature is seen as far back as 2023
but at a very low frequency. We thought we fully addressed this with
b/261946446 a long while back. It now seems likely that there has been a
concurrent modification issue with call extras for a long time which was
never fully solved, and this code change just makes it more likely.
This change does NOT fix the underlying problem but should reduce the
incidence. This is done as a fix forward because there are a lot of
stacked CLs related to this particular change (as a result of seeing the
new failure and trying to solve it in a few different ways).
Flag: NONE critical bug fix:
Test: Run tests, CTS, manual testing (not able to reproduce though).
Bug: 408470449
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:7fb0e330e7f4777f07f73b4bfd9ba8e11ee7c044)
Merged-In: I29e1a6019f8a5796f4ebf18c286dd5d3aec3feca
Change-Id: I29e1a6019f8a5796f4ebf18c286dd5d3aec3feca
|
|
Handles the call resume failure across subscriptions. We will attempt to
auto-unhold the foreground call that was previously held as part of
the original operation to swap the foreground and background calls as it
is historically more likely to succeed.
Bug: 390116261
Flag: com.android.server.telecom.flags.enable_call_sequencing
Test: atest CallTest
Test: atest CallSequencingBasicCallTest
Change-Id: I966d7fdda9d507cb5a1b36cab3403bf27e1779d6
|
|
We tried to catch ClassCastException in the past and log the key in
question so we could determine the root cause. It looks like in the end
this is likely a concurrent access issue where the InCallService is
trying to modify the bundle while Telecom is updating it. This is not
something that happens often. Rather than taking the performance hit of
copying the Bundle in the get, or sychronizing, we'll just catch and
assume the Bundles are not equal. Worst case we end up triggering an
extra Call.Callback#onDetailsChanged signal to the ICS.
Test: Run unit tests.
Flag: NONE Crash fix.
Fixes: 404168135
Change-Id: I5bc7a2170701fda364f6c4ca19d82a4c46745792
|
|
Rather than add the user to extras when unparcelling a Parcelable, put
it into the method where a Call.Details is created
Fixes: 402432822
Flag: EXEMPT minor refactor
Test: atest EnhancedConfirmationInCallTest
Change-Id: Iae44968a08090d9ae9a7673eb948c86768c19c99
|
|
Add the "xsim" tag to Connection cross SIM property for clarity and debugging. It helps to identify xsim technologies, like xsim calling.
Bug: 397800003
Change-Id: Ib1429492a945908ab91451769d7b969a6fddeec8
Test: atest ConnectionTest
Flag: EXEMPT (debug only)
|
|
Bug: 31819719
Test: atest CallDetailsTest
Flag: EXEMPT minor bugfix
Change-Id: I8024be31ee8866c46b3f4f311a88e84dcb1db744
|
|
telecomm/java/android/telecom/OWNERS" into main am: 632145c158 am: 29c1688522
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3503650
Change-Id: I25d2fca6be54a1865f9bfcbfb1628909b978dc39
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
|
|
This suggested change is automatically generated based on group
memberships and affiliations.
Please approve this change and vote the highest CR. This will keep the OWNERs
file tidy. We ask that you do not ignore this change and approve it
unless you know a reason the OWNER should remain. It can always be
reverted if needed.
If this change is in error, vote the lowest CR value (i.e. reject the CL)
and the bot will abandon it.
See the owner's recent review activity for context:
https://android-review.googlesource.com/q/hallliu@google.com
To report an issue, file a bug in the Infra>Codereview component.
Change-Id: I8a0e8c39106d3ec0758a079aafb469f30431d305
|
|
Cleans up the flaky audio routing tests which were verifying endpoints
switches. It turned out that the test were flaky from other tests not
properly cleaning up. The audio focus was not being abandoned and the
routing hadn't been processed up to that point. This ended up leaking
into subsequent tests where audio routing requests were piling up from
multiple tests. Asserting MODE_NORMAL here isn't sufficient as it
doesn't account for the audio routing to have been processed so waiting
to process the tests with SystemClock.sleep is sufficient enough to give
the routing enough time to finish processing the end of the call.
Bug: 384101577
Test: atest CtsTelecomCujTestCases:SingleCallingTest
Flag: EXEMPT test fix
Change-Id: Iaa5b203b7d1d71fcd7fded2434f34e60566d882e
|
|
of current process." into main
|
|
current process.
CallerInfoAsyncQuery#getCurrentProfileContentResolver was using a deprecated non HSUM aware method in order to check the user id of the current process. This was causing some contacts provider UT to fail when the device is HSUM mode. This CL updates CallerInfoAsyncQuery to use the HSUM aware reccomended method UserHandle#myUserId instead.
Test: atest CallerInfoIntegrationTest#testCallerInfo
Bug: 383209047
Flag: EXEMPT bugfix
Change-Id: I9032c2781c2502848d246be3cf83492a5a0d7228
|
|
|
|
Flag: com.android.server.telecom.flags.telecom_metrics_support
Bug: 391905002
Test: manual
Test: atest TelecomUnitTests
Change-Id: I7172e9e730150ec70346cbb48914cc450a92fe6a
|
|
We've now ween a couple cases where a ClassCastException is happening in
the areBundlesEqual method. It is not clear what is causing that issue
so instead of just silently catching this exception, we'll log which key
is causing the problem so we can investigate further.
Test: Compile; run tests -- this is not easily repro.
Flag: NONE crash logs only.
Fixes: 390386486
Bug: 372319846
Change-Id: I96c5d08617487add9ba83de80144ae8b2f74782d
|
|
This CL adds a new test api that is useful for checking the foreground
service state of a particular app
Flag: com.android.server.telecom.flags.voip_call_monitor_refactor
Bug: 381129034
Test: cts + unit tests + manual
Change-Id: I30caf014ea06f3e6122234ecfd5368571e8ee3b9
|
|
Resolves a vulnerability found with the cross account user icon
validation in StatusHint and TelecomServiceImpl (when registering a
phone account). The reporter found that an uri formatted as `userId%`
isn't parsed properly with the existing reference to Uri.encodedUserInfo.
Bug: 376461551
Bug: 376259166
Flag: EXEMPT bugfix
Test: atest TelecomServiceImplTest
Change-Id: I25614ead889501f4553ed2b42b366e09a47b0c9f
|
|
Bug: 379356026
Test: m
Flag: com.android.internal.telephony.flags.deprecate_cdma
Change-Id: Ice0679e33b834a4e3377c3a4920f979fe048ab2a
|
|
This change updates relevant docs to describe that TelecomManager APIs allow privileged app invocations to accept and end VOIP calls. This CL also adds support for checking if an app is the sytem UI app which is considered privileged. This functionality was requested by the accessibility team in order to support their talkback double tap gesture feature.
Bug: 353579043
Flag: com.android.server.telecom.flags.allow_system_apps_resolve_voip_calls
Test: atest TelecomServiceImplTest
Change-Id: Ia0a8dbd7bcdd88b5a8cc4b0f908f935d77f6c734
|
|
Revert submission 30287372-revert-30239784-spec_session_fix-ZAKHYQBVDW
Reason for revert: broken build due to automerger issue: b/377750579
Reverted changes: /q/submissionid:30287372-revert-30239784-spec_session_fix-ZAKHYQBVDW
Change-Id: I82785545a00ba98385e5cda279731170c979144d
|
|
Revert submission 30239784-spec_session_fix
Reason for revert: Droidmonitor created revert due to b/377750579. Will be verifying through ABTD before submission.
Reverted changes: /q/submissionid:30239784-spec_session_fix
Change-Id: I3642b453f10095354bf4f82d14cfd275e7d143cc
|
|
Change the constraints for the session cleanup runnable to not
synchronize on the global instance. Instead, synchronize on the
Handler object to remove pressure on the hot path.
Flag: com.android.internal.telephony.flags.ims_resolver_user_aware
Bug: 375088362
Test: atest TelecomUnitTests
Change-Id: I65b82c1c8b74367d5611f6c3582a27073a2af6f2
|
|
This CL ensures that all instances of Conference and Connection are initialized with a valid number presentation (PRESENTATION_UNKNOWN). Before, we were relying on a valid number presentation to be set at some point later on (which didnt happen in every edge case). Defaulting to presentation UNKNOWN ensures that every instance of Connection and Conference will have a valid number presentation.
Bug: 306027715
Test: atest ImsConferenceTest#testDefaultNumberPresentationIsValid
Flag: EXEMPT bugfix
Change-Id: Ia092baedd69d53921e7166f925292e860ddf8d13
|
|
In some cases when Telecom is generating many sessions,
deeply nested sessions have a risk of creating a stack
overflow when trying to end a session and clean up intermediate
nodes.
Instead of using recursion, this change moves all traversal
to iterative while loops, which do not require the creation
of a new stack frame for each node.
- Iteration is also faster, for 5 incoming calls before and
after the change, I was seeing anywhere from 2%-20% speedups
during incoming call setup and disconnect phases.
Bug: 370349160
Flag: com.android.server.telecom.flags.end_session_improvements
Test: atest TelecomUnitTests; manual testing
Change-Id: Ib21af6c1dc303ea0c50544bb09423df72ac52a41
|
|
modules" into main am: cb650f8398 am: 0c9ffcdcf5
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3263804
Change-Id: I6d38c92169c7c58c4c8dec3d6c1caaeb70804038
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
|
|
As part of go/test-module-config we are moving test options from
TEST_MAPPING -> Android.bp files.
In previous Cls, we created the new `test_module_config` rules in
Android.bp
This is updating the TEST_MAPPING file to use those rules.
It is also removing "FlakyTest and IgnoreTest" exclude annoations as
they are now added in gcl files per run rather than ad-hoc per module.
I have a script that looks at the generated tradefed config file for the
new options added in Android.bp files, then it looks at TEST_MAPPING
files and find the places to update where the options match for the
test.
I am also doing abtd runs of each TEST_MAPPING file before and after my
change and ensuring the number of tests run is the same (or at least as
many). There are cases where tradefed would comping include-filters
across TEST_MAPPING entries for the same module, but now they will be
purposefully split up, causing some tests to be run under two different
modules.
Flag: TEST_ONLY
Test: Ran adbt on each TEST_MAPPING and compared before and after
results. Verified we were still running all the tests we were before.
i.e. after the adbt run, I would download the test artfiact for the
tradefed detailed evenvt and compare test counts.
You can see CtsAppTestCases became CtsAppTestCases_cts_requesttileserviceaddtest, etc.
I'm not including results for all 100 TEST_MAPPING files, but I did
verify with scripts and eyes.
Minor differences (like 2011 vs 2009) on a test that didn't change are
ignored, but in general there were more tests run, not fewer.
% diff <(grep started frameworks_base_services_core_java_com_android_server_statusbar_TEST_MAPPING/BASE.details) <(grep started frameworks_base_services_core_java_com_android_server_statusbar_TEST_MAPPING/NEW.details) | grep run
< [run x86_64 CtsAppTestCases (testCount: 6,attempt: 0) started]
> [run x86_64 CtsAppTestCases_cts_requesttileserviceaddtest (testCount: 6,attempt: 0) started]
< [run x86_64 CtsLocationFineTestCases (testCount: 96,attempt: 0) started]
> [run x86_64 CtsLocationFineTestCases_android_server_location (testCount: 96,attempt: 0) started]
< [run x86_64 FrameworksNetTests (testCount: 2009,attempt: 0) started]
> [run x86_64 FrameworksNetTests (testCount: 2011,attempt: 0) started]
Test-Mapping-Slo-Bypass-Bug: b/335015078
Change-Id: If6e3cd0624ac1c16f1cd088566d967769f47199c
|
|
PhoneAcctSuggSrvc." into main
|
|
This CL updates the relevant Telecom Service aidl to ensure the current primary user can be passed when setting the PhoneAccountSuggestionService for Telecom CTS test purposes. In HSUM mode, this should be user 10 and in non HSUM mode this should be user 0. Without this change, PhoneAccountSuggestionServiceTest tests were failing in HSUM mode.
Test: atest PhoneAccountSuggestionServiceTest
Bug: 358587742
Flag: TEST_ONLY
Change-Id: I81431805da813c48ab2ef776e121a60b59abec63
|
|
Bug: 353979854
Test: atest CtsTelecomTestCases:android.telecom.cts.DefaultDialerOperationsTest
Flag: EXEMPT annotation change only
Change-Id: I85ecbabf53400fdf2187bc1a1d5551bef76315b4
|
|
sec" into main
|
|
VoIP calls must now move out of the starting state before 60 seconds or
else they will be disconnected.
Bug: 360298368
Flag: com.android.server.telecom.flags.disconnect_self_managed_stuck_startup_calls
Test: manual
Change-Id: Iace0625c40f51e91d9e8d43dca22b0b22f76ee6d
|
|
This constant was never actually used and serves no purpose any more.
This was used to detect apps that tried to record a call by recording the
device mic hoping to pick up the call audio from the earpiece. This is
no longer allowed by audio policies. This extra was set based on a
carrier config key that was never actually used by any carriers anyways.
Removing to clean up dead/useless code.
Flag: com.android.server.telecom.flags.telecom_resolve_hidden_dependencies
Test: Run unit/cts tests.
Bug: 308017600
Change-Id: Id43b8fcffa7c98b8b907116b54acd693ecbcd4e7
|
|
Bug: 355008150
Test: atest CtsTelecomTestCases
Test: atest CtsTelecomTestCases3
Flag: EXEMPT bugfix
Change-Id: I62a6b6d729849b79aef093eb3e2e3a16180c99c3
|
|
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3164414
Change-Id: I6bb65d6ed9be2fdc98cb0a059a8044b0b9e07443
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
|
|
Bluetooth has made a lot change to stop printing the address in the
logcat and instead it is printing an obfuscated version of the address
thanks to the toString method.
Bug: 328846856
Fix: 328846856
Test: atest TelecomUnitTests
Flag: Exempt log change
Change-Id: Iccdc3e1bc2ca4dc3858dfeee48c3cb55299fee7a
|
|
This is almost certainly a mistake in all cases, and any files that are
text-based have been spot checked to make sure they don't contain a
shebang or have any other indications of intentionally being executable.
Commands run:
fdfind -t x -e java -x chmod -x
fdfind -t x -e kt -x chmod -x
fdfind -t x -e ogg -x chmod -x
fdfind -t x -e xml -x chmod -x
fdfind -t x -e aidl -x chmod -x
fdfind -t x -e html -x chmod -x
fdfind -t x -e png -x chmod -x
Bug: 345485143
Test: N/A
Flag: Exempt, mechanical change
Change-Id: I2902380611eb51d0c0e18f2f31e41f37163bd922
|
|
|
|
|
|
As part of API feedback, improve the DisconnectCause API that was
formalized as part of Telecom mainline. This CL has some minor cleanup
around those suggestions (refer to the associated bug for more details).
Bug: 327030432
Bug: 311773409
Test: atest TelecomUnitTests, atest DataObjectUnitTests
Change-Id: Ic1dd1ae2221be21207474950f307ba72fe8b35af
|
|
|
|
Ensure that the telecom call id generated when creating a remote
connection or conference in RemoteConnectionService is saved into the
ConnectionRequest. This was causing the call id to show up as null in
Telephony.
Bug: 323358714
Test: atest RemoteConnectionTest
Change-Id: I6a65c81af302da5071c5f24f728cf4a94415836e
|
|
API review noted that I should mention that the API will only return
accounts registered by the same app.
Fixes: 327333100
Test: existing CTS coverage + javadoc comment check (renders properly)
Change-Id: I355ae4d09e857568c5d5198a3d69838e8df0daff
|
|
As per API feedback, consolidate TelecomManager#isInSelfManagedCall into
a single API which only takes a UserHandle and disregard the
hasCrossUserAccess parameter. Instead, the caller can specify
UserHandle.ALL in order to indicate that self managed calls across all
users should be checked.
Bug: 327029478
Bug: 311773409
Test: atest SelfManagedConnectionServiceTest
Change-Id: Icbffaf8d2a507f519eb2fda34106a359f1bddaf4
|
|
|
|
|
|
currently there is no way for VoIP applications to fetch their
registered PhoneAccounts with Telecom. TelecomManager#getPhoneAccount
is gated by the READ_PHONE_STATE permission which is a highly privileged
permission that VoIP apps will not be granted. This API will not only allow
VoIP apps to get all registered PhoneAccounts with Telecom but Managed apps
(like system Dialers) can use it. This is helpful to know what calling
capabilities are currently registered and know the state of Telecom.
Bug: 307609763
Test: CTS coverage
Change-Id: I73ace8cd766369f877c7fc0ef985f6a0c575e097
|
|
refactor." into main
|
|
|
|
|
|
Instead of consolidating the TelecomManager#isInSelfManagedCall APIs
which combine the cross user logic with the ability to also specifiy a
user handle, create two separate APIs to handle this. One will allow the
caller to specify a user handle while the other will allow them to
specify if calls should be verified across all users.
Ensure that if the user handle specified isn't the caller or that
interacting across users is defined in the parameter, that the
permission check is enforced properly. Otherwise, ensure that the user
handle being verified is always the caller.
Bug: 323958718
Bug: 311773409
Test: atest SelfManagedConnectionServiceTest
Change-Id: Ie7096c0a876cca2cf8e1e70cd3ae102127f60197
|
|
This CL is created as a best effort to migrate test targets
to the new android ownership model. If you find incorrect or unnecessary
attribution in this CL, please create a separate CL to fix that.
For more details please refer to the link below,
<add g3 doc link>
Bug: 304529413
Test: N/A
Change-Id: I6b6cf0abdd1fdb8fefa4184b3698f6951c192ac0
|