Sometimes see temporary black wallpaper after setting a new image
wallpaper because of:
- decode bitmap twice, results in long latency until drawing.
- the set wallpaper apis didn't sync with wallpaper rendering well.
Solutions:
- Only decode bitmap when necessary.
- Make set wallpaper apis wait for image wallpaper rendering finished.
Bug: 194080642
Test: see b/194080642#comment3
Test: atest WallpaperManagerServiceTests --iterations 50
Test: atest SystemUITests
Change-Id: I369eff5195571161cf286b3ec97175481b02eed7
Sometimes see temporary black wallpaper after setting a new image
wallpaper because of:
- decode bitmap twice, results in long latency until drawing.
- the set wallpaper apis didn't sync with wallpaper rendering well.
Solutions:
- Only decode bitmap when necessary.
- Make set wallpaper apis wait for image wallpaper rendering finished.
Bug: 194080642
Test: see b/194080642#comment3
Change-Id: I369eff5195571161cf286b3ec97175481b02eed7
Currently we have AlwaysOnHotwordDetector and
SoftwareHotwordDetector, when the app creates the detector,
it will create a HotwordDetectionConnection to communicate
with HotwordDetectionService.
Problem:
AlwaysOnHotwordDetector will work incorrectly if the app
creates SoftwareHotwordDetector first, then creates
AlwaysOnHotwordDetector later.
A simple flow is that the app created a
SoftwareHotwordDetector and used it. After a while,
the app may want to use AlwaysOnHotwordDetector,
so it will create a new AlwaysOnHotwordDetector.
By the original flow, it only allows to keep one detector,
so the system will shutdown the old
detector(SoftwareHotwordDetector) and create the new
detector(AlwaysOnHotwordDetector).
Because we don't clear the connection when shutdowning
SoftwareHotwordDetector (PS: We clear the connection
when shutdowning AlwaysOnHotwordDetector), it will use the
previous connection when creating the AlwaysOnHotwordDetector.
Root cause:
Because we don't shutdown hotword detection service when
software hotword detector is shutdown, the new creating
AlwaysOnHotwordDetector will use the previous
HotwordDetectionConnection to communicate with
HotwordDetectionService.
Due to the callback in HotwordDetectionConnection is for
SoftwareHotwordDetector, it can not pass the right data
to AlwaysOnHotwordDetector.
Solution:
Shutdown hotword detection service when software hotword
detector is shutdown.
Bug: 195604579
Test: atest CtsVoiceInteractionTestCases
Test: atest CtsVoiceInteractionTestCases --instant
Test: manual - DSP and non-DSP
Change-Id: I999dc4cc9d5ce858127a9b44db261d7abee98929
A prior change to the permissions flow for Trusted Hotword
(I80dabaf6ae0e781028dde16ead3321fbff319542) made the system enforce
the required permissions on the APIs the conventional way - by throwing
a SecurityException. But the existing behavior was to silence these
exceptions and instead return error results. This change brings back
the old behavior which exists in the SoundTrigger layer.
Also removes permissions checks for a couple of APIs to again be
consistent with the old behavior (and the current behavior in the
SoundTrigger layer).
Fix: 193116894
Test: manual - remove permission and reboot / remove permission after
boot, stop/start reco
Test: atest HotwordDetectionServiceBasicTest
Change-Id: I56391260fd4375a04233eb3261bacec8696bda99
With this change, WallpaperController sends "freeze" / "unfreeze" commands when the app window is letterboxed / not letterboxed indicating that:
- "freeze": a screenshot of the wallpaper is taken by WallpaperServices and put on top of the main surface while the wallpaper host is notified through onVisibilityChanged(false) callback that it's no longer visible.
- "unfreeze": a screenshot of the wallpaper is removed and the wallpaper host is notified through onVisibilityChanged(true) callback if the wallpaper is visible again (e.g., if transitioned from an app to the Home screen).
Logic isn't applied to static wallpapers.
When wallpaper size changes while being frozen, the screenshot is scaled and cropped to adjust to the new size.
Fix: 177884751
Test: Manual, atest WallpaperServiceTest, WallpaperServiceTests
Change-Id: If0300478cdccc07d226117e01ce3d43aa0b432a0
Log.wtf should have been Log.e and it is only an informative log
Fixes: 192327606
Test: WallpaperServiceTest
Change-Id: I2e13cf6f7f7abffbb8d3f28aeaa0605711085157
InsetsState contains much more information than visibilities, such as
display frame, display cutout, rounded corners, privacy indicator
bounds, and frames of of insets sources. The control target only needs
to send the requested visibilities to WMS, so it can be too heavy to use
InsetsState.
This CL introduces an new class, InsetsVisibilities, which only contains
which type has which visibility. So it uses less memory, and it is more
efficient on copying and checking the equality.
Fix: 194186241
Test: atest InsetsVisibilitiesTest WindowAddRemovePerfTest
InsetsControllerTest RegisterStatusBarResultTest
CommandQueueTest LightsOutNotifControllerTest
ActivityRecordTests DisplayContentTests
DisplayPolicyLayoutTests InsetsPolicyTest
InsetsSourceProviderTest InsetsStateControllerTest
WindowFrameTests WindowManagerServiceTests WindowStateTests
Change-Id: I86c1b26b4383bfa3b924726d580e5706e13ba735
This allows the buffer producer to consume the transform hint
for the first frame.
Bug: 194425759
Test: Rotate static wallpaper and check transform sent to HWC for wallpaper layer
Change-Id: I7f688c35ea836f57e3443e03d584fa85e745c6f9
Set the Debug flag to false, but we also reserve some logs
for clarifying the issue.
Bug: 177502877
Test: atest CtsVoiceInteractionTestCases
Test: atest CtsVoiceInteractionTestCases --instant
Change-Id: Idf5dd82d8db27bb682b473eb4584e8b230073d08
Switch most usages of rule.pkg over to rule.getPkg() except for
ones that render Settings UIs, where a null package implies the UI
should be shown differently
Test: atest; trigger DND with a rule created before we started storing pkg
from the creating app rather than inferring it
Fixes: 191827482
Change-Id: I8fce30077d9e457ab0402b913dc551e55de2ee8f
This is partially a followup of
I80dabaf6ae0e781028dde16ead3321fbff319542 which removed these operations
from the SoundTrigger layer when the HotwordDetectionService is used.
Also fixes a race condition where the DSP event can go directly to the
Interactor if the DetectionService isn't connected.
Bug: 186164881
Test: atest HotwordDetectionServiceBasicTest
Test: manual - DSP and non-DSP
Change-Id: Iee3b00c6c08597ad1993fae677e9f8ae2f60744c
Currently we limit the max value of hotword offset to 1 hour and
audio channel to 63.
Bug: 190688148
Bug: 192331590
Test: atest CtsVoiceInteractionTestCases
Test: atest CtsVoiceInteractionTestCases --instant
Change-Id: I38379b77c2ab5ceb6c3b84f94e415bfe9f4c54e8
Grants mic access to the process as soon as it comes up, instead of
waiting for the initialization status callback.
Bug: 190011174
Test: manual - dsp and non-dsp; restarting while invoking the hotword
Test: atest CtsVoiceInteractionTestCases
Change-Id: I54e0b42868f663ae1c9edd9bcf4aaee2a13b827a
fetches a drawable for wallet tile.
The wallet tile will get the icon drawable from QAW client; if it
doesn't exist, fall back to the static icon in SysUI.
Test: manual
Bug: 190606984
Fixes: 190539096
Change-Id: I2d822ee34c8e4b27ae72e86186b0d78f2b52854f
This reverts commit cb5a80ea57.
Reason for revert: Was not the cause of the test failure
Fixes: 186622527
Test: atest FrameworksCoreTests:ContextTest
Change-Id: I705854f080200f0465d94a7754e710f05a3ec92c
SurfaceFlinger scheduler keys off the window type to implement some
refresh rate selection logic. If a layer has window type wallpaper, then
the refresh rate vote is set to min. With Blast, the actual buffer will
arrive in a layer without the window type metadata. Fix this by
setting the metadata on the blast bbq layer as well.
Test: check if wallpaper runs at a lower refresh rate
Fixes: 191222072
Change-Id: I50058cf42fca155630354ea247d12511ebfe37a8
The current launcher implementation, the resumed Activity doesn't
enter paused state when entering overview. The launcher will have
a start activity event when entering overview but we don't provide
start event now.
We are not allowed to add new APIs now, we add new hidden constant
constants in ActivityEvent and send the event when the activity is
started.
Bug: 189968849
Test: manual. Checks if the activity start events are received by
ContentCaptureService
Test: atest ActivityRecordTests
Change-Id: I8e4f8b7ac8f24c66ccad9f7e884cac9e20ce3cc6