Commit Graph

3467 Commits

Author SHA1 Message Date
Chet Haase
d2ade39d7b Pause animators when app is not visible am: b99cc5b4c8
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18528824

Change-Id: I28c84fb50d57454517b5a62b51a15ddb2e562341
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-06-07 19:56:51 +00:00
Lucas Silva
b30b1683e1 Use try-with-resource statement for dream metadata to ensure proper
cleanup.

This ensures the memory is properly cleaned up if an exception is thrown
while building the DreamMetadata object.

Bug: 234343900
Test: locally on device
Change-Id: I29b2bed30c216d5e353fa0a8b0da74579b33cecb
2022-06-01 19:04:57 +00:00
TreeHugger Robot
90579f32b3 Merge "Add support for onReject and onError for external hotword." into tm-dev 2022-05-26 17:14:11 +00:00
Sergey Volnov
be0edce59a Add support for onReject and onError for external hotword.
Bug: 230658902
Test: atest --no-bazel-mode CtsVoiceInteractionTestCases:HotwordDetectionServiceBasicTest
Change-Id: Ic845f06c2e3943f4968067dd23a0520aecce3973
2022-05-24 01:39:21 +01:00
Chet Haase
b99cc5b4c8 Pause animators when app is not visible
Because animators are not tied to the lifecycle of any UI
elements, it is possible for an app to go into the background
and for the animators to continue running. Ideally, the app would
track the lifecycle of the activity/etc and pause or disable the
animators, but it is common for this to not happen, causing the
animators to continue spinning when the app does not need them.
The animators are not causing as much work as for a foreground
activity (since they do not cause any re-rendering), but they cause
work nonetheless by keeping Choreographer awake to continue pulsing
frames.

The ideal fix would be to introduce new API for animators that
tied them to lifecycle concepts (View, Activity, etc). But that kind
of fix would only be available for future versions of the platform,
and does not address existing app code. A workaround for the current
situation is to address the most egregious problems; infinite animators
running on backgrounded apps.

The fix here is exactly that: when an app's visible surface (either an
activity or, for Wallpapers, a WallpaperService) is backgrounded,
a request is sent to pause animators for that surface. When that surface
comes to the foreground, a request is sent to resume those animators.
Since all animators are handled on the same thread for the same process,
in AnimationHandler, we should only ever pause animators when *all*
surfaces for a process are not visible (and resume them when *any*
surface becomes visible). Also, to mitigate any issues with thrashing
animator state for apps which become only transiently backgrounded,
we delay pausing for some time.

Bug: 228598053
Bug: 233391022
Test: new AnimatorLeak CTS test, plus manual testing for activities
    and wallpapers

Change-Id: I8b9f841cc80babb972244c724968a5c085a06b69
Merged-In: I8b9f841cc80babb972244c724968a5c085a06b69
2022-05-23 20:31:19 +00:00
Shashwat Razdan
1ec2fe2e7d Merge "Unlink to death before removing the callback wrapper in SmartspaceService/AppPredictionServic3e" into tm-dev 2022-05-23 17:56:46 +00:00
TreeHugger Robot
abfe28784c Merge "Finish DreamActivity on creation if it is obsolete" into tm-dev 2022-05-21 21:33:36 +00:00
Hyunyoung Song
9f3fde7d70 Unlink to death before removing the callback wrapper in
SmartspaceService/AppPredictionServic3e

Bug: 232548271
Test: ahat

Change-Id: Ia86343721c4c8c57e52dd7d3e76de0eba6809058
2022-05-20 15:49:02 -07:00
Hyunyoung Song
197fa0acf2 Fix SearchUiService memory leak by removing DeathRecipient from
CallbackWrapper

Bug: 232548271
Test: used  go/ahat to see memory stay steady
Change-Id: I182b6dc3ce4d86ab46c5543a1ff68f320fecaa98
2022-05-18 16:44:30 -07:00
Vania Desmonda
eb0f10153f Merge "Prevent duplicate calls to updateSurface() and recursive call to updateSurfaceDimming()." into tm-dev 2022-05-13 07:01:18 +00:00
TreeHugger Robot
d5cd970e0c Merge "Inform Assistant when security exception occurs during onDetected" into tm-dev 2022-05-13 03:19:48 +00:00
Vania Desmonda
41af1e31d3 Prevent duplicate calls to updateSurface() and recursive call to
updateSurfaceDimming().

Reduce jank by removing notifyColorsChanged() on updateSurface() which
caused notifyColorsChanged() to be called multiple times successively.

Test: manual, atest WallpaperManagerTest
Bug: 229715857
Change-Id: I552a6956648250cd36787b7ddd79758422ea7f68
2022-05-12 14:09:34 +00:00
Peter Li
e6bbe4660e Inform Assistant when security exception occurs during onDetected
By the behavior, the interactor of assistant needs to call the
startRecognition function again after hotword event is triggered.
Otherwise it will not receive the result of detection.

Currently when security exception occurs during onDetected, we
won't inform the interactor of assistant about the hotword event.
It will cause the interactor still to wait the hotword event and
doesn't call startRecognition function again.

After syncing with assistant, we should use onError() callback
to inform interactor.

The behavior of onError() in the interactor:
For both of DSP and Software, assistant will call startRecognition
function.

The behavior of onRejected() in the interactor:
Only for DSP, assistant will call startRecognition function.
For Software, assistant doesn't expect to get onRejected()

Bug: 230738063
Test: atest HotwordDetectionServiceBasicTest
Change-Id: I3083fd5a4a78ad9d2f35acd7fa1a4f2036cf64de
Merged-In: Ideb210d4364d4c48c747d66268d77a2f5b017186
2022-05-12 09:50:08 +00:00
Vania Desmonda
05aa78241d Merge "Revert "Avoid calling updateSurface twice when dimming is applied."" into tm-dev 2022-05-11 10:10:54 +00:00
Vania Desmonda
ceb55ed11b Revert "Avoid calling updateSurface twice when dimming is applied."
This reverts commit 9c4b4e14a0.

Reason for revert: Causes increased memory as reported in b/231834913

Change-Id: I95884e6f8b8416a6b8c85637dab5540f09eb89e1
2022-05-10 08:05:22 +00:00
Scottie Biddle
d5db263384 Move CtsQuickAccessWalletTestCases to presubmit-large.
One of the tests contained therein takes more than a minute to run, so these belong in presubmit-large

Change-Id: I2f216badf1e79fc7339098bad0157f76cc2fd73f
Test: atest CtsQuickAccessWalletTestCases
Fixes: 225066814
2022-05-06 16:24:11 +00:00
Vania Desmonda
bc99f623d4 Merge "Avoid calling updateSurface twice when dimming is applied." into tm-dev 2022-05-04 09:43:53 +00:00
Robert Horvath
87c7caa455 Finish DreamActivity on creation if it is obsolete
DreamService keeps a reference to its DreamActivity, and finishes it
when the dream stops. This reference is set when the DreamActivity
receives its onCreate lifecycle callback.

If a dream is stopped shortly after it started, before its DreamActivity
was created, the DreamActivity can be created after the dream is
supposed to be finished, and finish isn't called on the activity.
If another dream starts another DreamActivity, the reference to the old
DreamActivity is overwritten and lost, so that DreamService can no
longer finish the old DreamActivity.

This change tracks the DreamToken, unique to each dream, that an
activity was started for. If an activity is created for a dream that is
already finished, the activity is finished immediately.

Bug: 229561570
Test: manual, with adding delay before startDreamActivity to ease
      reproduction
Change-Id: I0fca226855ee4e2317ac807a4c87c8656c72169b
2022-04-29 18:08:13 +02:00
Bryce Lee
493062c55e Merge "Unbind from dream overlay in onUnbind." into tm-dev 2022-04-28 21:57:18 +00:00
Bryce Lee
1da50a201b Unbind from dream overlay in onUnbind.
If a dream is unbound before finish, unbinding from the overlay service
will not occur before onDestroy. This will result in an exception from
unbinding from a non registered service. This change ensures the dream
service unbinds from the overlay service when unbound.

Test: atest DreamManagerServiceTests#testForceStopStubbornDream
Fixed: 229824204
Change-Id: Id708b9119c5498bf9632b21a539c3ca7f5506737
2022-04-28 17:57:38 +00:00
TreeHugger Robot
a74842fe07 Merge "Make GameSessionTrampolineActivity invisible" into tm-dev 2022-04-28 04:32:39 +00:00
David Samuelson
eeebac455b Merge "Ensure GameSessionTrampolineActivity launches intent once." into tm-dev 2022-04-27 22:22:59 +00:00
shannonchen
7b2c3db83a Make GameSessionTrampolineActivity invisible
This change adds a new theme to prevent
GameSessionTrampolineActivity from displaying
any UI, which in turn delegates the
decision of whether or not to show things
like the system bars to the delegate
activity. This change also disables
transition animations for the trampoline
activity, to prevent them from causing
flickering.

Bug: 229757156
Test: manual testing using GMS dashboard
Change-Id: I82e0ede2e9f0b334fd01e958eab0736042119e84
2022-04-27 20:13:57 +00:00
Tyler Lacey
c85e97a7a1 Merge "Use Window Context for SurfaceControlViewHost." into tm-dev 2022-04-27 17:46:28 +00:00
Ahaan Ugale
44e14e72b6 Merge "Allow IVoiceInteractionSessionListener to listen for window vis changes" into tm-dev 2022-04-27 17:03:31 +00:00
Vania Desmonda
9c4b4e14a0 Avoid calling updateSurface twice when dimming is applied.
Test: manual, atest WallpaperManagerServiceTest
Bug: 229715857
Change-Id: Ib8c4939fea503ee71bf71a95dc71f10fd2956614
2022-04-27 11:20:19 +01:00
Winson Chung
06fb230d6d Allow IVoiceInteractionSessionListener to listen for window vis changes
- The listener currently tracks session shown/hidden, but doesn't track
  the visibility of the session window which can change on the client
  side without the server knowing. In some cases, it's useful for SysUI
  to be able to track the visibility of the session window to show/hide
  bars appropriately.

Bug: 222308557
Test: Manual, launch the assistant and verify the calls are made
Change-Id: I9b4bb27c9497b2a828616caf72eaf345b072c294
2022-04-23 05:56:27 +00:00
Simranjit Kohli
727ee17577 Merge "[Autofill Crash]: Fix NPE in AutofillManager." into tm-dev 2022-04-21 14:04:00 +00:00
Simranjit Kohli
1b57e4cc4c [Autofill Crash]: Fix NPE in AutofillManager.
Bug: 227192989
Test: atest android.autofillservice.cts.dropdown.AuthenticationTest#testFillResponseAuthServiceHasNoDataWithEmptyResponse
Change-Id: If56d690882e8d4ad0dba1534f127478089c4d04f
2022-04-20 18:10:23 -07:00
David Samuelson
37db6025c6 Ensure GameSessionTrampolineActivity launches intent once.
Test: Manually & passes newly added GameSessionTrampolineActivityTest
Bug: 229394334
Bug: 202414447
Bug: 202417255

Change-Id: I15ea072805439531fc89ee4f3038acc57f8c49ea
2022-04-20 18:23:48 +00:00
Lucas Silva
b6918681db Merge "Cleanup dream preview complication." into tm-dev 2022-04-20 16:17:50 +00:00
Tyler Lacey
1f1f7c604f Use Window Context for SurfaceControlViewHost.
This change is needed so that views will receive configuration
changes via link View#onConfigurationChanged.

Bug: 228343237
Test: Manual testing

Change-Id: Iccc09babb910867e0cd8b21ed750d67e87b944f9
2022-04-19 15:22:22 -04:00
Peter Li
f11f969973 Extend the timeout of update state
Bug: 207717787
Change-Id: Iaeea0917ce4aa363cd5889379580aa77c05b43bf
Test: atest HotwordDetectionServiceBasicTest
2022-04-19 17:37:19 +08:00
Lucas Dupin
16d2613662 Merge "Invalidate empty pages at the start of wallpaper" into tm-dev 2022-04-14 23:29:00 +00:00
Jay Aliomer
72c1ca86aa Invalidate empty pages at the start of wallpaper
Fixes: 222632463
Test: pick colorful wallpaper and use one page only with widget
Change-Id: Ie20786e0ad72926e029bc34ec379426af3001428
2022-04-14 16:05:00 -04:00
Lucas Silva
9f23e051e4 Accessibility: Set the title of the dream activity to the label of the
current dream.

Fixed: 228274765
Test: locally on device
Change-Id: I95f77ccd5b58b2162946731e274cf55f26162e12
(cherry picked from commit 894e25c3a7)
2022-04-14 17:50:04 +00:00
Lucas Silva
0b0ff3ddd9 Cleanup dream preview complication.
Fixed: 229089441
Bug: 226986434
Test: locally on device
Change-Id: I5f42fff23826505ca18f7b365371b433e32d2d20
2022-04-13 14:45:32 +00:00
Fabian Kozynski
0549cf1251 Don't crash TileService app when systemui crashes
Prevent the host app from crashing if systemui crashes while binding to
it. Instead, just return null and let the new systemui process bind
again, as the service will be unbound.

Test: atest FrameworksCoreTests:TileServiceTest
Test: manual, tiles still work
Fixes: 168756844
Change-Id: I70e0e8a223a84874415f7e649106398a5e039097
2022-04-11 14:10:21 -04:00
Bryce Lee
410b5a6f98 Unbind from overlay before checking attached.
Currently, DreamService#finish exits early if the window is not
attached. The unbind from the dream overlay service follows this
condition. As a result, it is possible that the service is not
unbound if the window was never attached. This changelist addresses
This potential connection leak by having the unbind precede the
check.

Fixed: 227498355
Test: manual
Change-Id: I7a73258cea5219bea96f4de3b90b4b5a66478fde
2022-04-04 14:57:13 -07:00
Jack Yu
2f0440e4fe Merge "Updated the owners" am: c22f798040 am: d7659e6014 am: 0d9d376b45
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2052239

Change-Id: I2b0f3ca4b76ca656dde769ae1b26a9fe6a83d870
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-04-04 06:06:57 +00:00
Jack Yu
d7659e6014 Merge "Updated the owners" am: c22f798040
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2052239

Change-Id: Icf59b227d3b37ba84874d9452b16762b47603649
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-04-04 05:40:33 +00:00
TreeHugger Robot
20514d4e5e Merge "Add tracing to wallpaper local colors" into tm-dev 2022-04-01 17:30:41 +00:00
Jack Yu
7750d9fa9f Updated the owners
Updated the owners to the latest telephony and
telecomm team members.

Test: Build
Bug: None
Change-Id: I3a456b168ec24199413e42c5fa615ecf285af79b
2022-04-01 16:46:46 +00:00
Jay Aliomer
43cd27258f Add tracing to wallpaper local colors
Bug: 221495444
Test: N/A
Change-Id: Ia72308eef6bfa08523dd6cb7653b047cade86f7b
2022-04-01 10:07:27 -04:00
Simran Basi
ab7ee498bc Merge "Delete attribute useTargetActivityForQuickAccess." into tm-dev 2022-03-31 18:26:52 +00:00
TYM Tsai
e6ae224102 Merge "Make TextView do not show IME when fill dialog popup" into tm-dev 2022-03-31 14:09:17 +00:00
Scottie Biddle
e30d9986f1 Delete attribute useTargetActivityForQuickAccess.
In practice, the value of this xml attribute is always going to a
function of  whether or not getTargetActivityPendingIntent() is null--
when a QuickAccessWalletService sends us a PendingIntent, we will use
that instead of the SystemUI card switcher activity.

If the PendingIntent is null, we then fall back to our old behavior:
* If the wallet is not currently showing any cards, launch the activity
  specified by getWalletIntent() (this is hardcoded in XML metadata).
    * If the wallet is currently showing cards, launch the SysUI
      switcher activity.

Test: atest CtsQuickAccessWalletTestCases --retry-any-failure
Test: atest QuickAccessWalletControllerTest
Fixes: 218860062
Change-Id: I62f7ca507ebce29b03d6ce76bccaa6d736720a86
Merged-In: I4cfaa5b6035499c47a0ed8b1a4a5f3e1f0f50860
2022-03-30 23:28:49 +00:00
Yuri Lin
f4853ae012 Write ZenPolicy conversation settings out to XML
because apparently we weren't doing that before

Bug: 223453030
Test: ZenModeConfigTest
Change-Id: Ied8f9120881d04987d38b8dc6364f864331a29f0
2022-03-28 16:04:49 +00:00
Tiger Huang
5b19a1584a Merge "Send InsetsState to the client via IWindow#resized" into tm-dev 2022-03-26 03:50:44 +00:00
Sharon Su
affee4a5e1 Merge "Update WallpaperEffectsGeneration api, including annotations on data classes and allow the same uid process to call returnCinematicResponse API." into tm-dev 2022-03-25 17:05:09 +00:00