Commit Graph

16060 Commits

Author SHA1 Message Date
TreeHugger Robot
6c9f4850fb Merge "ScrollView and HorizontalScrollView stretch overscroll" into sc-dev 2021-02-17 00:30:32 +00:00
Jorim Jaggi
814951f27e Merge "Add SurfaceControl to hwui" into sc-dev 2021-02-16 20:11:45 +00:00
Huihong Luo
5fdf7b8d26 Add SurfaceControl to hwui
add a method, setSurfaceControl, for java layer to pass surface control to the render thread

Bug: 173671170
Test: call setSurfaceControl method in ViewRootImpl.java
Change-Id: I886a79c377938f19cf38b9058f2bec64e1439000
2021-02-16 17:38:12 +01:00
wilsonshih
56f65c3bb7 Customizable exit splash screen animation.(2/N)
Introduce new APIs to customize exit splash screen animation.
- SplashScreen
  This can be used for Activity to handle the exit splash screen
  animation.
- SplashScreen#OnExitAnimationListener
  When receive onSplashScreenExit, the splash screen view will be on
  top of the activity.
- SplashScreenView
  The view object which represents the view of current starting window.
  There are two APIs for developer to control it:
  - getIconView: get the icon view object.
  - remove: remove the view and release resources.

If an Activity create a OnExitAnimationListener and set on
SplashScreen, the core will request a copy of SplashScreenView
from Shell, then send the parcelable information to client to
reconstruct the view on top of the DecorView, then call
onSplashScreenExit to let the listener able to operating this view.

Bug: 73289295
Test: build/flash, check splash screen starting window.
Test: atest StartingSurfaceDrawerTests ActivityRecordTests
WindowOrganizerTests
Test: atest CtsWindowManagerDeviceTestCases:SplashscreenTests

Change-Id: I9f77fb4471bcf37a7f74d6c18a345ca56c05b716
2021-02-15 14:49:00 +01:00
Galia Peycheva
de2e513209 Merge "Add window background blur public api" into sc-dev 2021-02-15 12:40:02 +00:00
George Mount
97f04fe7d3 ScrollView and HorizontalScrollView stretch overscroll
Bug: 178807038

Modify ScrollView and HorizontalScrollView to support
stretch overscroll.

Test: I18820794f2511ff4b7df1c5c6a9d7a2d5fafeaa0
Change-Id: I1370b702ce7331269744033c6acb61b84519c853
2021-02-12 21:12:07 +00:00
Galia Peycheva
792b9eb8dc Add window background blur public api
This CL exposes Window#setBackgroundBlurRadius as public Api. It
creates a region behind the window (with the dimensions of the window
background drawable), which is blurred with the given radius.

It also adds windowBackgroundBlurRadius dimension as an xml attribute
on Window.

Bug: 167166562
Bug: 177524486
Test: m
Test: m doc-comment-check-docs
Test: atest BlurTests
Change-Id: I5c0ff3c7fc7a64e6b2e2339eccc23374ec3b5fd9
2021-02-12 16:17:12 +01:00
Chavi Weingarten
d589f615a9 Merge "Check if SC is valid before calling setTransparentRegionHint" into sc-dev 2021-02-11 17:47:48 +00:00
Vishnu Nair
6979344d58 Merge changes I0ccbdb5a,I0f5d57e5 into sc-dev
* changes:
  Use surface size instead of frame size when adjusting layer bounds
  Fix SurfaceView background layer leaks
2021-02-11 16:35:34 +00:00
Rob Carr
aacd9886e5 Merge "ViewRootImpl: Use mergeWithNextTransaction for updating bounds layer" into sc-dev 2021-02-11 01:24:45 +00:00
chaviw
e036668137 Check if SC is valid before calling setTransparentRegionHint
Fixes: 179863777
Test: Steps from bug
Change-Id: I915a3f8cdef3e21d33e9458c35db7259ed88ca5d
2021-02-10 17:11:24 -08:00
Chavi Weingarten
06bdb473bf Merge "Remove SurfaceSession.nativeKill" into sc-dev 2021-02-10 23:45:38 +00:00
TreeHugger Robot
e0a1abd54b Merge "Remove InputMethodManager.ImeThreadFactory, which is unused" into sc-dev 2021-02-10 22:15:22 +00:00
Robert Carr
cec6bd9c74 ViewRootImpl: Use mergeWithNextTransaction for updating bounds layer
Continuing the general trend of deprecating deferTransactionUntil.

Bug: 168505645
Test: Existing tests pass
Change-Id: I72e1f4e2eec369ecdbd3723d9af3f9f2e8f71c36
2021-02-10 12:08:51 -08:00
Vishnu Nair
127b0e6f1e Use surface size instead of frame size when adjusting layer bounds
When exiting splitscreen we can end up cropping the SurfaceView
incorrectly. This is because when drag drag resizing, the surface is
resized to full screen and the window frame is updated in a
subsequent relayout call.

To fix this we use the surface size after adjusting for surface insets.

Test: exit chrome from splitscreen to fullscreen, check that SV resizes
correctly
Test: atest SurfaceViewSyncTest
Test: go/wm-smoke
Fixes: 179911825

Change-Id: I0ccbdb5afa507b7a67e6aa7071ab5fb71f8a8cb8
2021-02-10 19:08:41 +00:00
Vishnu Nair
5f6772539d Fix SurfaceView background layer leaks
The background layer was parented to the root sv layer but in blast
when recreating the sv surface, we were only cleaning up the blast
surface. This would leak the root container layer and the background
color layer that was parented to it.

Instead with blast enabled, we keep both the root and the blast layer
alive. If the surface needs to be recreated, we only recreate the
BlastBufferQueue adapter. This also simplifies the preserve old surface
logic because we no longer need to track the old surface control. The
blast layer will continue presenting the buffer from the old BBQ.

Test: -1 screen with video, check we are not leaking background layers
Test: go/wm-smoke
Fixes: 175743319
Change-Id: I0f5d57e512bfae4fff9cbcd52f6939103ad3a4b0
2021-02-09 15:11:17 -08:00
chaviw
ff265e6177 Remove SurfaceSession.nativeKill
SurfaceSession.nativeKill would call SurfaceComposerClient.dispose. This
was unsafe since it would only clear the ISurfaceComposerClient binder
object, but the SurfaceComposerClient object could still be around.
Instead, when calling SurfaceSession.kill, just remove the Java
reference, but allow the dtor of SurfaceComposerClient to handle
disposing the binder object.

Test: Force app to restart while in a sync transaction. No longer shows
an error
Fixes: 179459565

Change-Id: I322e7f3bd4e7efb3d85d1afe3c4704283f58a985
2021-02-09 14:54:42 -08:00
Rob Carr
0b501e3b20 Merge "WindowManagerService: Handle transparent region on client" into sc-dev 2021-02-09 21:17:44 +00:00
Stevie Kideckel
d6a8f14a79 Merge "Add the android:clipToOutline attribute for views." into sc-dev 2021-02-09 20:39:19 +00:00
TreeHugger Robot
325e0f94eb Merge "Allow autofill auth intent result to specify whether the new dataset is ephemeral or not" into sc-dev 2021-02-09 19:26:07 +00:00
Stevie Kideckel
ca127732b8 Add the android:clipToOutline attribute for views.
Bug: 179405150
Test: atest
Change-Id: Ieeb6b790ea6765e4545c0fd746d37d420d427041
Merged-In: Ieeb6b790ea6765e4545c0fd746d37d420d427041
2021-02-09 17:18:22 +00:00
TreeHugger Robot
d938189165 Merge "Only force layout legacy apps with SOFT_INPUT_ADJUST_RESIZE" into sc-dev 2021-02-09 17:07:50 +00:00
Rob Carr
8ea6b33cbb Merge "SyncRtSurfaceTransactionApplier: Use BLASTSync" into sc-dev 2021-02-09 03:01:13 +00:00
Rob Carr
c534edd535 Merge "Port SurfaceControlViewHost to BLAST" into sc-dev 2021-02-09 01:10:51 +00:00
TreeHugger Robot
989bc8cd01 Merge changes from topic "display-mode-rename" into sc-dev
* changes:
  Tracking changes to renaming DisplayConfig to DisplayMode
  Extend the comment for setFrameRate(..., shouldBeSeamless)
2021-02-08 21:56:15 +00:00
Robert Carr
1f96f3cd28 SyncRtSurfaceTransactionApplier: Use BLASTSync
Helps us down the path of deprecating deferred transaction. BLASTSync
should also be easier to debug and produce less overhead on the server.

Bug: 168505645
Test: Existing tests pass
Change-Id: I1f1375f4ddfe84f724109d1c1b601260cef0ba6c
2021-02-08 21:34:31 +00:00
Robert Carr
fb59b6880f Port SurfaceControlViewHost to BLAST
This is mostly a matter of flipping the flag, except for the case of
SystemWindows. While external SurfaceControlViewHost clients use the
leash provided by the SurfaceControlViewHost rather than the internal
ViewRootImpl surface, SystemWindows clients will use the actual
ViewRootImpl surface. This can conflict with the BLAST adapter setting
crop/frame/etc on this Surface. We modify SystemWindows to put
each layer inside a leash, and hand this out to other parts of SysUI
instead of the ViewRootImpl surface.

Test: Existing tests pass
Bug: 168505645
Change-Id: Ie621f89166f00ce385d450f1f1cea4d4abd1b805
2021-02-08 13:33:00 -08:00
Robert Carr
4fa6a5f413 WindowManagerService: Handle transparent region on client
Since the client owns its own SurfaceControl now, there is no
need to call through to the WM just to set transparent regions.

Bug: 161937501
Test: Existing tests pass
Change-Id: I1767090bc60be72b86879ae806876d49bfa0e06c
2021-02-08 13:18:30 -08:00
TreeHugger Robot
7b3c0ef390 Merge "Change InlineSuggestionsRequest.getSupportedLocales() to return empty if not specified" into sc-dev 2021-02-08 19:53:10 +00:00
Chris Li
de6aadf262 Merge "Include whether in touch mode for WindowlessWindowManager" into sc-dev 2021-02-08 19:17:28 +00:00
Tiger Huang
39d15f92ac Only force layout legacy apps with SOFT_INPUT_ADJUST_RESIZE
Forcing layout for other soft input modes seems redundant while IME
shows or hides, because the layout doesn't change.

It doesn't useful for the system bar cases as well, because the main
content of the fullscreen apps is usually stable.

Fix: 161781474
Test: Open IME in Telegram
Change-Id: Ic64dd86e5804c4b25fa118297eaca3c63c5e0a7d
2021-02-08 17:53:46 +08:00
Chris Li
ded0e32b80 Include whether in touch mode for WindowlessWindowManager
Fix: 179583920
Test: manually with a windowless button
Change-Id: Ice37c3182a44c6284ffa8950996507025c59270b
2021-02-06 20:39:37 -08:00
Charles Chen
6e08c39554 Merge "Remove addWindowTokenWithOptions" into sc-dev 2021-02-07 03:14:57 +00:00
TreeHugger Robot
3ae84f530b Merge "Rename InputConnecton#setImeTemporarilyConsumesInput" into sc-dev 2021-02-07 03:13:55 +00:00
Nikita Dubrovsky
8984325c65 Merge "Mention calling super in View.onProvideContentCaptureStructure javadoc" into sc-dev 2021-02-06 21:50:07 +00:00
Charles Chen
b80fdde45f Remove addWindowTokenWithOptions
Since WindowContext won't add WindowToken from the client side,
addWindowTokenWithOption is no more needed. Also remove the logic
to invoke removeWindowToken from the client side.

Bug: 159767464
Bug: 153369119
Test: atest WindowManagerServiceTests WindowManagerPermissionTests
Change-Id: Ib0c948dca223cf8d056865ce3a0d4adaef07d247
2021-02-06 15:47:08 +08:00
TreeHugger Robot
4b0a9bd7dd Merge "Make EditorInfo.internalImeOptions parcelable." into sc-dev 2021-02-06 04:53:22 +00:00
Nikita Dubrovsky
fd676784f5 Mention calling super in View.onProvideContentCaptureStructure javadoc
Bug: 178978073
Test: Presubmit
Change-Id: Iecf0d9f575f5794e37d42e46700ff098a2c6b30f
2021-02-05 15:02:46 -08:00
Chavi Weingarten
e22b827b05 Merge "Remove preserve surfaces" into sc-dev 2021-02-05 22:37:01 +00:00
chaviw
32f2817bbd Remove preserve surfaces
When using blast, there's no need to call preserve surfaces since the
client can synchronize layer changes with the incoming buffer in the
new size. If the client uses the WindowOrganizer.applySync call they can
ensure they only update the layer geometry in the same transaction that
the new buffer is submitted in.

When removing preserveSurfaces, we can also remove reparentChildren
since that was the only caller of reparentChildren

Test: Split with SurfaceView
Bug: 177557720
Change-Id: I4574ac0d3b8a63b13ac44846e729b73ca0f88f23
2021-02-05 22:36:25 +00:00
Taran Singh
0ced23c739 Merge "Handle cancelled Insets animation" into rvc-qpr-dev am: e272df9338 am: 99813602c0
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12735138

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I556713d0fa14ab0f794eab49ac6c16b5354ed647
2021-02-05 18:19:30 +00:00
Taran Singh
99813602c0 Merge "Handle cancelled Insets animation" into rvc-qpr-dev am: e272df9338
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/12735138

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ice0c897bce976dbf3ab46fad7de41ed0e8fd0006
2021-02-05 18:00:53 +00:00
Winson Chung
92e9fb341d Merge "Revert "Sandbox letterbox and size compat apps"" into sc-dev 2021-02-05 17:52:07 +00:00
Taran Singh
e272df9338 Merge "Handle cancelled Insets animation" into rvc-qpr-dev 2021-02-05 17:38:50 +00:00
Taran Singh
e2307d9a48 Handle cancelled Insets animation
If an Insets animation was cancelled before it could complete,
handle it gracefully.

Fix: 154381667
Test: Run monkey runner that on any window that has edit text
      atest InsetsControllerTests
Change-Id: I052a0455f536a1c839a2782e54f19143295ba6c6
2021-02-05 17:38:31 +00:00
Mark Renouf
26737223a1 Merge "Corrects Javadoc method reference" into sc-dev 2021-02-05 16:42:25 +00:00
Issei Suzuki
5c3c5ea216 Merge "Make keyguard exit animation to remote animation." into sc-dev 2021-02-05 15:01:44 +00:00
TreeHugger Robot
6beb5e87c4 Merge "Remove special logic for top/bottom gesture insets" into sc-dev 2021-02-05 06:26:41 +00:00
Charles Chen
582247eef0 Merge changes from topic "window_context_2.0" into sc-dev
* changes:
  Apply WindowContext 2.0 for InputMethodMenuController
  Migrate WindowContext to WindowContextListener mechanism
2021-02-05 04:53:09 +00:00
Lan Wei
66b21086e3 Rename InputConnecton#setImeTemporarilyConsumesInput
Rename InputConnecton#setImeTemporarilyConsumesInput as InputConnecton#setImeConsumesInput

Bug: 175362887
Bug: 179143513
Test: atest FrameworksCoreTests:TextViewTest
Test: atest CtsWidgetTestCases:TextViewTest

Change-Id: I8ac1ea4d53f747b0086ed415ff90793dfc6155bc
2021-02-05 12:16:22 +08:00