Commit Graph

10164 Commits

Author SHA1 Message Date
Cindy Kuang
07f5257b19 Merge "docs: replaced "i.e." to fix formatting error" into oc-dev
am: 0580ac8a65

Change-Id: I094bd99bcaaf51633ac887d38a9323ed5fdc54e2
2017-08-11 21:01:15 +00:00
Phil Weaver
a5dab05b61 Merge "Stop focusing views before layout." into oc-dr1-dev 2017-08-10 22:34:03 +00:00
Phil Weaver
edbcf2c4bf Stop focusing views before layout.
Rolls back one line of ag/2257919.

Bug: 63811145
Test: TalkBack no longer reads the page backwards in:
Settings > System > Reset > Factory data reset
Settings > Connected devices > Android Beam

Change-Id: I6b04e64cd650ebda193da4a54bf0721bd256820c
2017-08-10 12:31:34 -07:00
Cindy Kuang
12d3747c0b docs: replaced "i.e." to fix formatting error
Test: make ds-docs

Bug: 6440865
Change-Id: I428476ddfe55f14df531ea6a1c3e3a09f7a29e7d
2017-08-10 09:59:58 -07:00
Phil Weaver
a4b5e0893f Merge "Fix source for PiP hover accessibility events" into oc-dr1-dev 2017-08-10 00:13:04 +00:00
Phil Weaver
0a8caa1ccc Fix source for PiP hover accessibility events
The events were ending up not important for a11y and
with invalid window ids, which prevented TalkBack from
seeing them properly.

Bug: 64428961
Test: Ran YouTube in PiP, now able to select it.
Change-Id: I38ccbf5f2f35ffda255b84f229e98ca23e6b11aa
2017-08-09 11:28:41 -07:00
Felipe Leme
af40bb0dc4 Clarifies autofill lifecycle.
am: 744976e298

Change-Id: Ia1c9652ded5c5ea6af9dc7872f89bd776a58e6d4
2017-08-08 17:34:14 +00:00
Felipe Leme
744976e298 Clarifies autofill lifecycle.
Test: m update-api

Bug: 64125551
Bug: 64114048
Change-Id: I17c5bc2e2e64fa27e877301dbcb983ac8497209e
2017-08-07 17:22:50 -07:00
Andrii Kulian
283acd20ca Add black frame behind app window
Add black background behind letterboxed apps on displays with tall
aspect ratio. This is needed to make sure that other windows won't
bleed through status/navigation bar area, because letterboxed
windows are not considered fullscreen.

Bug: 63156733
Bug: 62893418
Test: go/wm-smoke
Test: Trigger animations to/from recents with different rotations.
Change-Id: If0eac9a3801518185d560a87d9f88ee0aafa3a9c
2017-08-04 14:32:26 -07:00
TreeHugger Robot
48ed8aa4d0 Merge "Inform SurfaceFlinger of which Surface is the RoundedCorners overlay." into oc-dr1-dev 2017-08-03 12:45:07 +00:00
Tarandeep Singh
986995d481 Merge "Fix keyboard focus in VR" into oc-dr1-dev 2017-08-02 20:33:02 +00:00
Tarandeep Singh
e1cfcf4c4d Fix keyboard focus in VR
Consider this VirtualDisplay (VD) scenario:
HostActivity creates a VD which holds SettingsActivity. When EditText
on SettingsActivity is tapped, it gains focus.
On eventual taps, it loses focus i.e. the Window in VD loses focus and
the host activity in primary display gets the focus instead. This
happens because WM's TaskTapPointerEventListener.onPointerEvent()
is called on the default display only.

Root cause:
1. Tap detector isn't registered for non-default display.
2. Tap detector has no info on which displayId touch was received.
3. InputFlinger doesn't deliver InputMonitor events for
non-default displays (fixed in a separate CL)

Fixing above results in onPointerEvent(MotionEvent) to deliver the
Touch events successfully to VD. We restrict these changes to physical
multi-displays and VR VirtualDisplays (which uses virtual touch device).
[VrManagerService calls WMInternal.setVr2dDisplayId(int)]

In future, displayId should be part of InputEvent. Bug: 64258305

Bug: 62033391
Test: bit FrameworksServicesTests:com.android.server.wm.DisplayContentTests
Change-Id: I3626f4de5aa9bcf905da9abd39f3ab1baefc4c48
2017-08-02 10:46:22 -07:00
Evan Rosky
9d93486ed6 Gracefully handle focus loops created by app dev.
Instead of ANR in an infinite loop, this will detect
a cycle and return null.

Bug: 62960867
Test: Added in CTS FocusFinderTest#testChainVisibility
Change-Id: Ifb4638e3350642f065c40b3bea112cc12efff447
2017-08-02 17:33:32 +00:00
Robert Carr
132c9f5140 Inform SurfaceFlinger of which Surface is the RoundedCorners overlay.
We need to omit it from screenshots, and screen mirroring, so SurfaceFlinger
will have to have some knowledge. Eventually we'd like to do this by
having everything else have a parent, and mirroring and screenshotting will
operate on that parent. Since we aren't comfortable doing that for DR though, here's
a quick and dirty hack to tide us over with low risk.

Bug: 63311708
Test: screencap, screenrecord, android.view.cts.SurfaceViewSyncTest
Change-Id: I2b43be00567ee19cf27aeef344e5415f4a69297f
2017-08-02 09:03:05 -07:00
Felipe Leme
27eb322ed2 Merge "Cherry-picked some Autofill Javadoc improvements from master." into oc-dev
am: 6829a1dace

Change-Id: I41dec3cb31e6b523927717950f827f45dadabd8b
2017-08-02 00:26:37 +00:00
Felipe Leme
33681a94cf Cherry-picked some Autofill Javadoc improvements from master.
Test: m update-api

Bug: 64125551
Bug: 63669555
Bug: 63985284

Merged-in: Iba4817f682670e9fd6d891ae221e1fa415252e99
Change-Id: I82cbb54a522b2cf1dfb11aacc9735c932aa9af90
2017-07-31 10:18:03 -07:00
Bryce Lee
0e4a6dfb3f Remove rotation and app bounds from Configuration diff.
The presence of these new flags leads to issues with application that
do not expect their presence. Since these flags can appear at
critical times, such as on orientation change, these issues are
brought to the surface often.

This CL remedies this problem by first removing the rotation
property. It is not used and the original issue of orientation and
Configuration alignment has been addressed. For app bounds, the CL
reverts the behavior back to identifying diffs as a screen size
change.

Fixes: 64004417
Test: bit FrameworksServicesTests:com.android.server.wm.AppBoundsTests
Test: go/wm-smoke

Change-Id: I1fabb564dfb5c13d897336708523cf7cd5099fa0
2017-07-28 07:49:01 -07:00
TreeHugger Robot
149ff697ff Merge "Remove non-safe mode boot vibration." into oc-dr1-dev 2017-07-24 12:46:25 +00:00
TreeHugger Robot
8650c7c0f1 Merge "Removing contents hidden string for public notifications" into oc-dr1-dev 2017-07-23 12:51:43 +00:00
Michael Wright
33d6c08aa6 Remove non-safe mode boot vibration.
Ding, dong the BZZZT is dead.

Bug: 22414771
Test: manual
Change-Id: I011a9b475a6497db6e9440647d6d5c60dcf171b7
2017-07-21 19:11:24 +01:00
Jorim Jaggi
089d45de8f Merge "Fix snapshots for dialogs" into oc-dr1-dev 2017-07-21 16:10:52 +00:00
TreeHugger Robot
cb423e42b3 Merge "Add config to force display to transition to off after doze" into oc-dr1-dev 2017-07-21 14:53:44 +00:00
Jorim Jaggi
e6c6ecb2b0 Fix snapshots for dialogs
When taking a snapshot, always include the full stack bounds.

When showing a snapshot starting window, use the SystemUI flags
from the top fullscreen window in the task - this is the same way
as we do it when the real windows are going to be visible.

Test: Revoke contacts permissions, launch contacts, go to recents,
go back.
Test: go/wm-smoke
Fixes: 63268663

Change-Id: If8d9701f6d34abd56116ed04fe27fe82688e506a
2017-07-21 13:39:19 +02:00
Selim Cinek
499c20f25d Removing contents hidden string for public notifications
We're now only showing the notification header instead of the
repetitive contents hidden string. On Aod, we're still showing
a string however, since without it, it looked too empty.

Test: manual, set sensitive setting on lockscreen, observe notifications
Change-Id: If2bb66b9b3b366715aa68087e5c35cf1cdff3693
Fixes: 63741232
2017-07-20 14:16:13 -07:00
Rob Carr
f62e79791b Merge "Fix incorrect SV calculation in non-RT codepath." into oc-dr1-dev 2017-07-20 18:32:31 +00:00
Michael Wright
05e76fe38f Add config to force display to transition to off after doze
Some display hardware can't do the transition from doze display states
to the on display state cleanly, so in order to hide any janky-ness of
the transition we force the display off and cover the screen with a
black surface. This lets us keep the screen black until SystemUI and the
display are both ready.

Bug: 63531607
Test: manual
Change-Id: I66bd483e5f01e1dbd5069465aa122828af5f1903
2017-07-20 18:21:29 +01:00
Adrian Roos
7c89480c0e AOD: Prevent animations and rotations while going to sleep
A recent change allowed animations while the screen is
turning on, but not fully turned on; this allows rotations
while the device is going to sleep though. To prevent that,
we now disallow animations if the device is going to sleep too.

In addition, we also prevent the rotation animation when the screen
is not fully on or non-interactive.

Change-Id: I9b84f68a02a07067e48b11c008bcaf4bcb7c41a0
Fixes: 63760853
Test: Turn phone to landscape on an app that can rotate. Press power button. Verify AOD shows without a rotation; go/wm-smoke
2017-07-20 13:24:52 +00:00
Robert Carr
c90e5f8656 Fix incorrect SV calculation in non-RT codepath.
We were using width/height as top/bottom...not much more to it
than that :).

Bug: 62752640
Test: go/wm-smoke
Change-Id: I57f081b4fab555f0f551e753618725bdd3780305
2017-07-18 14:52:52 -07:00
Robert Carr
427ba4ff55 Fix rotation animation selection.
The default manifest value needs to be unspecified, not rotate,
as rotate overrides the LayoutParams specified value.

Bug: 63151981
Test: Manual from bug. go/wm-smoke.
Change-Id: I2ad6e3fdd06eeef0166bbe09d07b57cc45ed6e50
2017-07-17 18:37:06 -07:00
Andrii Kulian
3a1619d68e Position app with short aspect ratio opposite of nav bar
When an application doesn't support tall aspect ratio of the
screen where it's displayed, it should be positioned on the
opposite side from navigation bar. It's supposed to create
an effect of extended black nav bar.

Bug: 62893418
Test: go/wm-smoke
Test: ActivityRecordTests#testPositionLimitedAspectRatioNavBarBottom
Test: ActivityRecordTests#testPositionLimitedAspectRatioNavBarLeft
Test: ActivityRecordTests#testPositionLimitedAspectRatioNavBarRight
Change-Id: I2cd3d236ee8d0cc263fee4c0a436d78c755eb9b7
2017-07-12 14:04:35 -07:00
Robert Carr
5482790a3f Merge "SurfaceView: Avoid initializing Surface from an invalid SurfaceControl." into oc-dev
am: 401b8907d0

Change-Id: Ib7a916fb484fb3a7924315169d162f4fdddd8a06
2017-07-07 03:22:50 +00:00
TreeHugger Robot
401b8907d0 Merge "SurfaceView: Avoid initializing Surface from an invalid SurfaceControl." into oc-dev 2017-07-07 03:10:12 +00:00
Robert Carr
7c67b7d097 SurfaceView: Avoid initializing Surface from an invalid
SurfaceControl.

In a recent CL we introduced a call to Surface#createFrom, in order to
recreate the Surface object from the underlying SurfaceControl, as a
workaround to emulate when it was parcelled over binder in the past.
However this is causing BufferQueue abandoned errors when stopping and
resuming some applications. To understand them, we need to revisit the
SurfaceView destruction process when handling onStop.

First mWindowStopped will be set to true (SurfaceView#windowStopped),
and we should then enter updateSurface. Our requested visibility will
now be false and so we emit the Surface destroyed callbacks. Notice in
the finally block in mUpdateSurface, we will release mSurface, but we
will NOT null mSurfaceControl. Inline documentation explains why.

In the case that the activity is not actually being destroyed, it's
possible that we may not get a dispatchDetachedFromWindow. This means
that we will not null mSurfaceControl. Now if the activity is
un-stopped and we re-enter updateSurface we encounter a problem
state. "creating" will be set to false since mSurfaceControl != null,
however mSurfaceControl will not point to a valid surface.

Prior to the introduction of the #createFrom call, this unwanted state
didn't cause any problems. Because mSurface was released back in the
finally block as we were stopping we now fall out of the
mSurface.isValid() block in updateSurface. As we reach the finally
block again, we would now set mSurfaceControl=null since the app was
no longer stopped. Later when we reach updateSurface again (which
tends to happen quite often) it will now be null and we will correctly
set creating=true, create a valid SurfaceControl, and move along
happily. However following, the introduction of this
Surface#createFrom call we will now reinitialize the Surface from an
invalid underlying SurfaceControl. This means we will enter the
mSurface.isValid block, but will proceed to emit an invalid Surface to
the client in the callbacks.

We avoid this state by making creating=true even if
SurfaceControl=non-null when the calculated visibility changes from
invisible to visible.

Bug: 63251745
Test: Manual of app from bug and apps from previous related bugs. go/wm-smoke. Additional manual testing of many SV apps.
Change-Id: Icc32a34cac239d65267da705cc23feb23e1ceb67
2017-07-06 15:53:04 -07:00
TreeHugger Robot
92b6b7090c Merge "AOD: Skip window animations while dozing" into oc-dr1-dev 2017-07-06 17:53:24 +00:00
Adrian Roos
e94c15ca96 AOD: Skip window animations while dozing
Fixes: 37245619
Test: go/wm-smoke; Go to home, turn off phone, observe that during the transition to AOD the navigation bar hide animation does not play.
Change-Id: I9a2fce4295900648a680e8e7e8fee0fbb447dd3d
2017-07-06 17:13:07 +02:00
Siarhei Vishniakou
ff1121a735 Hide VIRTUAL_KEY_RELEASE constant.
The constant will become visible once
the corresponding feature is supported.

Bug: 62433331
Test: make
Change-Id: I310338033dd861e9fd0cc1492a8e34fb53ce0415
2017-06-30 11:02:02 -07:00
Bryce Lee
392ac74f37 Merge "Always send configuration to client from resize and relayout." into oc-dr1-dev 2017-06-30 16:17:34 +00:00
Bryce Lee
2050dc66e2 Merge "Add rotation to configuration." into oc-dr1-dev 2017-06-30 16:17:34 +00:00
Bryce Lee
f858b5788e Always send configuration to client from resize and relayout.
Previously, the server side would omit reporting new configurations
during resize and relayout if the current configuration matched the
last reported. However, if the last reported came through a resize,
the client side handling would be enqueued as a Handler message. This
leads to the possibility of the client getting a new window frame but
not a new configuration where this is synchronously handled, such as
ViewRootImpl::performTraversals.

To address this issue, we now always send the current configuration
from the server to the client. The client then identifies changes
against its own record of last reported configuration and updates as
appropriate.

This changelist also adds a call to force window relayout during
updateConfiguration, as it's possible this is called after
performTraversals is called or resize is handled, leading to a stale
window frame.

Bug: 24671393
Test: go/wm-smoke
Test: Open Camera while rotating phone to landscape. Added
      temporary logs to detect inconsistencies between measurements
      and reported rotation on draw.

Change-Id: I0d5143dfe80400f6a43ce710750f9fc9d4b93f74
2017-06-30 06:42:50 -07:00
TreeHugger Robot
4bf79089c4 Merge "Add getCurrentImeTouchRegion to the WindowManager API" into oc-dr1-dev 2017-06-30 03:22:45 +00:00
Ricardo Loo
824b41d77a Merge "docs: Updated isAutofillSupported description." into oc-dev
am: a89dfb5439

Change-Id: Ie43f37efa9e268b04dbad09ad04795089de68adf
2017-06-30 00:51:55 +00:00
Ricardo Loo
a89dfb5439 Merge "docs: Updated isAutofillSupported description." into oc-dev 2017-06-30 00:44:50 +00:00
Bryce Lee
c1f2f2a9d3 Add rotation to configuration.
Certain activities are dependent on the rotation of the device to
determine layout. In these cases, orientation does not provide enough
details.

This CL adds the field (hidden) to the configuration.

Change-Id: Idb3ba10cb4de8838737c25e92264e6cee224e264
Fixes: 32839232
Test: go/wm-smoke
2017-06-29 17:40:23 -07:00
Chet Haase
d73f6a985d Merge "Add docs for new padding/margin attributes." into oc-dev
am: 8cdbd6e184

Change-Id: Iacf5e069e0e6a2b38a1566f36f81ab8de693e634
2017-06-30 00:32:26 +00:00
Albert Chaulk
2ccb0b72e3 Add getCurrentImeTouchRegion to the WindowManager API
This is a followup to ag/2370980/ to expose the API more
externally as a WindowManager API. This allows application
access without needing to reflect on IWindowManager.Stub.

We require this to get the current IME touch region to
display it properly in VR contexts.

Test: Manual
Bug: 62194867

Change-Id: Ibbf336e1e473b65d4c76a1492da187d50cfda424
2017-06-29 13:44:19 -04:00
Chet Haase
353d397d17 Add docs for new padding/margin attributes.
The attributes for View, paddingHorizontal and paddingVertical,
were added in the O release and are documented in R.attr. But they
should also be referenced in View itself, alongside the other
padding parameters.

Similarly, the new layout_MarginHorizontal and
layout_marginVertical should be referenced in
ViewGroup.MarginLayoutParams.

Bug: 63128350  Add docs about new padding/margin params
Test: built docs, checked the result
Change-Id: I3021df5ea83c469811b4a6ec6ecd3ab2966ec384
2017-06-29 07:54:19 -07:00
Ricardo Loo
33d226c953 docs: Updated isAutofillSupported description.
The description for `AutofillManager.isAutofillSupported` doesn't make
clear that either the device or the user can make autofill unsupported.

Bug: 62604325
Test: Ran 'make ds-docs -j16' and staged content to
go/dac-stage/reference/android/view/autofill/AutofillManager.html#isAutofillSupported()

Change-Id: I298b9f535e23dc3cb54fabed36642523753c13a5
2017-06-27 14:17:33 -07:00
TreeHugger Robot
10a41f9b12 Merge "Protect a11y against multi-threaded UIs" into oc-dr1-dev 2017-06-24 04:44:12 +00:00
Rob Carr
2f666763e9 Merge "SurfaceView: Fix positioning issue when toggling visibility." into oc-dev
am: 70f1565b55

Change-Id: I88d205835ce91ea21d77a15649aad2d3b9c187d7
2017-06-21 02:38:55 +00:00
Rob Carr
70f1565b55 Merge "SurfaceView: Fix positioning issue when toggling visibility." into oc-dev 2017-06-21 01:47:58 +00:00