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
By default weights are 0 which ensures ranking same as what it is now.
Bug: 168212835
Test: atest com.android.server.people.prediction.SharesheetModelScorerTest
Change-Id: I02eaa5b6a448c33b51e5f4c6acaba93e7a2bd995
This would help rank shortcuts targets properly when there is no enough sharing history on them.
Bug: 158022238
Test: atest com.android.server.people.prediction.ShareTargetPredictorTest
Change-Id: If802dcfea5c9c8442349c2c67fa71bb4b431cca9
In this case, return empty list for direct share, default list for app share, skip
reporting sharing targets.
Bug: 157647326
Test: manually test File 'open with' flow
Change-Id: I3efb87a84048e5d1b2d58b1cc9669eb4568956dd
Over the years we've had several obscure bugs related to how SDK level
comparisons are performed, specifically during the window of time
where we've started distributing the "frankenbuild" to developers.
Consider the case where a framework developer shipping release "R"
wants to only grant a specific behavior to modern apps; they could
write this in two different ways:
1. if (targetSdkVersion > Build.VERSION_CODES.Q) {
2. if (targetSdkVersion >= Build.VERSION_CODES.R) {
The safer of these two options is (2), which will ensure that
developers only get the behavior when *both* the app and the
platform concur on the specific SDK level having shipped.
Consider the breakage that would happen with option (1) if we
started shipping APKs that are based on the final R SDK, but are
then installed on earlier preview releases which still consider R
to be CUR_DEVELOPMENT; they'd risk crashing due to behaviors that
were never part of the official R SDK.
Bug: 64412239
Test: ./build/soong/soong_ui.bash --make-mode services RUN_ERROR_PRONE=true
Exempt-From-Owner-Approval: trivial blueprint changes
Change-Id: Ia20181f8602451ac9a719ea488d148e160708592
Before this change, People Service uses the presence of the Person object
in ShortcutInfo as the criteria of conversation shortcut. This changes
the criteria that the shortcut needs to be a share shortcut instead of having Person object.
Change-Id: I1ea52a50c909ca96365c1d4e55af97931d048d8f
Test: atest ShortcutHelperTest
Test: atest DataManagerTest
Bug: 154254830
Add a Logger for sharesheet and add calls into ChooserActivity.java
Bug: 147508495
Test: manual testing and added unit tests into ChooserActivityTests.
Change-Id: I0024b5020f47475a28c4745af4d8ef268e5f85be
This change is targeting on reducing the latency to unlock a user. It
includes these changes:
(1) In DataManager.onUserUnlocked(), execute the listeners registration
code on a worker thread.
(2) Merge the usage stats service query and data persistence to one thread.
(3) Adjust the query events max age from 1 day to 5 mins because we
already persist those events in PeopleService. No need to re-query those
events.
With this change, PeopleService.onUserUnlocked() execution is reduced
from ~200 ms to <1ms. And listeners are set up after conversations being
loaded from the disk. This ensures at the events query time (such as
UsageStatsService query), all the conversations are already available in
People Service to avoid missing some events (events without an
associated conversation are dropped).
Change-Id: I5248afa2771588a2434c335867de4e2d1a2eb6f3
Test: atest com.android.server.people.data.DataManagerTest
Test: atest com.android.server.people.data.ConversationStoreTest
Test: atest com.android.server.people.data.PackageDataTest
Bug: 150733302
In addition to the bug fix, this also changes the user lifecycle callbacks People Service is using:
1) onUserUnlocking() -> onUserUnlocked()
2) onUserStopped() -> onUserStopping()
The user lifecycle callback changes are based on a recent callback API
change in ag/10396717. This change will make the service run safer: it
avoids performing queries on locked users.
Change-Id: I4d0ebdb80f2181b5eb5a636d345c53a01c7df210
Test: Manual test
Test: atest com.android.server.people.data.DataManagerTest
Bug: 150882079
recency of past sharing for the moment.
Bug: 149822311
Test: atest com.android.server.people.data.DataManagerTest
Test: atest com.android.server.people.data.ShareTargetPredictorTest
Change-Id: I90d1b3f488b34fede7d577dc04832b976f4a1bbb
Previously, the caller's user ID was got from Binder. But
AppPredictionManager clears caller's identity. The only way to get the
caller's user ID is to get it from session ID.
Bug: 146522621
Test: atest com.android.server.people.data.DataManagerTest
Test: atest com.android.server.people.data.ShareTargetPredictorTest
Change-Id: Ia0dc35879084110849e06e919ff3b3c7241c46fd
UsageStats NOTIFICATION_INTERRUPTION events are only created if a
conversation has its own conversation-specific notification channel
created. Switch to NotificationListenerService so that we could get the notification posted events from all conversations.
Bug: 146522621
Test: atest com.android.server.people.data.DataManagerTest
Test: atest com.android.server.people.data.UsageStatsQueryHelperTest
Change-Id: Iaa120567891144a952707deb5cea1321aa28341c
This change is to speed up the system boot time. The people service
start time will be reduced from ~1.5 ms to ~0.5 ms.
Bug: 149245782
Test: Manual run with System.nanoTime() logged
Change-Id: I9114b3c9e3637b2498618220665cd98df1d1f994