Inlined keyboard suggestions are provided by the OS while
hosted by the keyboard. The clicks are detected by the OS
trusted code to release the data. Not all suggestions may
fit on the keyboard suggestion strip and the user may need
to scroll. To support this we are delegating the touch
event stream to the keyboard window as soon as the OS
detects that the user is not clicking, i.e. after a pointer
went down and moved more than the touch slop.
Bug:146535667
Test: atest CtsAutofillTestCases
atest inputflinger_tests
atest com.android.server.wm.DragDropControllerTests
atest android.server.wm.DragDropTest
atest android.server.wm.CrossAppDragAndDropTests
added dedicated tests to inputflinger_tests
Change-Id: Iefb732f70a7b593b31ab2f323b0c277e3819f7b7
SystemTextClassifier that is backed by ExtServices
1. The default textclassifier is always provided by
config_servicesExtensionPackage (i.e. ExtServices)
2. OEM can specify a system text classifier by specifying
config_defaultTextClassifierPackage.
3. System text classifiers can get an instance of the default textclassifier
by calling TCS.getDefaultTextClassifierImplementation(), so that
they can add their customization on top of the default TCS.
4. If config_systemTextClassifierPackage is set, the specified package
is used to process requests from apps and the platform. Otherwise,
the default textclassifier is used.
5. For testing and droidfooding purpose, text classifier service package
can be overridden. If the overridden package is neither
the default one nor the system one, the package is considered as a
untrusted text classifier, which can only see requests from itself.
Test: m mts && mts-tradefed run mts-extservices
Test: Not setting config_defaultTextClassifierPackage. Select some text and
make sure smart selection works. Run dumpsys textclassification
to make sure the default TCS is bound.
Test: Setting config_defaultTextClassifierPackage and repeat the above.
Make sure the specified OEM text classifier is used.
Test: Set the service override config to be ExtServices.
Run dumpsys textclassification to make sure everything is unbound.
Select some text and make sure ExtServices is bound.
Test: Set the service override to be AiAi and repeat the above.
Test: Set the service to be something invalid and repeat the above.
Observe that no TC is bound and fallback to NO_OP.
BUG: 148049185
Change-Id: Ia2fb549fda49363e0d0ebc4b7e0d31cb76e11ee0
Make TCS.getDefaultTextClassifierImplementation returns a ...
SystemTextClassifier that is backed by ExtServices
1. The default textclassifier is always provided by
config_servicesExtensionPackage (i.e. ExtServices)
2. OEM can specify a system text classifier by specifying
config_defaultTextClassifierPackage.
3. System text classifiers can get an instance of the default textclassifier
by calling TCS.getDefaultTextClassifierImplementation(), so that
they can add their customization on top of the default TCS.
4. If config_systemTextClassifierPackage is set, the specified package
is used to process requests from apps and the platform. Otherwise,
the default textclassifier is used.
5. For testing and droidfooding purpose, text classifier service package
can be overridden. If the overridden package is neither
the default one nor the system one, the package is considered as a
untrusted text classifier, which can only see requests from itself.
Test: m mts && mts-tradefed run mts-extservices
Test: Not setting config_defaultTextClassifierPackage. Select some text and
make sure smart selection works. Run dumpsys textclassification
to make sure the default TCS is bound.
Test: Setting config_defaultTextClassifierPackage and repeat the above.
Make sure the specified OEM text classifier is used.
Test: Set the service override config to be ExtServices.
Run dumpsys textclassification to make sure everything is unbound.
Select some text and make sure ExtServices is bound.
Test: Set the service override to be AiAi and repeat the above.
Test: Set the service to be something invalid and repeat the above.
Observe that no TC is bound and fallback to NO_OP.
BUG: 148049185
Change-Id: Ia2fb549fda49363e0d0ebc4b7e0d31cb76e11ee0
(Very important conversations). Track VICs in a different
field, and update DND (and public apis) to allow
all, important, or no conversations through.
Test: atest, cts
Bug: 137397357
Change-Id: Iae04546eb7c0b1e79cfdbeec7311628cd7ad634a
As part of statsd becoming a Mainline module in R, autogenerated
StatsLog.write() calls are going away and replaced by
*StatsLog.java
that is autogenerated for each module.
This CL replaces some usages of StatsLog with
FrameworkStatsLog.
Bug: 145952197
Test: m
Change-Id: Iaa2db34a7be4c3215f62cc36661ba8ac81656baa
Notification instance IDs are generated by NotificationManagerService
when the notification is first posted, and stored in the
StatusBarNotification so that they can be passed to the SystemUI
process.
Bug: 144022566
Test: atest NotificationManagerService BuzzBeepBlinkTest RoleObserverTest
Test: statsd_testdrive 244
Change-Id: I804786dfa165864257d8801d7e96f2ac0ead960f
Run the CtsQuickAccessWalletTestCases whenever submitting changes
to the quickaccesswallet api.
Bug: None
Test: None
Change-Id: Ide0540c264f958d04b729e1ccc3cb569b1926cd6
Motivation: if the Content Capture service want's to end the session, it
can close the read-fd, while not have finished reading, and that would
result in an exception in the system server, that can later be
propagated to the caller as an error.
Similarly, timeout of the sharing session can be reflected as an error
with a specific error code.
Test: built Android locally and perfomed a manual test.
Bug: 145203958
Change-Id: Iaeb45e0ab68da9fe30dce1ae4eab2354ef56d827
Seperated out the state part from contentDescription. Also changed the
tile on/off states from mocking switch to unavailable/on/off state
description based on State.state. During testing, I removed event
merging (including source node merging) for state and content change
events. Use event text for state description changed part will be in a
seperate CL.
Test: tested on the quick settings tiles for focusing and state change
evnets. With the event merging removed, the state change is announced
when the focus keeps on the tile. Before my change, content change is
not announced when the focus keeps on the tile due to source node change
in event merging.
Fix: 148473520
Change-Id: I5b6aee6f0982cf4e0a3962fbe15239314f3a2de4
For switching on BLAST we are implementing deferred transactions for
compatibility. Presently the BLAST Surface is constructed by the ViewRootImpl
and so the WM has no reference to pass when using it as a barrier layer for
deferTransactionUntil. To resolve this we construct and hold a reference to
the BLAST Surface on the server side, and pass it down to the client in relayoutWindow.
We don't use the WindowStateAnimator surface directly as both the BLAST Adapter and
the WindowStateAnimator would then be setting crops on it.
Bug: 146598493
Test: Builds, existing tests pass.
Change-Id: I6513e0442f5c75f01eb8dde5f1924dd7b636163c
The start of basic controls implementation. Support for lights, locks,
and basic thermostat information. Token support is needed only for
mocking at the moment and will be removed.
Bug: 148207527
Test: SystemUiTests
Change-Id: If25c57735ebd314a978d3969934d781eafc4f89c
This API allows any whitelisted caller app supply data to Content
Capture Service. CDD suggests to not use standard "binding" mechanisms,
so this is a guaranteed-writeonly way of sharing data.
Test: build Android locally, manual E2E test
Bug: 145203958
Change-Id: If2219acd6aa48f199e4dadd6f18ceb55c258e1d0
All other files were moved earlier. This is a newly added file
that was added in the old location.
Test: basic sanity
Bug: 140908357
Change-Id: I756b5834ddb1031627168a17dc49ce93b5af8219
This obsoletes the MetricsLogger logging in NotificationRecord
and StatusBarNotification, which will be removed after we validate the
new logs.
Bug: 146488473
Test: with statsd_testdrive
Test: atest NotificationManagerServiceTest
Change-Id: Ia24710ab67f760e1a9f22b4d59d9a6e776821f60
This CL removes @hide from all the controls API as well as introduce
some minor changes:
* ControlTemplate and ControlAction are not Parcelable. There are
Parcelable wrappers that stores all the information in the Bundle
produced by #getDataBundle.
* Control supports a customIcon and customColor to override those
defined by deviceType.
Missing:
* Javadoc in some classes/methods
* CTS testing
Test: atest ControlProviderServiceTest
Test: atest ControlActionTest
Test: atest ControlTemplateTest
Bug: 147760868
Change-Id: I3279ecfcc4fabe05a4b278385eb89ea6a92e3a33
Added ability for AlwaysOnHotwordDetector to support async enrollment
performed outside of support detected through KeyphraseEnrollmentInfo.
Bug: 147159435
Test: tested enrollment and availability is updated when enrolling
outside of KeyphraseEnrollmentInfo
Change-Id: Ia5d71e90c062ac100d4c6df760acf0d41920853e
Exposes a set of @SystemApi's allowing the active VoiceInteractionService
to enroll voice models.
Bug: 147159435
Test: manual tested enrollment and unenrollment via bundled
hotwordenrollment application and test app.
Change-Id: I94ef3550df236486401a0a6f9de9d874b9bf9b46
Add an API in WallpaperManager (client and server) and
WallpaperService to pass a wallpaper zoom value to the
wallpaper service and engine.
Bug: 146387434
Test: (added testDeliversZoomChanged)
Test: atest WallpaperServiceTest
Change-Id: Idd9ea2aefb845ad1d330cbdd6e088b926bcfece7
When root-level content containers fit insets, they used to just
apply and consume the entire system insets. However, with the new
Inset APIs, and with deprecating ADJUST_RESIZE IME flag, we want
to give apps an easy way to customize this behavior.
For that, we introduce Window.setOnContentApplyWindowInsetsListener
that returns what kind of margins/padding should be applied and
what should be dispatched to the content views. This is essentially
a replacement for SYSTEM_UI_FLAG_LAYOUT_* as well as
SOFT_INPUT_ADJUST_RESIZE: It allows apps to choose which insets
should be handled on the window level vs view level.
For that, we mark the window decor views as
FRAMEWORK_OPTIONAL_FIT_SYSTEM_WINDOWS, in order to distinguish the
case when support library calls makeOptionalFitSystemWindows(). This
is because of two reasons:
- We don't want the listener to be invoked twice.
- We can not do the compat ping-pong between onApplyWindowInsets
and fitSystemWindows. This is because during the ping-pong, the
result of the OnContentApplyWindowInsetsListener would be lost.
However, we still need to do the compat ping-pong for
ActionBarOverlayLayout in the support library (until that gets
migrated to use onApplyWindowInsets), so we have this separate
dispatching path that only gets used for framework optional
fitting views.
Test: WindowTest
Bug: 118118435
Change-Id: I4b514addd9e094163062d651972f85615b4a35db