The change makes the distinction between VibrationEffect and
CombinedVibratio clearer. The later is a combination of the former with
the extra information about the vibrator ids, allowing effects to be
played in one or more vibrators in parallel or in sequence.
The methods create/start synced where also renamed to parallel (together
with respective builder classes), to indicate they perform one or more
effects in parallel on multiple vibrators. This is also a better match
to the sequential combinations.
This change also deprecates the Context.VIBRATOR_SERVICE in favour of
the new VIBRATOR_MANAGER_SERVICE. The default vibrator can be retrieved
from the manager system service.
Same deprecation applied to InputDevice.getVibrator method.
Fix: 184123900
Test: CombinedVibrationTest
Change-Id: I44d8b225098d35fbf7783254acaf6a78f9fb4505
Currently, the Translation uses feature to determine if we need to
start the translation system service. But our case is like the
content capture not the autofill, the autofill can have the feature
without any service defined and the user can install one later. But
translation isn't, we should need to check config instead of
feature.
The feature will not be used anymore, it's safe to delete it. If we
leave the removal to next OS, it is painful to delete it.
Bug: 183360041
Test: atest CtsTranslationTestCases
Change-Id: Ib6886a17965937abf064e526c36c67428af7398f
1. Close AppSearchSession after use.
When the device is shutdown with open AppSearchSession, if the data is
not properly persisted to disk, it would lead to a recovery upon reboot,
which could hurt boot performance.
We cannot rely on shutdown signal to close existing session because the
broadcast is not guranteed. Since session creation is light-weight, it
is more performant to simply close the session everytime after use.
2. Refrain from calling setup schema on boot.
To improve the performance of device start up, we want to avoid calling
AppSearchSession#setSchema unnecessarily since it could hurt performance.
In this CL we saved the version of the schema in the xml file which can
serve as an indicator of whether schema setup is required.
Bug: 151359749
Test: atest ShortcutManagerTest1 ShortcutManagerTest2
ShortcutManagerTest3 ShortcutManagerTest4 ShortcutManagerTest5
ShortcutManagerTest6 ShortcutManagerTest7 ShortcutManagerTest8
ShortcutManagerTest9 ShortcutManagerTest10 ShortcutManagerTest11
ShortcutManagerTest12
Test: atest CtsShortcutManagerTestCases
Change-Id: I2d6b66cef0c152ad99611dec3dee32a473bef4a9
Reduce search space in AppSearch with following changes:
1. Introduce inverted flag upon saving document.
2. Implement AppSearch queries for more general cases.
Bug: 151359749
Test: atest ShortcutManagerTest1 ShortcutManagerTest2
ShortcutManagerTest3 ShortcutManagerTest4 ShortcutManagerTest5
ShortcutManagerTest6 ShortcutManagerTest7 ShortcutManagerTest8
ShortcutManagerTest9 ShortcutManagerTest10 ShortcutManagerTest11
ShortcutManagerTest12
Test: atest CtsShortcutManagerTestCases
Change-Id: I94ec6a2b04c83ef3689c65d63741340b01c9ff50
* changes:
Fix domain verify restore and add signature check
Support serializing package signatures for domain verification state
Add domain verification CTS to TEST_MAPPING
Fix DomainVerificationService deadlock
Check installed and enabled state for package domain approval
Revoke domain user selection when approved through shell
For targetSdk < S. For S, they can use the new
GLOBAL_ACTION_DISMISS_NOTIFICATION_SHADE action to dismiss the
notification shade.
Bug: 159334261
Test: Send Intent.ACSD from an a11y service and verify shade is
collapsed when targetSdk < S, and exception thrown when targetSdk
S+.
Change-Id: I0e4be3faef8efa53a0b8a08263e842e0c4b1553e
Besides UI contexts, the context created via
Context#createConfigurationContext with a proper configuration
should be allowed to inflate views or obtain ViewConfiguration.
An example is that a wear device inflate views into bitmap and pass
the bitmap to the Wear OS Companion app on the phone.
Bug: 177847640
Test: atest StrictModeTest
Change-Id: Iab232a80a973f54bf0484262d45af3e4c2f0e5dc
Codegen is a tool that generates parcelable classes from
field declarations. Hence, the @SystemApi annotations are
placed on the field and the tool propagetes them to the
generated APIs. We need to update the AnnotationTest to
either ingore these generated classes or ignore private
fields annotated with @SystemApi as they are not API in
practice. This CL removes the annotations to fix the test.
bug: 184086213
Test: atest android.signature.cts.api.AnnotationTest
Change-Id: Ibe9059f20d95d4cda4eb402704e3c4c002ff0e47
If the datasource is not in a trusted platform component then in would not
have UPDATE_APP_OPS_STATS. The problem is that an app is exposing runtime
permission protected data but cannot blame others in a trusted way which
would not properly show in permission usage UIs. As a fallback we are
adding a proxy op handling blaming the datasource and the caller.
bug: 183960997
Test: Assustant on auto projection works
Change-Id: I8a341a6c46c75eff86bac7a79c4219ebb7991071
When apps use requestOptimizedExternalStorageAccess flag, they get
additional performance benefit by bypassing database operations. They
still have to scan the file to update MediaStore collection otherwise
MediaStore collection can go inconsistent with lower file system.
Current flag name could lead to apps making wrong assumptions hence
changing the name to more precise name.
Bug: 178209446
Test: atest packages/providers/MediaProvider
Change-Id: I00747da9ea53566cbcdd8aa8b2195e536b397b67
We were writing the map as a generic Map, but reading it as an
ArrayMap. There's a subtle difference between the two methods.
The generic Map creator reads the map's key using readValue(),
which first reads an integer datatype and then the data. Whereas
the ArrayMap creator knows the keys are Strings and thus calls
readString() directly without consuming the datatype. This
throws the parcel reading logic out of whack.
Fixes: 176295431
Test: manual
Change-Id: I2d32488e3339e2d838e680be1ed9476b9e15cd69
If the package isn't installed or isn't enabled for a user, it cannot
be approved for that user.
Also hooks into package uninstall for a single user to remove the
domain state for that package for that user.
Bug: 183226822
Test: atest DomainVerificationManagerApiTest#getOwnersForDomain
Test: atest com.android.server.pm.test.verify.domain
Change-Id: I04942e1491d470fdd41e99f207bbf85baae87d4c
Propagate renounced permissions from context params
to the context attribution source. Throw if one
tries to request at runtime a renounced permission.
Also make the AttributionSource take null for the
setters to ease usage, otherwise folks should always
check for null before calling a builder method.
Additionally, we allow apps that have UPDATE_APP_OPS_STATS
to register arbitrary trusted AttributionSource for
testing. Note that this permission allows abritrary app
op operations, thus we are not relaxing the security
model.
bug: 158792096
Test: atest CtsPermission5TestCases
Change-Id: I4330684bb8695fb998cf31e9363b94ad981ba2cc
Per API council, moving this off of an intent and into
ActivityOptions. This information is exposed via a new
method: Activity#isLaunchedFromBubble
In this CL:
* Remove extra_is_bubbled bits & update javadoc
* Adds launchedFromBubble bit on ActivityOptions
* Check if the client is allowed to set this bit, only
system / sysui can set it
* Need to add this to the record / LaunchActivityItem as
ActivityOptions get null'd out once they're used so
save the bubble bit separately
* Adds Activity#isLaunchedAsBubble
* Sets bit on BubbleExpandedView
Bug: 180945896
Test: atest NotificationManagerTest
Change-Id: Ia2711f05fc4ebb521cc48e95c16336c13f2d47f8
To make S finalization easier, this changes the framework SDK so that
apps linking against it will be able to continue working as expected
after the first phase of SDK finalization.
During the first phase of SDK finalization, the resource ids of
resources that have not been removed are finalized.
staging-public-group tags are converted to staging-public-group-final
tags in order to encode into the framework what the staged resource id
of a finalized resource was. When an app recompiles, it will use the
finalized resource id. Then after all apps recompile, phase 2 of
finalization begins, in which the staging-public-group-final tags are
removed so apps can no longer use the staged resource ids.
Apps that link against the SDK (provided they are using a recent
version of aapt) will encode references to staged resources as
TYPE_DYNAMIC_REFERENCE and TYPE_DYNAMIC_ATTRIBUTE. The values of R
fields for staged resources are defined out-of-line to prevent them
from being inlined into apps linking agsint the SDK. This allows the
resource ids to change during phase 1 of API finalization.
Bug: 183413192
Test: `aapt2 diff` and resource ids stayed the same
Test: `aapt2 dump` of framework-res.apk and observe staged resources
Change-Id: Ie2275c608297a5f63dde8b1cf795415112cbcc24