Commit Graph

304 Commits

Author SHA1 Message Date
Romica Iordan
f68fbed311 Enable vendors to organize ImeContainer
Add FEATURE_IME as unique id for ImeContainer to organize it from
WmShell.
Disable automatic ImeContainer surface and container reparenting when
it is organized.

These changes enable vendors to control where the IMEs are positioned
and implement custom UX rules (e.g. for foldable devices - place the
IME on the bottom screen while the focused app is on the top one).

Manual test:
Organize FEATURE_IME from WmShell.
Set its bounds, appBounds, screenSizeDp and setSmallestScreenWidthDp.
Outcome:
* The IME receives onConfigurationChanges.
* The IME is updated on the screen.
* The IME is not reparented from its default parent.

Test: atest WmTests:WindowProcessControllerTests
Test: atest WmTests:DisplayContentTests
Test: atest WmTests:WindowContainerTests
Test: atest WmTests:DisplayAreaTest
Test: atest WmTests:DualDisplayAreaGroupPolicyTest
Bug: 188038793

Change-Id: I438253e9647ceab5b7847b8db66db8399271723f
2021-11-18 03:53:40 +00:00
Shivam Agrawal
993f30872f Update toString methods for various Embedding... am: d6cf8c85ac am: 3c32c63356
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16133687

Change-Id: Ia42bbf2880d42cbaae2cac02e8cf203cbf20e766
2021-11-10 03:55:14 +00:00
Shivam Agrawal
d6cf8c85ac Update toString methods for various Embedding...
...Reference Implementation classes

Bug: b/204193051
Test: manual
Change-Id: I79e94feb002dadc2219ccc7604843a3c61b91057
2021-11-09 09:38:45 -08:00
Alex Chau
d46b321e5f Add letterboxInsets to TaskSnapshot
Bug: 199743725
Test: manual
Change-Id: I7daa01d7e6d2df2bc1b85d12004e7927d61d0e03
2021-11-08 18:40:10 +00:00
Vadim Caen
9b578bf0db Merge "Add details about theme stability" into sc-dev am: 9aff8397c8 am: a35809b1a4
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16176790

Change-Id: Ibab630d4d88207bdd0ead70916525e49a6c8cd47
2021-11-05 12:26:50 +00:00
Vadim Caen
e37c9cb7ac Merge "Add details about theme stability" into sc-dev am: 9aff8397c8 am: 6814291fde
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16176790

Change-Id: Iba0b6e951ddcb66e0b07014fef389f0ab04c1453
2021-11-05 12:25:36 +00:00
Vadim Caen
a35809b1a4 Merge "Add details about theme stability" into sc-dev am: 9aff8397c8
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16176790

Change-Id: If6793004914e2c8345a1e2e7048675c7e98b4e78
2021-11-05 12:13:55 +00:00
Evan Rosky
7122b1ee6c Merge "Boost remote-transition animator processes during animation" into sc-v2-dev am: 62924f1213 am: be5ed6365b
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15632613

Change-Id: Ie2ca96fd1a670f749a131d43f5177a7ec6412f0b
2021-11-03 21:12:04 +00:00
Evan Rosky
62924f1213 Merge "Boost remote-transition animator processes during animation" into sc-v2-dev 2021-11-03 20:59:07 +00:00
Vadim Caen
180d2613e1 Add details about theme stability
Fixes: 186611969

Change-Id: Ie537eb3b73f5b440aa3da507a769e4ba26ea1cd0
2021-11-03 10:21:35 +00:00
Wu Ahan
807047352c Merge "Instrument jank of splash screen AVD and exit animation" into sc-v2-dev am: 43f59bb11b am: d9dd71a4d7
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16084829

Change-Id: I04e420e50cb9895f9f8ca181cc5ecbc2750bb2fd
2021-11-03 03:08:35 +00:00
Evan Rosky
7ba314d658 Boost remote-transition animator processes during animation
This basically ties applicationthread binder token to remote
transitions. Shell is first boosted (to run the shell transition
logic) and if it then delegates to a remotetransition, it will
then request that process also be boosted.

Bug: 183993977
Test: add logging in WPC.setRunningRemoteAnimation and verify calls
      during transitions
Change-Id: I94babc327e935ea81271942287a83b948dd11f8b
2021-11-01 16:54:26 -07:00
Wu Ahan
61cd0b63c4 Instrument jank of splash screen AVD and exit animation
Add jank instrument support for splash screen avd and exit animation.

Bug: 195736656
Test: see trace in comment
Change-Id: I1fdb9e14145bcf519eea99e440de74238e3c765c
2021-10-25 03:56:42 +00:00
TreeHugger Robot
7a2a03904b Merge "Migrate screen rotation latency tracker with shell transition" into sc-v2-dev am: a18b8a827e am: 672bcfb0dd
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16017068

Change-Id: I93ebd8401de45b3cacf19d301dff50782982d421
2021-10-20 02:39:31 +00:00
Riddle Hsu
9cb2c66248 Migrate screen rotation latency tracker with shell transition
It was done by WMS#startFreezingDisplay~stopFreezingDisplayLocked.
The duration is measured from rotation change to start animation.

Add a remote callback to know when the rotation animation is started.
So WM core can have the paired begin/end of trace that matches the
latency exactly.

The added ITransitionMetricsReporter is available for any processes.
So in the future it can also report the metrics from remote animator.
This change focuses on the rotation animation handled by shell.

Bug: 199836343
Test: adb shell setprop persist.debug.shell_transit 1; reboot
      Rotate display and check trace "L<ACTION_ROTATE_SCREEN>".
Change-Id: I180d2fe1a77e98b6427ba831a2db2593739376bd
2021-10-19 19:02:38 +08:00
Tony Huang
ab233079f5 Merge "Make split screen only reparent top task" into sc-v2-dev am: be0c2bdc92 am: 93083fa0a7
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15937026

Change-Id: I0375cd74189783fcd9b94d526c42ee69b55dde7e
2021-10-15 09:48:17 +00:00
Josh Yang
a70e769e93 Merge "Draw splash window during app switch if the top activity is not drawn." 2021-10-14 17:37:58 +00:00
Tony Huang
62c6c83f57 Make split screen only reparent top task
Follow latest split screen UX model, it should only reparent
the top task to split for app-pair model.

Fix: 201480664
Bug: 202740040
Test: manual
Test: pass existing tests
Change-Id: I4b360a31ce8e7366a77216a94b5f1b19bba848e9
2021-10-14 15:37:00 +08:00
Josh Yang
f2142d0f21 Draw splash window during app switch if the top activity is not drawn.
In Wear OS, when the device enters ambient mode, we will switch the front activity to the background. When device exits ambient mode, the previous activity will be moved back to the front. If the activity hasn't been drawn yet when the device enters ambient mode, we want to show the splash window when it's brought back to the front.

Bug: 176837715
Bug: 199552234
Fix: 199552234
Test: manual test
Change-Id: I8275db9cb51575b61f5a4f04316b77e3f53ba220
(cherry picked from commit 3dc923bafc4454490935fd9e6b4b6602a91febaf)
2021-10-08 18:23:59 +00:00
Wei Sheng Shih
9287d3cb2a Merge "Fix snapshot starting window stuck if the task never gain focus" into sc-v2-dev am: e921c7a282 am: 749c45ee1d
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15937040

Change-Id: I1a46bdf3cc9aa3734d1f6346f58544b2af0fe382
2021-10-06 05:34:52 +00:00
wilsonshih
379994b4f8 Fixes the flicker when transfer splash screen view to client
Use applyTransactionOnDraw to ensure all transaction happen
during the same frame, including
- hide the starting window.
- reparent the remote SurfaceView to client.

Bug: 198593932
Test: continues launch test app several times then verify with winscope
to ensure there is no flicker anymore.

Merged-In: I03c600afdc477ca0c8064b215f2b361468db9f3c
Change-Id: I03c600afdc477ca0c8064b215f2b361468db9f3c
2021-10-06 11:14:11 +08:00
wilsonshih
9987513af6 Fix snapshot starting window stuck if the task never gain focus
The tasksnapshot starting window could stuck on task if the task never
gain focus, this could happen when launch multiple tasks to front, e.g.
split screen, or add snapshot starting window to a pip task.

As using task focus to judge the task snapshot removal may error-prone.
(i.e. unexpected window focus in/lost, non-focusable task window..)

To ensure the tasksnapshot removal works stable, extanding
MAX_DELAY_REMOVAL_TIME_IME_VISIBLE timeout from 450ms to 600ms and also
reference mayImeShowOnLaunchingActivity to know whether IME showing on
this activity.

Bug: 199377815
Bug: 201264769
Bug: 200778734
Test: atest ActivityRecordTests StartingSurfaceDrawerTests
SplashscreenTests
Test: manual launch apps with IME from Recents.
Test: enter pip, power on/off, verify starting window is removed.
Test: manual enter split screen, verify starting window is removed.

Change-Id: I81b048a655124923a5f19e7f236511502bbf4c91
(cherry picked from commit a4f760bee7)
2021-10-05 20:43:35 +08:00
wilsonshih
74f1d7ba8f Fixes the flicker when transfer splash screen view to client
Use applyTransactionOnDraw to ensure all transaction happen
during the same frame, including
- hide the starting window.
- reparent the remote SurfaceView to client.

Bug: 198593932
Test: continues launch test app several times then verify with winscope
to ensure there is no flicker anymore.

Change-Id: I03c600afdc477ca0c8064b215f2b361468db9f3c
2021-10-05 18:26:51 +08:00
Ming-Shin Lu
5c23301322 RESTRICT AUTOMERGE: More improve IME transition during task switch
This CL aims to optimize the previous CL[1] to schedule removing
tasksnapshot after a fixed timeout according the tasksnapshot:
    - With IME snapshot: 350ms
    - Without IME snapshot: 100ms

As the previous approach has some cons espically when the tasksnapshot
has IME shown:
1) It lacks a signal or callback to notify WmShell to dismiss
tasksnapshot when IME is actually drawn on the task and always
dismissed after the timeout.

2) The timing to schedule tasksnapsit removal is when
ActivityRecord#onWindowFirstDrawn, which is much eariler than the
window focused (about 100-150ms), and it may easier to see flickering
when the task is showing IME.

The reason is that IME is drawn after window focused and started input
connection. Also, starts from R, IME insets visiblity
is handled by the app's UI thread, so if the schedule removal timing
been triggered too early and if IME / App takes more time to handle IME
surface layout, then user might aware the app task flickering when
tasksnapshot dismissed, since IME is not yet be drawn and then it
show up again when the next layout finished.

In this CL, we made the following changes to improve the above cons
- Postpone the schedule removing tasksnapshot (with IME) timing to
  after the app task has focused.
- Modify the tasksnapshot removal timeout (with IME)  from 350ms to
  450ms (with renaming to MAX_DELAY_REMOVAL_TIME_IME_VISIBLE),
  in case some edge cases may take longer time to process IME layout.
- add ITaskOrganizer#onImeDrawnOnTask(taskId) to notify the shell
  task organizer to properly remove the tasksnapshot without waiting
  until the max timeout.

[1]: I7865e17b57961e12a0cdcf068e412195123a6ec7

Fix: 192065018
Test: ateset StartingSurfaceDrawerTests#\
        testRemoveTaskSnapshotWithImeSurfaceWhenOnImeDrawn
Test: manual tests by
   1) launching Android Message with focusing an editor
   2) swiping out to home and launch another apps (e.g. chrome)
   3) swiping up to overview, tapping Android Message task
   4) verify if IME is flickering after switched back.
Change-Id: I81031f64966b1aeb55cc09f381d4d83ec3460dc9
(cherry picked from commit 278e944fd5)
2021-09-23 20:45:27 +08:00
Hao Ke
e08ec5fa63 Merge "Replace untyped Parcel read/write" 2021-09-16 02:06:33 +00:00
Charles Chen
c72d4fc175 Merge "[RESTRICT AUTOMERGE] Send DA's config directly when attaching to DA" into sc-qpr1-dev 2021-09-15 13:29:40 +00:00
Yunfan Chen
ca4709e72b Merge "Make requested visibility available in snapshot starting window" into sc-v2-dev 2021-09-15 08:22:34 +00:00
Yunfan Chen
049e2a46aa Make requested visibility available in snapshot starting window
This change make the snapshot starting window holds the requested
visibilities when created from the task. Such that, when the window get
back from the background, the insets state in the window state can have
the correct visibilities.

Test: check getInsetsStateWithVisibilityOverride as described in the bug.
Bug: 196637509
Bug: 185729224
Change-Id: I54ab0791b169331c22cd89f7e6da640322bf7dd3
2021-09-15 06:28:09 +00:00
Charles Chen
37430c5ba8 [RESTRICT AUTOMERGE] Send DA's config directly when attaching to DA
WindowContext relies on WindowTokenClient#onConfigurationChanged after
calling WMS#attachWindowContextToDisplayArea.
However, it took some time to wait for onConfigurationChanged callback
from the server side so that we may get a stale value right after
creating WindowContext.
This confuses developers especially when the foreground activity is in
size compat mode or freeform because the process config is overridden
by activity's config.
This CL makes #attachWindowContextToDisplayArea return DA's configuration
and applies to WindowContext direcly.
It also benefits WindowProviderService because it can obtain DA's
 configuration before onCreate() based on [1] and this CL.

Bug: 190019118
Bug: 190745506
Bug: 198298520
Test: manual - 1. launch an Activity in size compat mode
               2. create a WindowContext and verify if WindowMetrics
                  matches DA bounds.
Test: atest WindowContextTest WindowContextTests
Test: atest WindowContextControllerTest ContextGetDisplayTest
[1]: dd4a748af0

Change-Id: I8dd3987b731662502bc01e9d2ed67e718ada5f46
2021-09-14 03:06:50 +00:00
Ming-Shin Lu
8169ca0188 More improve IME transition during task switch
This CL aims to optimize the previous CL[1] to schedule removing
tasksnapshot after a fixed timeout according the tasksnapshot:
    - With IME snapshot: 350ms
    - Without IME snapshot: 100ms

As the previous approach has some cons espically when the tasksnapshot
has IME shown:
1) It lacks a signal or callback to notify WmShell to dismiss
tasksnapshot when IME is actually drawn on the task and always
dismissed after the timeout.

2) The timing to schedule tasksnapsit removal is when
ActivityRecord#onWindowFirstDrawn, which is much eariler than the
window focused (about 100-150ms), and it may easier to see flickering
when the task is showing IME.

The reason is that IME is drawn after window focused and started input
connection. Also, starts from R, IME insets visiblity
is handled by the app's UI thread, so if the schedule removal timing
been triggered too early and if IME / App takes more time to handle IME
surface layout, then user might aware the app task flickering when
tasksnapshot dismissed, since IME is not yet be drawn and then it
show up again when the next layout finished.

In this CL, we made the following changes to improve the above cons
- Postpone the schedule removing tasksnapshot (with IME) timing to
  after the app task has focused.
- Modify the tasksnapshot removal timeout (with IME)  from 350ms to
  450ms (with renaming to MAX_DELAY_REMOVAL_TIME_IME_VISIBLE),
  in case some edge cases may take longer time to process IME layout.
- add ITaskOrganizer#onImeDrawnOnTask(taskId) to notify the shell
  task organizer to properly remove the tasksnapshot without waiting
  until the max timeout.

[1]:  I5fb0fa3a1e6a5e6210d3baf400a84c5892bd2e34

Fix: 192065018
Test: ateset StartingSurfaceDrawerTests#\
        testRemoveTaskSnapshotWithImeSurfaceWhenOnImeDrawn
Test: manual tests by
   1) launching Android Message with focusing an editor
   2) swiping out to home and launch another apps (e.g. chrome)
   3) swiping up to overview, tapping Android Message task
   4) verify if IME is flickering after switched back.
Change-Id: I81031f64966b1aeb55cc09f381d4d83ec3460dc9
2021-09-13 18:04:05 +08:00
Ming-Shin Lu
278e944fd5 RESTRICT AUTOMERGE: More improve IME transition during task switch
This CL aims to optimize the previous CL[1] to schedule removing
tasksnapshot after a fixed timeout according the tasksnapshot:
    - With IME snapshot: 350ms
    - Without IME snapshot: 100ms

As the previous approach has some cons espically when the tasksnapshot
has IME shown:
1) It lacks a signal or callback to notify WmShell to dismiss
tasksnapshot when IME is actually drawn on the task and always
dismissed after the timeout.

2) The timing to schedule tasksnapsit removal is when
ActivityRecord#onWindowFirstDrawn, which is much eariler than the
window focused (about 100-150ms), and it may easier to see flickering
when the task is showing IME.

The reason is that IME is drawn after window focused and started input
connection. Also, starts from R, IME insets visiblity
is handled by the app's UI thread, so if the schedule removal timing
been triggered too early and if IME / App takes more time to handle IME
surface layout, then user might aware the app task flickering when
tasksnapshot dismissed, since IME is not yet be drawn and then it
show up again when the next layout finished.

In this CL, we made the following changes to improve the above cons
- Postpone the schedule removing tasksnapshot (with IME) timing to
  after the app task has focused.
- Modify the tasksnapshot removal timeout (with IME)  from 350ms to
  450ms (with renaming to MAX_DELAY_REMOVAL_TIME_IME_VISIBLE),
  in case some edge cases may take longer time to process IME layout.
- add ITaskOrganizer#onImeDrawnOnTask(taskId) to notify the shell
  task organizer to properly remove the tasksnapshot without waiting
  until the max timeout.

[1]: I7865e17b57961e12a0cdcf068e412195123a6ec7

Fix: 192065018
Test: ateset StartingSurfaceDrawerTests#\
        testRemoveTaskSnapshotWithImeSurfaceWhenOnImeDrawn
Test: manual tests by
   1) launching Android Message with focusing an editor
   2) swiping out to home and launch another apps (e.g. chrome)
   3) swiping up to overview, tapping Android Message task
   4) verify if IME is flickering after switched back.
Change-Id: I81031f64966b1aeb55cc09f381d4d83ec3460dc9
2021-09-13 18:01:56 +08:00
Charles Chen
3d7ad43140 Promote #setAdjacentTaskFragment to TestApi
Also rename TaskFragmentAdjacentOptions to TaskFragmentAdjacentParams to
make metalava happy.

Test: build & run
Bug: 192442647

Change-Id: Iab256ce8c745635a51834f44e72493e204224f36
2021-09-10 17:52:56 +08:00
Hao Ke
bc8416152b Replace untyped Parcel read/write
Description: Replaced `Parcel.readList()` call with empty classLoader.

Calling `Parcel.readList(,null)` could be dangerous as an attacker can
abuse the call to deserialize arbitrary parcelables. To avoid such an
attack vector, we should switch in using `Parcel.readTypedList()`
instead.

Test: atest CtsInstantAppTests
Test: atest CtsWindowManagerDeviceTestCases:MultiWindowTests
Test: atest RemoteTransitionTest
Test: Boot and observe systemUI works
Bug: 195622897
Change-Id: I7c8cb23f6f3d26b1d4d47696e70982797b5f0210
2021-09-09 15:56:03 +00:00
Louis Chang
c08fc30d0e Merge "Not removing primary TaskFragment when clear task" into sc-v2-dev 2021-09-09 13:32:57 +00:00
Louis Chang
c5024fc2b4 Not removing primary TaskFragment when clear task
Placeholder activity was finished while starting the
task root activity from launcher because the task
root activity was set as singleTask launch mode.
Meanwhile, the primary TaskFragment was also removed
because of the split-rule finishPrimaryWithSecondary.

Sending the information of whether the last activity
on the TaskFragment was finished due to launch other
activity to client. So that the organizer can decide
whether the primary TaskFragment should removed.

Bug: 196179714
Test: relaunch singleTask activity with placeholder

Change-Id: I9a0369285adfbdef1edc5a7f2af944ec5b434566
2021-09-09 15:09:17 +08:00
wilsonshih
bcb99535f9 Adding the SurfaceView on splash screen thread.
The SurfaceView of the AVD icon should be create on splash screen
thread instead of worker thread, this can guarantee that the first
frame of the FrameLayout and AVD will be draw at the same frame.
And it also become faster by combining two view in same traversal
together.

Also stop the AVD animation after splash screen window removed.

Bug: 195736516
Test: verify no more Choreographer#doFrame on splash screen thread
after splash screen window removed.

Change-Id: I5942db8974f1272d9c26ac19b164312e4424be66
2021-09-07 10:46:38 +08:00
wilsonshih
c86f1eb19e Use SystemUI theme to inflate FrameLayout and SplashScreenView
The FrameLayout and SplashScreenView are only used as container in
StartingSurfaceDrawer, so they do not need to be inflated by app's
context, which could be affected by app's resources.

Bug: 197936273
Test: cold launch test app and show splash screen.
Test: launch several apps to verify that everything is fine.
Test: atest StartingSurfaceDrawerTests
Change-Id: I6de444546b5dfba23fc1d7c9c4deb12787d667c5
2021-09-06 08:34:55 +00:00
Evan Rosky
ac3bddc1ce Merge "Wrap IRemoteTransition in a parcelable to enable extra properties" into sc-v2-dev 2021-09-03 19:53:10 +00:00
Evan Rosky
bc94c3d524 Wrap IRemoteTransition in a parcelable to enable extra properties
This is in preparation for attaching some extra meta information
to remote transitions (eg. process token). Most of this refactor
just replaces references to the raw interface with references
to the wrapper class.

There is also a small refactor in RemoteTransitionHandler to
better-manage death-recipients. It is possible to have >1 filter
and >1 pendings referencing the same remote simultaneously, so
this arrangement properly handles the 1-to-many possibility.

Bug: 183993977
Test: refactor, so existing tests pass
Change-Id: Icae8f2128e0ffdf7aee51284cba106963450e3e7
Merged-In: Icae8f2128e0ffdf7aee51284cba106963450e3e7
2021-09-03 17:19:44 +00:00
Louis Chang
4abf39e6da Merge "Finish the primary container while secondary exited" into sc-v2-dev 2021-09-03 04:59:16 +00:00
Louis Chang
542af13cf5 Finish the primary container while secondary exited
When finishing a placeholder activity, the secondary container was
clean up, and the primary activity was also finished. However, the
primary container didn't remove and therefore was expanded to
fullscreen before the activity within completely being removed.

Which resulted in TRANSIT_OLD_TASK_FRAGMENT_CHANGE transition
after commit 118428b merged.

Bug: 198228078
Test: finishing placeholder activity and back to launcher
Change-Id: I3d55f0be8c7f6ab3970450d7b90dd95f3cfdd463
2021-09-01 15:05:32 +08:00
Chris Li
14ac35839a Allow TaskFragmentOrganizer to set remote animation
When all windows in the transition is belong to organized TaskFragments,
have the TaskFragmentOrganizer to control the animation on client side.

Bug: 196173550
Test: atest WmTests:TaskFragmentOrganizerControllerTest
Test: atest WmTests:AppTransitionControllerTest
Change-Id: I835467e23863286a5bd34380424cc9eca2c7372f
2021-08-27 12:02:45 -07:00
Louis Chang
ef49a02edd Prevent activity being destroyed immediately if embedded
The embedded activity was destroyed immediately when being
finished because the next top activity was on the adjacent
TaskFragment and was already visible. Therefore, the finishing
animation was played before the organizer requested to
finish the activity on the adjacent TaskFragment.

Prevent the last activity of the embedded TaskFragment to
be removed immediately if the organizer requested to.

Bug: 189386466
Test: finish both activities on separate TaskFragments

Change-Id: I916eddc4dcf0de3bc7ed7264296f441d1b7bb726
2021-08-23 12:04:15 +08:00
Charles Chen
eff3dfe443 Fix NPE in testWindowContextAddMismatchedWindowType
fixes: 196781957
Test: atest WindowContextPolicyTests
Change-Id: If0f8e124f3ee7939bf1e121d6d73616ff07e0829
2021-08-17 10:22:46 +08:00
Shivam Agrawal
2d59448295 Merge "Filter-Diff Screen Layout Changes for Activity Relaunch" into sc-v2-dev 2021-08-14 04:11:56 +00:00
Charles Chen
cc2f80f5a0 Merge "Allow WPS to create windows with multiple type" into sc-v2-dev 2021-08-13 06:24:45 +00:00
Chris Li
a5e7ce9b16 Merge "Invoke keyguard going away when it is collecting for wake" into sc-v2-dev 2021-08-12 18:32:53 +00:00
chaviw
296c6554a0 Add Java and JNI WindowInfosChangedListener hooks to register with SCC
Bug: 188792659
Test: Existing tests pass
Change-Id: I0a6fa58e1c8648bf1d9d30f5e2c59e056a07cb88
2021-08-11 14:09:05 -05:00
Charles Chen
8bae39cab2 Allow WPS to create windows with multiple type
Before WindowProviderService, Service can add windows with several
window types. This is previously not allowed for WindowProviderService
because a context can only associate with a window container.
However, it may cause regressions because Service is used to add
windows with multiple types.
This CL allows WindowProviderService to do so, but WindowProviderService
can only associate with the window type returned by #getWindowType.
This CL also extracts some methods to WindowContext interface so that
WindowContext and WindowProviderService can reuse the same interface.

Test: atest WindowContextPolicyTests StrictModeTest
Test: atest ContextIsUiContextTest ContextGetDisplayTest
Test: atest WindowContextTest WindowContextTests
fixes: 191959013

Change-Id: Ie16916b370a4cbb8a17ccaec9870d47b4b089390
2021-08-11 23:43:01 +08:00
Chris Li
2c0834c5e5 Invoke keyguard going away when it is collecting for wake
Before, when KEYGUARD_GOING_AWAY is called before WAKE starts,it will
not be passed to the keyguard service to dimiss keyguard. Now, we
merge the flags and add check for that.

Bug: 193564917
Test: check with/without sEnableRemoteKeyguardAnimation
Change-Id: I28d40664b4fbdc0ea199baa32ccefba7dea473f8
2021-08-10 11:26:31 -07:00