Commit Graph

4856 Commits

Author SHA1 Message Date
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
Michael Wright
a977707d6e Add missing constructor parameter to KeyEvent
When in the SyntheticKeyHandler, a missing constructor paramater caused the
wrong contstructor to be called. This would cause the device id, scan code and
flags to be incorrect.

Bug: 10966229
Change-Id: Ib84ef88d28c0da517b376c5493a851cf8fe0a9f7
2013-09-27 14:12:23 -07:00
Jean Chalard
5638d29a64 Merge "Fix conflicting/unclear documentation in InputConnection." into klp-dev 2013-09-27 03:11:42 +00:00
Romain Guy
33ed738d49 Expose View.executeHardwareAction()
Bug #10911502

Views creating hardware resources need a way to safely interact
with the hardware. This new method invokes HardwareRenderer.safelyRun()
which executes a Runnable after making sure the hardawre rendering
context is in a valid state.

With the OpenGL backend, executeHardwareAction() tries to call
eglMakeCurrent() if needed. This method is not guaranteed to
work.

Change-Id: I38ec65132eeba85605cffb1a6de12b7a0184e213
2013-09-26 22:01:01 +00:00
Jean Chalard
4510eb4049 Fix conflicting/unclear documentation in InputConnection.
Bug: 10247660
Change-Id: I88f36a3764d5e6dee4e864cb9f6df713dde5e0f5
2013-09-26 15:47:29 +09:00
Chet Haase
d73d34c873 Merge "Use transition-only alpha property for fading transitions" into klp-dev 2013-09-18 17:51:34 +00:00
Chet Haase
4fa809fe74 Merge "Fix leak fix in ViewTreeObserver" into klp-dev 2013-09-18 17:48:38 +00:00
Chet Haase
c46181a963 Use transition-only alpha property for fading transitions
The original bug is fixed already, but showed up some problems in
the underlying fade-transition implementation. This fix addresses
those and other issues. The biggest part of the change should help
transition robustness in general, as it removes the dependency on the
public 'alpha' property of views and uses, instead, a new hidden property
on views called 'transitionAlpha'. This is a value which is normally
opaque (1), but which can be used by transitions (only) to animate the
translucency of views without disturbing the actual 'alpha' value which
might be manipulated outside of transitions. This should make transitions
much more robust in general.

In implementing and testing this overall fix, I noticed a couple of things
about transitions that were simply wrong (such as starting fades from the
wrong start value, and incorrectly avoiding transitions on some views
that didn't happen to have ids), and those are fixed in this CL as well.

Issue #10726905 ActionBar weirdness in People app
Issue #10727937 Menu items in gallery appear in faded color after selecting an image/album by long press

Change-Id: If1618446db10c1bfcff4761449241de4f559afc1
2013-09-18 08:55:47 -07:00
Chet Haase
fc343967c8 Fix leak fix in ViewTreeObserver
The leak fix of the CopyOnWriteArray in ViewTreeObserver was
too aggressive, always clearing the shadow copy when it should only
have cleared it when needed. The way it works now, we will always
clear the listeners for ViewTreeObserver after the listeners
are processed.

Issue #10815924 ViewTreeObserver leak fix too aggressive

Change-Id: Iff0095d73beb38e52b0a5ae6b6378afec4458fd3
2013-09-18 08:44:33 -07:00
Mindy Pereira
9f1221f87e Add isQuickScaleEnabled to ScaleGestureDetector
Change-Id: I23dabb8bec69573ca833e06a4fd36435c75d7d04
2013-09-17 10:50:06 -07:00
Chet Haase
7660d121b2 Plug leaks in transitions
Transitions were leaking views due to TransitionsValues holding references
to views/parents. The references were fine, but the retention of the transition
objects themselves were not. There were a few different places that needed to
be plugged:
- clones were not making new copies of some fields, leading to caching references
in the original object (which was then cloned later to other clones)
- Visibility was using a persistent field to cache temporary values. This transition,
when cloned, would retain these instances, keeping references to views
- ViewTreeObserver had a bug that would leak listeners

Issue #10749071 Activity instance leak between TransitionManager and InputMethodManager

Change-Id: I1d5d457dc5e020c7b9e8392a95e3b2c488461119
2013-09-14 12:06:18 -07:00
Chet Haase
5fd37236df Only buildLayer() on attached views
A recent change to ViewPropertyAnimator.withLayer() builds the layer
immediately after creating it. This works in general, but if the view
is not attached, buildLayer() throws an exception.

The fix is to ensure that the view is attached before calling buildLayer().

Issue #10750925 Dialer crashed and phone dropped while on call

Change-Id: I801c835a0f5cb81e159fe90c157c122cf2d0da01
2013-09-13 19:01:52 -07:00
Jean Chalard
940a2ad69e Merge "Don't send the same values to onUpdateSelection repeatedly" into klp-dev 2013-09-13 02:16:47 +00:00
Alan Viverette
2a65a2839e Merge "Add live region politeness to View, AccessibilityNodeInfo" into klp-dev 2013-09-13 01:45:10 +00:00