Commit Graph

3391 Commits

Author SHA1 Message Date
Craig Mautner
6881a10557 Small step towards supporting multiple displays
Change-Id: I353449c2b464394988c7e0203656b5851a0c9127
2012-07-27 13:04:51 -07:00
Jeff Smith
440f32bbd4 am ddd88726: am 71930dd7: am a45746ef: Fix several cases of broken droiddoc syntax external issue 35214
* commit 'ddd88726a247e4100cb62b3dc9d0887ca2ae2ec4':
  Fix several cases of broken droiddoc syntax external issue 35214
2012-07-25 22:13:40 -07:00
Jeff Brown
fa25bf5382 Add display manager skeleton.
The purpose of this change is to remove direct reliance on
SurfaceFlinger for describing the size and characteristics of
displays.

This patch also starts to make a distinction between logical displays
and physical display devices.  Currently, the window manager owns
the concept of a logical display whereas the new display
manager owns the concept of a physical display device.

Change-Id: I7e0761f83f033be6c06fd1041280c21500bcabc0
2012-07-25 18:56:16 -07:00
Jeff Smith
ddd88726a2 am 71930dd7: am a45746ef: Fix several cases of broken droiddoc syntax external issue 35214
* commit '71930dd77e4dc6f6be5c648019d2ab0da5f0584c':
  Fix several cases of broken droiddoc syntax external issue 35214
2012-07-25 15:05:23 -07:00
Jeff Brown
a8b9defade Stop using raw display size except in window manager.
We don't actually need the raw size in these places.
The logical size is good enough.

Starting to move dependencies on surface flinger
and window manager out of the Display class.

Change-Id: I2065bee8e5bf7f42c5a452dd1e8479e40ebb0d37
2012-07-25 11:38:48 -07:00
Jeff Smith
71930dd77e am a45746ef: Fix several cases of broken droiddoc syntax external issue 35214
* commit 'a45746efadd11bb7dfab026fb3c81a25fae74ca4':
  Fix several cases of broken droiddoc syntax external issue 35214
2012-07-25 10:56:03 -07:00
Jeff Smith
a45746efad Fix several cases of broken droiddoc syntax
external issue 35214

patch contributed by Jeff Smith <whydoubt@yahoo.com>

Change-Id: I70dcee88a140699bf3e1ab369bed6dcd2fdd3d83
2012-07-25 10:49:25 -07:00
Ed Heyl
2624c3adbe Merge "Account for static child transformations correctly" 2012-07-24 17:21:56 -07:00
Romain Guy
63cf075222 Merge "Make HardwareRenderer able to target generic Surface objects" 2012-07-24 17:21:56 -07:00
Romain Guy
786fc93d71 Make HardwareRenderer able to target generic Surface objects
Change-Id: I4b7199a1eb30e0df354ae12c4819adc69db5df40
2012-07-24 16:41:21 -07:00
Chet Haase
599913d6e8 Account for static child transformations correctly
Optimizations in drawing and invalidation in JB did not correctly
account for static child transforms
(View.getChildStaticTransformation()).
For the invalidation part, this meant that views were not properly
setting the invalidation bounds (which should be transformed by
the static transform), so the affected area of the invalidation
was potentially incorrect. For the drawing part, this meant that
views outside of their parent's bounds were being incorrectly
rejected when the static transform would, in fact, place the views
inside of those bounds.

The fix is in two parts:
- drawing: avoid the early quickReject() logic for containers that
have static transformations set on them
(ViewGroup.setStaticTransformationsEnabled()).
- invalidation: Include the static transform in the invalidation
area propagated up the view hierarchy.

Issue #6864203 The child position outside of parent is not drawn
even it will be drawn inside of the parent after applying static
transformation

Change-Id: I73bea01feab250bdcae2d575313be355a4a3c8f5
2012-07-24 14:51:14 -07:00
Fabrice Di Meglio
85d28a0004 Merge "Replace left/right with start/end for Gravity / LayoutParams / Padding" 2012-07-24 11:11:02 -07:00
Fabrice Di Meglio
b6a45cb928 Merge "Make RelativeLayout aware of layout direction" 2012-07-24 11:05:48 -07:00
Fabrice Di Meglio
f443f98e7f Make RelativeLayout aware of layout direction
- see bug #5429822 UI should be mirrored for RTL locales (Arabic, Hebrew, farsi)

Change-Id: Ica92841fa0c13c25fcf89c4700b0771eec4fd6d7
2012-07-23 16:36:41 -07:00
Jeff Brown
d32460c5b7 Refactor local window manager implementation.
The objective of this refactoring is to remove the reliance on
WindowManager wrapper objects for compatibility mode and for
managing sub-windows.

Removed the WindowManager.isHardwareAccelerated() method since
it is never used.

Change-Id: I4840a6353121859a5e0c07d5cc307a437c595d63
2012-07-20 22:40:50 -07:00
Jeff Brown
23e7c35ab5 Remove dead code in window manager.
The 'nest' parameter is always false so we can get rid of support
for redundantly added views.

Change-Id: I30c6a856797bdc72c4e1aa4cb26b930a33ce9a16
2012-07-20 16:37:22 -07:00
Satoshi Kataoka
bc700adbe0 Merge "Fix a crash in InputMethodManager when switching the IME in the system process" 2012-07-19 22:22:59 -07:00
Fabrice Di Meglio
aac0d4ed02 Replace left/right with start/end for Gravity / LayoutParams / Padding
- see bug #5429822 UI should be mirrored for RTL locales (Arabic, Hebrew, farsi)

Change-Id: Id9af5375fb9b0edeae5232c77e52ecd497bd2e67
2012-07-19 19:21:26 -07:00
Svetoslav Ganov
34caec9940 Views with node providers are important for accessibility in auto mode.
1. If a view's important for accessibility attribute is set to auto the
   framework is responsible to determine if it really is. Views with
   accessibility node providers should be important for accessibilty
   since they are roots of virtual view trees and such trees are
   always important.

bug:6843043

Change-Id: I4b352c59fdefdf9ad220714a43ecb9e01d1c1c1f
2012-07-19 18:24:12 -07:00
Satoshi Kataoka
4e5184f929 Fix a crash in InputMethodManager when switching the IME in the system process
Bug: 6789252
Change-Id: I66f51da1299532793ef8fa700f35b0811670f235
2012-07-19 20:32:51 +09:00
Fabrice Di Meglio
016456e432 Fix padding resolution
Change-Id: I2181a0a4057be0d20744b1512dbc1fbc53490d81
2012-07-18 16:14:57 -07:00
Adam Powell
a9108a217e Add View#generateViewId; make RadioGroup use it
Bug 6448164

generateViewId provides a way for applications to generate opaque ID
values suitable for use with View#setId that will not collide with
values generated by aapt for R.id.

Fix a bug where RadioGroup assumes object hash codes will always be
positive.

Change-Id: I3e2870cd672d6061bb465128f428c81aeef0c44b
2012-07-18 14:27:00 -07:00
Jeff Brown
c69238ebc8 Merge "Remove dithering support." 2012-07-16 16:18:13 -07:00
Jeff Brown
3cc321ecf5 Remove dithering support.
The dithering flag is no longer implemented in Surface Flinger
so this is all dead code.

Change-Id: I74c0e452923207e5b7cfe0eeca9457e5cb990947
2012-07-16 16:17:25 -07:00
Jeff Brown
abae83d155 Merge "Remove freeze(), unfreeze() and setFreezeTint()." 2012-07-16 15:53:00 -07:00
Jeff Brown
f422a56694 Merge "Remove freezeDisplay(), which is no-op." 2012-07-16 15:52:54 -07:00
Jeff Brown
ef4e817ad6 Remove freeze(), unfreeze() and setFreezeTint().
This is all dead code.

Change-Id: Ia8a3068606bfe277a16cde5690f47996657863e8
2012-07-16 15:02:49 -07:00
Jeff Brown
55e395ab33 Remove freezeDisplay(), which is no-op.
Change-Id: I981ee49e6e2d41a09feaee4b384392e83f7faf3d
2012-07-16 14:57:22 -07:00
Svetoslav Ganov
c9c9a48e7b Removing a workaround for incorrect window position on window move.
1. The window manager was not notifying a window when the latter
   has been moved. This was causing incorrect coordinates of the
   nodes reported to accessibility services. To workaround that
   we have carried the correct window location when making a
   call from the accessibility layer into a window. Now the
   window manager notifies the window when it is moved and the
   workaround is no longer needed. This change takes it out.

2. The left and right in the attach info were not updated properly
   after a report that the window has moved.

3. The accessibility manager service was calling directly methods
   on the window manager service without going through the interface
   of the latter. This leads to unnecessary coupling and in the
   long rung increases system complexity and reduces maintability.

bug:6623031

Change-Id: Iacb734b1bf337a47fad02c827ece45bb2f53a79d
2012-07-16 08:46:11 -07:00
Chet Haase
6bcfe893d4 am 0f8e402e: Force invalidates on non-visible views. DO NOT MERGE
* commit '0f8e402e954c6e37102fa70f81a1d8ec47156338':
  Force invalidates on non-visible views. DO NOT MERGE
2012-07-13 12:16:46 -07:00
Chet Haase
87e8b25ea3 Merge "Remove redundant computeScroll() call for hw-accelerated views" 2012-07-13 07:39:41 -07:00
Romain Guy
401b1f8574 Merge "Remove obsolete optimization" 2012-07-12 18:02:37 -07:00
Romain Guy
f877308f77 Remove obsolete optimization
Change-Id: I2d43c009c62a7f4a4a2e0a6303bdfa692c4b8c8c
2012-07-12 18:01:00 -07:00
Chet Haase
526057bc77 Remove redundant computeScroll() call for hw-accelerated views
View.draw() calls computeScroll() to initialize scrolling values correctly.
But getDisplayList() also calls computeScroll() for the same reason, resulting
in 2 calls to that method for hw-accelerated views.
Fix: avoid calling computeScroll() in View.draw() for views with display lists.

Change-Id: I57a3862e2d554752cd0fdb862513cbb3dfb3105c
2012-07-12 17:50:41 -07:00
Jeff Brown
c643ca97a8 Merge "Fix bug in IME handling of pending key events." 2012-07-12 16:18:50 -07:00
Jeff Brown
2499bbecc2 Fix bug in IME handling of pending key events.
Bug: 6812529
Change-Id: I7195a4346d44d65a79969a1bb5daa3bb8a018600
2012-07-12 16:14:37 -07:00
Chet Haase
0f8e402e95 Force invalidates on non-visible views. DO NOT MERGE
An optimization prunes invalidates on views which are not inside their
parent's bounds. This works in most cases, but it is possible to run
a situation where a view has been invalidated (and is thus waiting to
be redrawn), but the pruning logic ensures that that draw call
will not happen. Further, when/if the view comes into the bounds
of its parent again, it may still not be redrawn, because now future
invalidates on the view are noop'd because it is already in an invalidated
state (and thus will not propagate invalidates up the hierarchy).

The fix is to remove the optitmization. This will cause some overhead
sending the invalidation request up to the view root, but this
overhead is minimal (and only extra for cases of out-of-bounds views),
and the more expensive part of rendering these views will still not be done
since the view root will avoid re-drawing the hierarchy when the dirty
rectangle is empty.

Issue #6813661 offscreen views don't get invalidated properly (may remain invisible when returning onscreen)

Change-Id: Ic4b439540084a7163be9afc585bea6560d073280
2012-07-12 14:40:28 -07:00
Romain Guy
f0af1d5cb2 Remove unused View.flushLayer() API
Change-Id: I5d4c7388afb5265964ab6b769cc0abfee9745c84
2012-07-11 18:31:21 -07:00
Romain Guy
7d3082a3f0 Update View's opacity when changing the background color
Change-Id: Ib5851d47918c99d4906055a9d0245ea100aee231
2012-07-11 17:52:54 -07:00
Romain Guy
4c9dfc4da9 Merge "Update layers' opaque property when needed" 2012-07-11 17:48:34 -07:00
Romain Guy
846a533945 Update layers' opaque property when needed
Before this change, changing a View's opacity would not be reflected
by hardware layers. This could cause layers to retain their previous
opacity.

Change-Id: Iba2c8b4242deca021651df9324cc7c585a64653d
2012-07-11 17:44:57 -07:00
Craig Mautner
fbf885b652 Merge "Notify client side of window movement." 2012-07-10 14:48:06 -07:00
Fabrice Di Meglio
905bd36951 Merge "Make ScrollBar widget aware of layout direction" 2012-07-10 11:16:24 -07:00
Fabrice Di Meglio
55aeca913f Merge "Improve resolution of inherited layout direction" 2012-07-10 11:15:35 -07:00
Fabrice Di Meglio
15d03bf2a6 Merge "Fix MarginLayoutParams resolution" 2012-07-10 11:15:15 -07:00
Svetoslav Ganov
fd8d9c4c0a AccessibilityNodeInfo bounds in screen incorrect if application scale not one V2.0.
1. If the application does not accommodate different screen density the
   system applies an application scale equal to the device density over
   the a default density. The AccessibilityNodeInfo coordinates were not
   reported after applying the compatibility scale, therefore the bounds
   in parent and screen were not as perceived by the user.

bug:6764586

Change-Id: Id9de3de885210d0725d1f3fde38e769b0cfd12a7
2012-07-09 18:19:46 -07:00
Fabrice Di Meglio
69bd55844b Fix MarginLayoutParams resolution
- need to keep initial left/right values for correct resolution

Change-Id: Ia8d0fec7d3c427086b7b5898e544e369b2de4229
2012-07-09 17:34:30 -07:00
Chet Haase
05e91ed5a7 Force invalidates on non-visible views to traverse the hierarchy
An optimization prunes invalidates on views which are not inside their
parent's bounds. This works in most cases, but it is possible to run
a situation where a view has been invalidated (and is thus waiting to
be redrawn), but the pruning logic ensures that that draw call
will not happen. Further, when/if the view comes into the bounds
of its parent again, it may still not be redrawn, because now future
invalidates on the view are noop'd because it is already in an invalidated
state (and thus will not propagate invalidates up the hierarchy).

The fix is to remove the optitmization. This will cause some overhead
sending the invalidation request up to the view root, but this
overhead is minimal (and only extra for cases of out-of-bounds views),
and the more expensive part of rendering these views will still not be done
since the view root will avoid re-drawing the hierarchy when the dirty
rectangle is empty.

Issue #6773607 Layered views animating from offscreen sometimes remain invisible

Change-Id: Ia2c1a2b9d3e7f267253cb325ccceff1e7fdbe8bd
2012-07-09 08:34:01 -07:00
Svetoslav Ganov
9dc2cc53ac Merge "AccessibilityNodeInfo bounds in screen incorrect if application scale not one." 2012-07-03 21:11:35 -07:00
Svetoslav Ganov
983119ab22 AccessibilityNodeInfo bounds in screen incorrect if application scale not one.
1. If the application does not accommodate different screen density the
   system applies an application scale equal to the device density over
   the a default density. The AccessibilityNodeInfo coordinates were not
   reported after applying the compatibility scale, therefore the bounds
   in parent and screen were not as perceived by the user.

bug:6764586

Change-Id: Iae2d6ea81049364194c7cb09df2240b5eda3d939
2012-07-03 21:04:14 -07:00