Commit Graph

12845 Commits

Author SHA1 Message Date
Adrian Roos
09ed7c9762 Merge "RootViewImpl: Fix measure size hint for WRAP_CONTENT windows" into qt-dev
am: 952bcb8ffe

Change-Id: Id02b19a73bc5b19a67cd93ac394c8ec356602096
2019-06-03 16:02:26 -07:00
TreeHugger Robot
952bcb8ffe Merge "RootViewImpl: Fix measure size hint for WRAP_CONTENT windows" into qt-dev 2019-06-03 22:52:59 +00:00
Chavi Weingarten
96af8617b0 Merge "Only updateBoundsSurface when surface size has changed." into qt-dev
am: fd979ca3d2

Change-Id: I58a77f02333c717b32f3facc83fe4d684ecb3010
2019-06-03 10:10:29 -07:00
Riddle Hsu
9b7699939e Merge "Invoke setWindowStopped on the thread that created the view" into qt-dev
am: 3bc96f9113

Change-Id: I8a66a0d378b13e7c2f48edf4bff01ae2799e47d5
2019-06-03 10:06:18 -07:00
Chavi Weingarten
fd979ca3d2 Merge "Only updateBoundsSurface when surface size has changed." into qt-dev 2019-06-03 16:08:42 +00:00
TreeHugger Robot
3bc96f9113 Merge "Invoke setWindowStopped on the thread that created the view" into qt-dev 2019-06-03 10:13:18 +00:00
chaviw
c0a8c4edbd Only updateBoundsSurface when surface size has changed.
Currently, updateBoundsSurface was getting called when the surface
changed, not just when the size changed. This meant it could be calling
setWindowCrop and deferTransaction when no size had changed. If size
hadn't changed, there was a high possibility that no new frames would be
submitted by the client, causing the deferTransaction to wait forever.

Since the deferTransaction was still waiting, SurfaceFlinger would wake
up every vsync to check if it should call doTransaction for the deferred
transaction. This caused 60Hz composition even when frames were rendered
slower.

Fixes: 132110524
Test: SF doesn't compose 30fps app at 60Hz
Change-Id: Icf3a99b34c288575438bfcd05e9077ea7919b4ca
2019-06-01 00:12:09 +00:00
Adrian Roos
c18c6da441 RootViewImpl: Fix measure size hint for WRAP_CONTENT windows
Fixes an issue where we would measure WRAP_CONTENT windows inconsistently
in the measure passes before and after relayoutWindow.

Fixes: 119839070
Bug: 73813813
Change-Id: I376e416d648f31a0dedecd6a70b476c3bf82b8b0
Test: Install test case app from 119839070, verify dialog is correctly laid out.
2019-05-31 14:26:35 +02:00
Siarhei Vishniakou
2cd6a8ae5f Merge "Close windows on ACTION_UP when touched outside" into qt-dev
am: 89ebf3f674

Change-Id: I50be8986f4ffef7024300a39a97a788a301487a5
2019-05-29 15:00:43 -07:00
TreeHugger Robot
89ebf3f674 Merge "Close windows on ACTION_UP when touched outside" into qt-dev 2019-05-29 21:51:22 +00:00
Jackal Guo
6d7b49bead Merge "A11y support for windows in a re-parented display" into qt-r1-dev 2019-05-24 01:02:17 +00:00
Abodunrinwa Toki
b1007e962c Merge "Convert TextClassifierEvent to SelectionEvent for logging in the default TC." into qt-dev
am: a578ecce46

Change-Id: Ia6afb8f90784676091d70f81492d9b35721b6ca8
2019-05-23 14:47:38 -07:00
Abodunrinwa Toki
a578ecce46 Merge "Convert TextClassifierEvent to SelectionEvent for logging in the default TC." into qt-dev 2019-05-23 19:35:24 +00:00
Abodunrinwa Toki
5258633e2d Convert TextClassifierEvent to SelectionEvent
for logging in the default TC.

TCEvents for selection and links are not currently being written to
default TC logs. This changelist writes these events as SelEvents.

Bug: 131228248
Test: atest android.view.textclassifier.TextClassifierEventTest
Change-Id: I191f2f9281eab1b8a427ef21717fff283a304a22
2019-05-23 13:37:59 +01:00
Jackal Guo
c43a0a6520 A11y support for windows in a re-parented display
Currently, accessibility only supports windows in default display.
The windows in other displays aren't recongnized by accessibility
even they're re-parented to default display. Besides, we need to
offset the bound after re-parented since the original is from its
own display.

Bug: 129098348
Test: atest WindowStateTests
Test: atest DisplayContentTests
Test: a11y CTS & unit tests
Change-Id: I41a84a4c02e3c1be1dab4bd420d504b85787c4fb
2019-05-23 15:39:52 +08:00
Derek Sollenberger
03f24c0350 Merge "Fix fading edge effect from impacting neighboring pixels" into qt-dev
am: 9fdd35e9aa

Change-Id: I4599c37d6113a254b64b9ad4094dad3899e27b8f
2019-05-22 17:49:10 -07:00
TreeHugger Robot
9fdd35e9aa Merge "Fix fading edge effect from impacting neighboring pixels" into qt-dev 2019-05-22 21:32:59 +00:00
TreeHugger Robot
0ac85feb6f Merge "DO NOT MERGE - Re-add ContentCapture support from standard SDK toolkit." into qt-r1-dev 2019-05-22 20:15:34 +00:00
Felipe Leme
1583710719 Merge "Make sure view.setAutofilled() is called when autofilled by augmented-autofill only." into qt-dev
am: 64f0871ef7

Change-Id: Iae22bb88e4879d7ea1253b582ade432f3e354733
2019-05-22 10:34:53 -07:00
TreeHugger Robot
64f0871ef7 Merge "Make sure view.setAutofilled() is called when autofilled by augmented-autofill only." into qt-dev 2019-05-22 16:22:22 +00:00
Qasid Sadiq
5c8b486027 Merge "Send subtree changed AccessibilityEvent for all alpha changes." into qt-dev
am: 37f6ad6529

Change-Id: I2adb455392a30ba7fa384d1f2ae7fa33e92af590
2019-05-21 16:39:51 -07:00
Qasid Sadiq
37f6ad6529 Merge "Send subtree changed AccessibilityEvent for all alpha changes." into qt-dev 2019-05-21 20:03:15 +00:00
Felipe Leme
4ba998940f Merge "Fixed javadoc for View.setContentCaptureSession()." into qt-dev
am: a4630da2c1

Change-Id: I7d29536d2ef374abd692eb29ce70aa235ac8bbd3
2019-05-21 12:14:36 -07:00
TreeHugger Robot
a4630da2c1 Merge "Fixed javadoc for View.setContentCaptureSession()." into qt-dev 2019-05-21 17:38:41 +00:00
Issei Suzuki
cac2a50465 Synchronize bubble activity rendering status and its visibility change.
- Add an API ITaskStackListener.onSingleTaskDisplayDrawn() to notifity contents
  are drawn for the first time on a display which can only contain one task.
- BubbleController updates contents visibility (actually alpha value) of
  the Surface in a ActivityView.

Bug: 130442248
Test: atest WmTests:TaskStackChangedListenerTest
Change-Id: Ie5aed373996419b059935889b564ca91c2e3cf23
2019-05-21 13:23:41 +08:00
TreeHugger Robot
b46293f8f6 Merge "Adds setCornerRadius to ActivityView & SurfaceView" into qt-dev 2019-05-20 16:30:20 +00:00
Abodunrinwa Toki
2cb08912a7 Merge "Report AUTO_SELECTION as a smart selection event." into qt-dev 2019-05-20 16:09:43 +00:00
TreeHugger Robot
050d6df74c Merge "[wm]: Fixed TaskPositioner leak" into qt-dev 2019-05-19 23:12:25 +00:00
Qasid Ahmad Sadiq
6205820579 Send subtree changed AccessibilityEvent for all alpha changes.
Changes to view.mtransformationInfo.mAlpha outside of View.java weren't triggering subtree AccessibilityEvents.
This is a problem, because that property helps determine a views visibility in accessibility, and AccessibilityServices wouldn't be informed of this change in visibility.
This results in UIs with certain animations not being accessible at all.

This seems like an oversight to begin with, so it's a pretty low risk change.

Test: Tested the reported instance of this bug in Permission Manager, CTSAccessibility*
Change-Id: I02526e5659cf95f1373811008e74954a73addd21
Fix: 127589394
2019-05-17 21:13:17 +00:00
Derek Sollenberger
9d25cc242f Fix fading edge effect from impacting neighboring pixels
Bug: 132354626
Bug: 129117085
Test: skia unit tests and test cases described in the bug
Change-Id: Ieaa7c831dd6298ac0565e6f1837b1c1dbd4545da
(cherry picked from commit ac33a48751)
2019-05-17 17:59:57 +00:00
yj81.kwon
19585ffabf [wm]: Fixed TaskPositioner leak
If application process handles motion events late, it requests to start
moving task after MotionEvent.ACTION_UP is already fired. In that case,
system will wait for event that is not comming and cannot end drag state.
It's expected that the system finishes moving task when system receives
ACTION_UP by transfering touch focus. In a problem case, ACTION_UP event
is already sent to the application process before transfering touch focus.

If application receives ACTION_UP event after requesting moving task,
notify the system of finishing previous request.

Test: Quickly try to resize freeform windowing app repeatedly.
Test: atest WmTests:TaskPositioningControllerTests
Bug: 129507487

Change-Id: Ifa457ddc55524cae6da455e770472781a7805282
(cherry picked from commit 9a1cd7b5063229da536a1281916ae15ec9246d1a)
2019-05-16 16:42:10 -07:00
Felipe Leme
911cb1fa76 DO NOT MERGE - Re-add ContentCapture support from standard SDK toolkit.
This reverts commit ef1c0b36ab.

Test: atest CtsContentCaptureServiceTestCases
Test: m update-api

Bug: 130726495

Change-Id: Iecda9df96722ac8a3184710796032b6c01bd8ea3
2019-05-16 16:05:51 -07:00
Adam He
815979d5df Merge "Metrics for content capture." into qt-dev 2019-05-16 19:53:04 +00:00
Felipe Leme
f24af767fe Fixed javadoc for View.setContentCaptureSession().
Test: m -j ds-docs
Fixes: 132724201

Merged-In: I1bb2fbd7a085ab9816f71f8433feafa1f63a28ae
Change-Id: I1bb2fbd7a085ab9816f71f8433feafa1f63a28ae
2019-05-16 15:59:03 +00:00
Mark Renouf
34d04f36c3 Adds setCornerRadius to ActivityView & SurfaceView
Applies corner radius to Bubbles when expanded, based on
dialogCornerRadius theme attribute.

Test: manual -- Enable Bubbles, add one and expand, observe corners
Bug: 123545569
Change-Id: I88162a974534786b4ac8bed4e0fa1302bded9096
2019-05-16 11:22:25 -04:00
Adam He
ff2185346e Metrics for content capture.
Bug: 119613670
Test: statsd_testdrive & manual test
Change-Id: Ib2c61d2a3c08a9db779790417eb0177c2420d8fd
Merged-In: If43465ccee7454a7ebf9e15caa23fce7bae33cfe
2019-05-15 11:12:02 -07:00
Siarhei Vishniakou
45385e2ac3 Close windows on ACTION_UP when touched outside
If a window is touched inside the touchable region, but outside of the
physical frame, the setting closeOnTouchOutside=True for this window
would mean that the window would close.

Currently, the window would close when ACTION_DOWN on the touchable
region happens.
However, with the new gesture nav, the KEYCODE_BACK would also be
injected. Normally, the KEYCODE_BACK would also close the window. But if
the window is already closed in response to ACTION_DOWN, the
KEYCODE_BACK event would cause the underlying window to close.

This could be confusing to the user, because in this case a single
action (swiping back outside of the dialog) causes 2 actions to occur:
the dismissal of the window, and the navigation back to the previous
screen of the underlying window.

To avoid this poor user experience, we instead dismiss the window when
ACTION_UP inside the touchable area happens.

UX impact:
This CL would not change the user experience for tapping to dismiss the
dialogs, because tap has a short duration between down and up (most
common usecase).
This CL would now allow the user to maintain the finger on the screen
outside of the dialog for an arbitrary amount of time, without the
dialog disappearing. When the finger is lifted, the dialog would be
dismissed.
This CL improves the user experience for gesturing back to dismiss the
dialog, because the dialog most of the time will dismiss and nothing
else will happen. However, there still exists opportunity to cause the
old behaviour. The window can receive ACTION_UP before KEYCODE_BACK is
injected by gesture nav.

Important! If BACK is received by the app after ACTION_UP is received
(can happen occasionally), then the we would still see 2 actions happen
in response to a single swipe. This issue is tracked in b/132735993, but
it is likely that it will remain in Q.

Bug: 131410670
Test: open any dialog (for example, go to settings->display->screen
timeout), then press outside of the dialog and hold. Watch that the
window is not dismissed. Then release finger. Watch that the dialog
dismisses.
Also, gesture back outside of the dialog area. Watch that the dialog
disappears and nothing else happens (but see the important note above
for exceptions to this).

Change-Id: I2e7c1bab986f019dc2f4640ff9f4151ebb96479c
2019-05-15 10:50:09 -07:00
Rob Carr
e6ffb72e55 Merge "Restore new SurfaceView background implementation." into qt-dev 2019-05-15 17:41:01 +00:00
Jorim Jaggi
c3371300eb Merge "Fix copying of insets" into qt-dev 2019-05-15 10:26:02 +00:00
Riddle Hsu
5828b413b0 Invoke setWindowStopped on the thread that created the view
The windows belong to a activity will be set to stopped state
when the activity is stopped. But the associated thread of
view root could be different from activity, that results the
inconsistent calling thread of surface callback, and maybe
some potential races.

Since the surface could be destroyed during traversal, also
add a check for callback notifySurfaceDestroyed to prevent
duplicated calls if the surface is released.

Bug: 130553315
Test: atest ViewRootSurfaceCallbackTest
Change-Id: Iea2cf8ff51118c0fa8c00a35c1d3e53c959ea754
2019-05-15 15:18:26 +08:00
Abodunrinwa Toki
6c56467d8a Report AUTO_SELECTION as a smart selection event.
This is so other TCs can have access to the smart indices fore each
event.
Note that TRON logs remain unchanged.

Bug: 132290431
Test: Manually verified.
      > adb shell setprop log.tag.androidtc VERBOSE
      > adb shell stop && adb shell start
      > adb logcat -s "SelectionSessionLogger"
      Use a custom text classifier
      Observe that events in the same session as an AUTO_SELECTION event
      log the AUTO_SELECTION events indices as their smart indices.

Change-Id: I109e6e71afc50a02fd81930f5ff1ec86dc47a039
2019-05-14 20:09:24 +01:00
Jorim Jaggi
7882548b92 Fix copying of insets
Test: WindowInsetsTests
Fixes: 132057323
Change-Id: I8836a9d81ab85ce64071c48f8407e5e96dbbb1da
2019-05-14 18:54:40 +02:00
Felipe Leme
dbb7a364c8 Make sure view.setAutofilled() is called when autofilled by augmented-autofill only.
Test: atest AugmentedLoginActivityTest#testAugmentedAutoFill_thenEditField
Test: m update-api
Fixes: 132576597

Change-Id: I88c341931f1cf23a0c99a916b7231e895b8e3699
2019-05-13 16:57:44 -07:00
Robert Carr
b923f543e4 Restore new SurfaceView background implementation.
A previous commit reverted the new SurfaceView background implementation
due to a Z-ordering issue (where previously the backgrounds were below
ALL SurfaceView rather than EACH SurfaceView). It's easier to solve this
with relative layering as this CL does, and then we can keep the new implementation.
The new implementation has some other bug fixes in it too (see linked bug
w.r.t to setZOrderOnTop) and so it's a win.

Bug: 132353087
Test: SurfaceViewSurfaceValidator
Change-Id: I07b6e601e57fce3adb8e5ea8e173c7d7904422ca
2019-05-13 14:51:09 -07:00
Tiger Huang
ed6794ece5 Fix a bug about the z-order of layers caused by merging transactions
Each WindowContainer has its own pending transaction. These transactions
may be merged to the global one within WindowContainer.prepareSurfaces()
in a hierarchy-based order, not in a time-based order. It may cause
that a later surface operation overwritten by an earlier surface
operation. For example, atokenA.setLayer(t1, 0) was called earlier, and
then atokenA.setLayer(t2, 1) was called later. However, the layer of
atokenA might eventually be 0 because t1 could be merged into the
global transaction later.

This CL uses a single transaction per display to solve this problem.

Fix: 120282809
Test: atest SurfaceAnimatorTest
Test: Manual test with the steps in the issue.
Change-Id: Idca57d01d8be884369510642c2d9345b6ee4e3b1
2019-05-13 20:38:32 +08:00
TreeHugger Robot
db2d535782 Merge "Fixed NPE when AutofillManager.getClient() returns null." into qt-dev 2019-05-10 13:54:19 +00:00
TreeHugger Robot
1806895bc6 Merge "Re-mark addPrivateFlags as UnsupportedAppUsage" into qt-dev 2019-05-09 22:31:49 +00:00
Philip P. Moltmann
88de965bfd Re-mark addPrivateFlags as UnsupportedAppUsage
it used to be in P and we have not removed all callers yet.

Fixes: 132356891
Test: None
Change-Id: I13b3bd3c791fedde4324bbc13ab5a413b7f4205f
2019-05-09 22:17:44 +00:00
John Reck
f97ca2d9ca Merge "Add back to greylist" into qt-dev 2019-05-09 21:07:46 +00:00
Felipe Leme
51cdec536b Merge "Fixed autofill workflow to handle manual requests after session became for augmented autofill only." into qt-dev 2019-05-09 00:18:56 +00:00