Commit Graph

4869 Commits

Author SHA1 Message Date
Jeff Brown
d40a4d74c6 Merge "Add media router service and integrate with remote displays." into klp-dev 2013-11-08 01:36:55 +00:00
Jeff Brown
69b07161be Add media router service and integrate with remote displays.
This change adds a new media router service whose purpose is to track
global state information associated with media routes.  This service
publishes routes to the media router instance in application processes
and handles requested state changes such as selecting or unselecting
global routes.  The service also binds to remote display provider
services which can offer new remote display routes to the system.

Includes a test application for manually verifying certain aspects
of the operation of the media router service.

The remote display provider interface is essentially a stripped down
media route provider interface as defined in the support library
media router implementation.  For now, it is designed to be used only
by first parties to publish remote display routes to the system so
it is not exposed as public API in the SDK.  In the future, the remote
display provider interface will most likely be deprecated and replaced
with a more featureful media route provider interface for third
party integration, similar to what is in the support library today.

Further patch sets integrate these new capabilities into the System UI
and Settings for connecting remote displays.

Bug: 11257292
Change-Id: I31109f23f17b474d17534d0f5f4503e388b081c2
2013-11-07 03:25:37 -08:00
Fabrice Di Meglio
f48bcd5b68 Merge "Fix bug #11256076 Spinner text is too close from the opening triangle in RTL Locales" into klp-dev 2013-11-05 00:46:19 +00:00
Fabrice Di Meglio
cad157b370 Merge "Fix bug #11252410 Recents items stuck behind hammerhead navigation panel in landscape" into klp-dev 2013-11-05 00:45:41 +00:00
Michael Wright
17d28ca3d7 Check view and focus invariants after calling into app
When we dispatch input events into the actual application, make sure
the input invariants we rely on haven't changed. If they have, we
drop the event and log why.

Bug: 11399505

Change-Id: Id772e41ca41dc332bb02725ab486e3b10a73c220
2013-11-01 19:13:20 +00:00
John Spurlock
927d854ff4 Merge "Optimize sysui ui queue during keyguard unlock." into klp-dev 2013-10-29 20:55:04 +00:00
John Spurlock
e7c285725d Optimize sysui ui queue during keyguard unlock.
Target the two biggest offenders:
 - Coalesce keyguard setHidden(false) calls during unlock.
 - Make sysui->WM call async.

Found during investigation into b/11221659.

Bug: 11221659
Change-Id: Icab48376bc356a933e0f9940bc2f924e2e77ab22
2013-10-29 14:27:41 -04:00
Michael Wright
62ce65d6ed Speculatively schedule input consumption
With the new tuned vsync offset, vsyncs are likely to occur shortly
after the input is received, meaning we will empty the input queue,
and thus won't schedule input consumption until more input is
received. If an application then speculatively posts draw commands to
the main looper faster than 60 hz, it will eventually end up blocking
in eglSwapBuffers. Since we're blocking in eglSwapBuffers, we won't
even schedule consumption until after the current frame (8-16ms), and
it's entirely likely we won't actually get around to consuming input
until after the next frame (another 16 ms of latency). This means we
can often go 16-32ms without processing any input events, causing
very noticeable amounts of jank.

Rather than waiting for the next input event to schedule input
consumption, speculatively schedule it every frame as long as we've
consumed some motion batch during this frame.

Bug: 11398045
Change-Id: I25e46308e00e9f9de00a1d8906f6b0e0f2e845b4
2013-10-26 12:18:00 -07:00
Scott Main
5df0631003 add xml attributes to IME javadoc
Change-Id: I7a3505753188ba23777391a286d8595ed64777cb
2013-10-18 16:09:51 -07:00
Scott Main
96844ed886 fix javadoc link
Change-Id: I509fb12393ee0b8bf78ff4110fc18420739f7c58
2013-10-18 14:43:02 -07:00
Fabrice Di Meglio
600d7dd1c6 Fix bug #11256076 Spinner text is too close from the opening triangle in RTL Locales
Background Drawable padding was not taken into account in RTL Locales

- make sure the Drawables are resolved before resolving padding
- during padding resolution take care about background padding

Change-Id: Ib0c722adf5341ab4fa2182a0d0ac2ca639e85cfc
2013-10-18 11:26:48 -07:00
Fabrice Di Meglio
b77c586050 Fix bug #11252410 Recents items stuck behind hammerhead navigation panel in landscape
Right padding was wrong for the LinearLayout with id/recents_linear_layout. Its value
was first correctly set by the fitSystemWindows(Rect insets) call but then was reset
to "0" during padding resolution.

Thus make sure that the initial values for user padding left/righ are also set to the
ones coming from the computed ones.

Change-Id: I60390ff7a24286a8f7214eaff8606cb76268ee90
2013-10-17 17:00:36 -07:00
Jeff Brown
5182c780a8 Log view root, input and looper state in bug reports.
Bug: 10948648
Change-Id: I956cce2a0fb516c02f9bbbc021f6238bcb226891
2013-10-15 20:31:52 -07:00
John Spurlock
f803336028 Merge "Give IMEs the entire screen to use for measuring purposes." into klp-dev 2013-10-15 01:27:42 +00:00
John Spurlock
f8508272ad Give IMEs the entire screen to use for measuring purposes.
IMEs recently gained the ability to layout out under the nav bar,
but our core measuring logic does not give height=WRAP_CONTENT windows
the entire screen height when computing desired window height.

Since IMEs can be identified by type, let them use the entire screen
height for measuring purposes, to properly handle the cases where
space is constrained, making that unaccounted-for nav bar height
important.

Bug:11215678
Change-Id: I1d0b73454c0c629e7d669b9de70641c7e8c4d333
2013-10-14 21:06:52 -04:00
Adam Lesinski
cf18b47ed4 Wrap measurement optimization in targetSdk check
A measurement optimization has exposed some apps that are relying
on incidental layout requests to have themselves update. With the
optimization enabled, these apps break.

Apps targetted at older versions of Android should not
break due to this optimization.

bug:11192311
Change-Id: Id5fc7f83ec2cb1541d3d0d16f951cd57c0afaccd
2013-10-14 13:32:02 -07:00
Dianne Hackborn
021d243d6d Fix issue #11199654: Action bar enter animation skips frames when cleared by the system
We have become too aggressive about not allowing windows to draw while windw
animations are running, basically not allowing any drawing in any window when
there is any window animation.  So if you did a relayout while the status bars
were being animated, your window would stop drawing until that status bar
animation was complete.

This change relaxes those rules in two ways:

- A particular window will only be told to stop updating when *it* is
  currently involved in a window animation.  So animations in status bars
  will not stop app windows from update, and vice versa.

- If a window receives input events while it is in the "do not update"
  state, we will immediately terminate that state and start allowing it to
  draw.  If the user is actually interacting with a window, we don't want
  to wait to show feedback.

Change-Id: I72574eec048aee53115b46a78686cf27f42c42f7
2013-10-13 15:56:29 -07:00
Chris Craik
c09127a7c3 Document special case in hasOverlappingRendering
bug:11121809

Change-Id: I074ac47aa510bd2362cfda7dffc73930f07e925c
2013-10-11 17:00:16 -07:00
Alan Viverette
90abd6d1df Merge "Ensure accessibility node cache is synced with service state" into klp-dev 2013-10-10 18:19:25 +00:00
Alan Viverette
7e361d22e3 Fix accessibility state callbacks
BUG: 11141708
Change-Id: Ieff1fb90c4f894eba3c203089dd61e1dabdb7982
2013-10-09 17:20:43 -07:00
Alan Viverette
3d1c5a7236 Ensure accessibility node cache is synced with service state
BUG: 11152210
Change-Id: Ibffd2909b6b06568de9344e536a200d8a7abac9d
2013-10-09 17:10:21 -07:00
Alan Viverette
24305da7d6 Merge "Add listener for changes to touch exploration state" into klp-dev 2013-10-09 22:13:29 +00:00
Alan Viverette
5baeb9ad1e Add listener for changes to touch exploration state
BUG: 11141708
Change-Id: I353dfa2542ebd5e2ac89029dcd88623cc4c688e7
2013-10-09 14:42:05 -07:00
Alan Viverette
d9f53c0276 Merge "Clear accessibility focus when view becomes invisible" into klp-dev 2013-10-09 20:25:15 +00:00
John Spurlock
92128144d9 Merge "Introduce View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY." into klp-dev 2013-10-09 18:27:53 +00:00
John Spurlock
a12dccc098 Introduce View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY.
The existing View.SYSTEM_UI_FLAG_IMMERSIVE flag will be somewhat
redefined.  Swiping will clear the flags, revealing the normal bars.

The new View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY flag will enable
hideybars - the auto-hiding, semi-transparent bar mode.

Bug:11062108
Change-Id: Ibf8be9072f0075953baa4580cd976e7562d44455
2013-10-09 12:35:52 -04:00
Svetoslav
3edcd8cfdf Add missing locking when updating the accessibility node info cache.
bug:10489954

Change-Id: Iccf55d074ea712566f441b9f6616a4c1fe847e0a
2013-10-08 18:31:58 -07:00
Alan Viverette
2e84a99467 Clear accessibility focus when view becomes invisible
BUG: 10912882
Change-Id: I8c7c6906fcf7688ecdfac6649464f088dd812c41
2013-10-08 14:25:42 -07:00
Alan Viverette
3a407fad35 Merge "Fix HIDE_DESCENDANTS accessibility importance mode" into klp-dev 2013-10-08 20:14:21 +00:00
Alan Viverette
24cafbc56c Fix HIDE_DESCENDANTS accessibility importance mode
Ensures accessibility framework is notified when subtree visibility
changes as a result of hiding descendants. Fixes collision between
HAS_TRANSIENT_STATE flag and IMPORTANT_FOR_ACCESSIBILITY mask.

BUG: 11087525
Change-Id: I92dba27350970a09e76b5a878c7604ea06cae197
2013-10-07 18:28:45 -07:00
Alan Viverette
bdae814816 Merge "Provide example actions in AccessibilityEvent.setAction() docs" into klp-dev 2013-10-08 01:09:00 +00:00
Alan Viverette
5a0f4eccfb Ignore certain WindowManager flags when touch exploration is enabled
Specifically, ignore any flags that alter the visibility of the navigation
bar and transparency.

BUG: 11082573
Change-Id: I17264dc55a1c6c3cb9b9cf92d5121799cecee5b8
2013-10-07 15:12:57 -07:00
John Spurlock
3f7cd517aa Fix transparent -> translucent reference in private docs.
Bug:10781433
Change-Id: I9e71b38df3909c367c80a9a589d28f703d1c9936
2013-10-07 12:25:09 -04:00
John Spurlock
bd95740648 Transparent system ui flags -> Translucent WM flags.
Migrate View.SYSTEM_UI_FLAG_TRANSPARENT_(STATUS/NAVIGATION) to
WindowManager.LayoutParams.FLAG_TRANSLUCENT_(STATUS|NAVIGATION).

Add associated public attrs for both new window flags:
  windowTranslucentStatus
  windowTranslucentNavigation

Introduce convenient four new themes that set translucent decor:
  Theme.Holo.NoActionBar.TranslucentDecor
  Theme.Holo.Light.NoActionBar.TranslucentDecor
  Theme.DeviceDefault.NoActionBar.TranslucentDecor
  Theme.DeviceDefault.Light.NoActionBar.TranslucentDecor

Update PhoneWindowManager mechanism to plumb these values back to
SystemUI to drive bar mode state.

The new translucent flags come from the top fullscreen window, not
the focused window, so translucency does not change when opening
dialogs.

Imply some window-level system-ui visibility if one or both of these
new flags are present, specifically:
  FLAG_TRANSLUCENT_STATUS implies LAYOUT_STABLE, LAYOUT_FULLSCREEN
  FLAG_TRANSLUCENT_NAVIGATION implies LAYOUT STABLE, LAYOUT_HIDE_NAV

Rename all associated variable & resource names to use the term
translucent instead of transparent. (Retain the term semi-transparent
for the transient bar style).

Recents activity allowed to inherit translucent decor state via the
new PRIVATE_FLAG_INHERIT_TRANSLUCENT_DECOR.  Compensating changes
to use the full screen area more appropriately.

Update keyguard to use new WM flags.

Update docs and various api artifacts.

Sanity-check fixes:
 - Toasts and alerts given stable layout.
 - Suppress nu-gradient when in transient (hidey) mode.
 - New translucent flags use top-fullscreen window, dialogs don't clear.

Bug:10674960
Bug:11062108
Bug:10987178
Bug:10786445
Bug:10781433
Change-Id: If667a55bea4cf5e008549524b9899197fab55ebe
2013-10-06 16:03:53 -04:00
Alan Viverette
af43110c02 Provide example actions in AccessibilityEvent.setAction() docs
BUG: 11070461
Change-Id: I05799e721dd1285e5165e94c7d63084010fa478b
2013-10-04 13:16:51 -07:00
Alan Viverette
093318eeac Merge "Add importantForAccessibility mode to block entire hierarchy" into klp-dev 2013-10-03 20:33:56 +00:00
John Spurlock
e660ecc436 Merge "Store decor rects per window for transition cropping." into klp-dev 2013-10-03 02:28:58 +00:00
Adam Lesinski
d65825ab1c Merge "Private flags are masked in correct variable" into klp-dev 2013-10-03 01:52:18 +00:00
John Reck
172e87ce51 Reduce max recents on lowram
Bug: 10918599
 Reduce the number of recent tasks to 10 on lowram devices
 Use RGB_565 on low ram devices for thumbnails instead of ARGB_8888
 Combined this saves ~9MB across system_process and systemui

Change-Id: Ieddcb512c7341a90097bc7cbc72d7355a775b416
2013-10-02 17:51:11 -07:00
Alan Viverette
23be199171 Add importantForAccessibility mode to block entire hierarchy
Since older versions of the platform will crash if the mode is
set to 3, this CL adds an extra bit and uses 4 as the mode. This
will also cleanly default the mode to AUTO on unsupported
platforms.

BUG: 11031947
Change-Id: I48035abbf35523d65cead6f27be10f8087973ceb
2013-10-02 17:41:15 -07:00
Adam Lesinski
95c42974f7 Private flags are masked in correct variable
Newly added private flags were being masked in the public flag variable
as opposed to the correct privateFlags variable.

bug:11033280
bug:11043194
Change-Id: Idda3a70a083457f3f1b7d4b46d231f4a7e704cf0
2013-10-02 16:18:55 -07:00
John Spurlock
4664623c30 Store decor rects per window for transition cropping.
Instead of keeping a single global system decor rect around
in WindowManagerService, calculate and store policy-defined
system-decor frame for each window.

The per-window decor rect is useful for smooth transitions, since it
determines window cropping during transition animations.

Bug:10938001
Change-Id: Ice6652aa5946027c45c0b7ab4e46473a0f8e3f90
2013-10-02 18:12:16 -04:00
Adam Lesinski
6a591f5859 Make room for new public flags
Moved two hidden flags to private

bug:11033280
Change-Id: Icca867b073aff643eefdaf84df68de86bb6b05ac
2013-10-01 18:48:20 -07:00
Alan Viverette
f079a6d07f Merge "Set live region property on AccessibilityNodeInfo" into klp-dev 2013-10-01 18:33:12 +00:00
Alan Viverette
3320ef95de Merge "Add findFocus API for AccessibilityNodeProvider" into klp-dev 2013-10-01 18:32:48 +00:00
Alan Viverette
f877ed96b7 Set live region property on AccessibilityNodeInfo
BUG: 11012854
Change-Id: I2c88468be597eb3694fe3d0eb2f2d86981ea9829
2013-09-30 17:11:46 -07:00
Jeff Brown
2e05ec3235 Reset insets when inset computer is removed.
When an inset computer is registered with the view tree observer,
we report content insets to the window manager.  When an inset computer
is subsequently unregistered, we must take care to clear these insets.

This patch remembers whether the previously computed insets were
non-empty so that it can force insets to be reset when needed.

Bug: 10840662
Change-Id: I4cce5ba64cc5234b98363b025ac4bb42e64349f1
2013-09-30 15:57:43 -07:00
Alan Viverette
2e1e081146 Add findFocus API for AccessibilityNodeProvider
BUG: 9372171
Change-Id: Iea46ce5a4bf25baaabe5c07cd7d0c58bb31f23d9
2013-09-30 13:45:55 -07:00
Jim Miller
fb2e3c8d47 Merge "Fix permissions on WindowManagerService.showAssistant()" into klp-dev 2013-09-28 01:18:17 +00:00
Jim Miller
6c9df5054a Fix permissions on WindowManagerService.showAssistant()
Since binder call permissions are not transitive by design,
the proper way to fix this is to have the call talk directly
to keyguard from the navigation bar.

Fixes bug 9409008

Change-Id: Ibd90a79bb638c969b514455a2ad93c6ff668222d
2013-09-27 16:29:36 -07:00