As general background, OWNERS files expedite code reviews by helping
code authors quickly find relevant reviewers, and they also ensure
that stakeholders are involved in code changes in their areas.
Some teams under frameworks/base/ have been using OWNERS files
successfully for many years, and we're ready to expand them to cover
more areas. Here's the historical coverage statistics for the last
two years of changes before these new OWNERS changes land:
-- 56% of changes are fully covered by OWNERS
-- 17% of changes are partially covered by OWNERS
-- 25% of changes have no OWNERS coverage
Working closely with team leads, we've now identified clear OWNERS on
a per-package basis, and we're using "include" directives whenever
possible to to simplify future maintenance. With this extensive
effort, we've now improved our coverage as follows:
-- 98% of changes are fully covered by OWNERS
-- 1% of changes are partially covered by OWNERS
-- 1% of changes have no OWNERS coverage
This specific change is automatically generated by a script from
detailed ownership information confirmed by team leads.
Bug: 174932174
Test: manual
Exempt-From-Owner-Approval: refactoring with team leads buy-in
Merged-In: I9789c97c1de8e5d962b48c29c57d82fe83729eba
Change-Id: I9789c97c1de8e5d962b48c29c57d82fe83729eba
Also move OverlayRemountedTest, RollbackTest
The test config takes longer than 15mins to run. Move it to a dedicated
group for running slow presubmit Test Mapping test.
Bug: 174654670
Bug: 174495337
Test: none
Change-Id: Ie134c5d171bd99cca908f316d03050001c22ac32
Having a hidden abstract method for a class that can be extended
means that public implementors cannot implement these hidden methods
posing a risk that custom implementations will not have required
abstract methods resulting in an exception.
Bug: 151134792
Test: make update-api
Change-Id: I758d12465fabc671be19bedeeceb16885de23c87
Merged-In: I758d12465fabc671be19bedeeceb16885de23c87
Exempt-From-Owner-Approval: large scale suppression of existing issues,
no-op in terms of behavior
@SuppressLint("Doclava125") is a legacy way of suppressing
RequiresPermission check. Updating to the new style of suppression
so metalava no longer has to support the legacy mode.
sed -i "s/@SuppressLint(\"Doclava125/@SuppressLint(\"RequiresPermission/" \
core/java/android/app/admin/DevicePolicyManager.java \
core/java/android/hardware/hdmi/HdmiControlManager.java \
core/java/android/hardware/location/ContextHubManager.java \
core/java/android/hardware/usb/UsbDeviceConnection.java \
core/java/android/net/TrafficStats.java \
core/java/android/os/RecoverySystem.java \
core/java/android/os/storage/StorageManager.java \
core/java/android/service/persistentdata/PersistentDataBlockManager.java \
location/java/android/location/LocationManager.java \
media/java/android/media/AudioManager.java \
telecomm/java/android/telecom/TelecomManager.java \
telephony/java/android/telephony/CarrierConfigManager.java \
telephony/java/android/telephony/TelephonyManager.java \
wifi/java/android/net/wifi/RttManager.java \
wifi/java/android/net/wifi/WifiScanner.java
Test: make
Exempt-From-Owner-Approval: No-op change
Merged-In: I6d5df95cfca2950ea86872d2f0afc1ba828841dc
Change-Id: I6d5df95cfca2950ea86872d2f0afc1ba828841dc
It retruns whether the caller has InCallService access for the companion
apps. A companion app is an app associated with a physical wearable
device via the {@link android.companion.CompanionDeviceManager} API.
Test: cts
Bug: 169595473
Change-Id: Id659bfae8556e965d3c31613848bde808f28a858
Merged-In: Id659bfae8556e965d3c31613848bde808f28a858
(cherry picked from commit 4d0652699a88ad60c2dfdbf7b59065ee684df6d6)
Methods use @RequiresPermission annotation to declare permissions.
This CL removes redundant javadoc which also state the permission reqs;
the @RequiresPermission annotation results in autogenerated permission
docs.
Let some references in the javadoc in where a permission OR a role is a
requirement to use an API, or where permissions had specific API levels
noted in the javadoc.
Test: make docs
Fixes: 137633265
Change-Id: Id1ab7090def6b1d0dbdc8d2cc8586b5341e2eb7e
These are APIs that have @UnsupportedAppUsage but for which we don't
have any evidence of them currently being used, so should be safe to
remove from the unsupported list.
Bug: 170729553
Test: Treehugger
Merged-In: I626caf7c1fe46c5ab1f39c2895b42a34319f771a
Change-Id: I54e5ecd11e76ca1de3c5893e3a98b0108e735413
Update docs to clarify some confusion over recommended behavior for
paste/autocomplete operations.
Bug: 171986522
Test: docs only
Change-Id: I0515319a1aff00640fb4557584b17f10126eb215
We need access to the DeviceIdleController, which is not currently
accessible via the PowerWhitelistManager due to restrictions with
components in the same SYSTEM process accessing public APIs (see
context#enforceCallingPermission).
To get around this, we need to wrap services only available as
LocalServices using Binder to pass these services to the Telecom
code. This is all in-process (no IPC allowed), so there should be
little to no impact.
Bug: 160724034
Test: miss call and verify `adb shell cmd deviceidle tempwhitelist` contains
default dialer.
Test: atest TelecomUnitTests; atest CtsTelecomTestCases
Change-Id: I6275b550d19743e576b93f5fcd2bd3aa9ea4e1a8
Merged-In: I3d71331cbc8f01f764cc0b9704416821007feeb5
Update documentation to reflect that the sort order extra
should contain integers.
Bug: 169153499
Test: docs only
Change-Id: Ic5269d577f007e01a0c9eaa95cd7e8814ab8f79a
Merged-In: Ic5269d577f007e01a0c9eaa95cd7e8814ab8f79a
Update documentation on PhoneAccount#EXTRA_SORT_ORDER to make it more
clear what the sorting order is in edge cases.
Make DisconnectCause#REASON_EMULATING_SINGLE_CALL public, since it might
get propogated up to dialer apps.
Fixes: 169153499
Test: docs only
Change-Id: I7f810f909a8a61b422283c3bafcc97307e4d863b
Merged-In: I7f810f909a8a61b422283c3bafcc97307e4d863b
Update API docs to make it clear what the verification status means and how
it can be used by CallScreeningService and CallRedirecitonService
implementations.
Test: Build API docs and view offline.
Bug: 150343312
Change-Id: I56f92f5e3ab544e31337a8147134baac33bb4ea9
Cleanups for call screening service APIs and to provide more clarity for
the lifecycle of the service.
Fixes: 170286897
Test: make docs ; preview docs genreated.
Change-Id: I487b438e39abb83cee1bd050889a6bce164247d7
The API docs do not clearly indicate the fact that canned text responses
may not be available when a call is first added. Updating the API docs
to clarify this and reference the listener a developer can use to be
informed of changes to the canned responses.
Test: Docs only change.
Bug: 162843384
Change-Id: I52ced96439b2dfa31c1f2428979ab54466763afa
Expose Telecom constants that are used in Telephony in preparation for
mainline. Exposure is a combination of public/system -- those which made
sense for 3pty apps to access were made public.
Fixes: 168551099
Test: atest CtsTelecomTestCases
Change-Id: I688f04ba4ddf0498bad3463888fae71cdff2844a
RemoteConnectionService.
Plumb through the adhoc conference APIs via these new APIs.
Bug: 159944852
Test: atest CtsTelecomTestCases:RemoteConnectionTest
Change-Id: Icfa27e0616dd35ba350f7a491e5c95337a286b9d
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.
Bug: 154353494
Fixes: 155097158
Merged-In: I916750e0f558db1eb9e581bab7a9fbc71f781709
Change-Id: Iee1b5cfd3334a5de08d7b04022b7c6d5af6a4b04
The API contract for createLaunchEmergencyDialerIntent indicates that
the return value is @NonNull, however the code clearly can return a null
value if either:
1. Telecom is unavailable.
2. There is a remote exception.
Since the API just returns a new ACTION_EMERGENCY_DIAL intent with the
package name of the emergency dialer (from Telecom string resources), we
can provide a reasonable fallback behavior by just returning a new
ACTION_EMERGENCY_DIAL intent with no targeted package. The system will
still launch the emergency dialer in this case, but if there is a scenario
where multiple emergency dialers are installed on a device, the AOSP one
may get launched instead. This is, however, better than there being NO
emergency dialer launched.
Test: Comment out call to Telecom service and verify the AOSP emergency
dialer still launches.
Bug: 152187752
Fixes: 155097434
Merged-In: I1665d456dace8e41cc035e792f319d98dd07219c
Change-Id: I06f8a5bebace5b22822f7bb714e14915126b904f
Run Telecom CTS in presubmit, and include a few fixes to prevent
flakiness in said presubmit.
Fixes: 158798240
Test: presubmit
Change-Id: I9b9e2f2604615e93301bc83be7c3545c6f80cb9c
Add a Telecom command to stop the number blocking suppression that
happens after an emergency call.
Bug: 158798240
Test: atest CtsTelecomTestCases
Change-Id: I122de1962fb6aa48a3092c2aa323dcbdcbb8f42e
Updating the audio processing API docs to mention the fact that the app
must indicate in their InCallService and CallScreeningService service
entries that the service type is for "microphone" access, otherwise
background audio access will not be permitted.
Test: Docs only change.
Bug: 156042528
Change-Id: I3576dba445497791e6fa4e0a2fa42cf10eb1df5b
There is an edge-case where an IMS conference fails to merge two
participants into a conference, AND the conference event package comes in
before the ImsCall indicates it is multiparty. In this case, the CEP
will have a single participant which means we'll treat the call as a
standalone call. ImsConference correctly sets the conference state, but
this was previously just passed along the ConnectionService adapter
to Telecom. In this case the conference isn't even added to Telecom so
the method call in effect does nothing.
Changed to cache the conference state and ensure when adding the conference
to Telecom that we call the setConferenceState method (yeah, could have
put this in the ParcelableConference, but this is an edge case).
Test: Wrote unit test to verify property is set.
Bug: 134047008
Fixes: 155097934
Merged-In: I203880c593f6bac471a06eb9dcbb529d0bb75ba5
Change-Id: Ib48437abb1295d147e227727ce4ff2996f28b5de