Commit Graph

4488 Commits

Author SHA1 Message Date
Romain Guy
fd06074c68 am c4818d86: am 4c95c537: Merge "Optimize list view scrolls Bug #8108706" into jb-mr2-dev
* commit 'c4818d860b90813bde082c381de933933abc574c':
  Optimize list view scrolls Bug #8108706
2013-05-07 10:25:20 -07:00
Romain Guy
c4818d860b am 4c95c537: Merge "Optimize list view scrolls Bug #8108706" into jb-mr2-dev
* commit '4c95c5377a75a3d6c5f3ed8b09a56071d51fadb1':
  Optimize list view scrolls Bug #8108706
2013-05-06 19:09:25 -07:00
Romain Guy
5549cb590d Optimize list view scrolls
Bug #8108706

Change-Id: I8679b584132e82b7bb3301a38800de4ddfc57be6
2013-05-06 18:42:08 -07:00
Fabrice Di Meglio
7caa1a87fe am a8549041: am 8c2e3a41: Merge "Optimize RTL properties resolution" into jb-mr2-dev
* commit 'a8549041ccdf38f8ddbdc5fc2bce84d737a89a7e':
  Optimize RTL properties resolution
2013-05-06 13:56:17 -07:00
Dave Burke
38996cdcf1 am 236cc476: Temporarily revert field name change (DO NOT MERGE)
* commit '236cc476e6792a11502ba4f40c7ab4586f40d282':
  Temporarily revert field name change (DO NOT MERGE)
2013-05-06 11:11:51 -07:00
Fabrice Di Meglio
a8549041cc am 8c2e3a41: Merge "Optimize RTL properties resolution" into jb-mr2-dev
* commit '8c2e3a412aaee8359a48265a101ca27e7b67301c':
  Optimize RTL properties resolution
2013-05-06 11:11:03 -07:00
Dave Burke
236cc476e6 Temporarily revert field name change (DO NOT MERGE)
VisualOn is using hidden fields, causing HBO and Xfinity to crash.
Bug: 8549617
Bug: 8331866

Change-Id: I35a9fe66dea8d56f4fcff9b492679226a17f4acc
2013-05-06 00:21:30 -07:00
Fabrice Di Meglio
09ecb255a6 Optimize RTL properties resolution
- dont bother children about resolving RTL properties if the ViewGroup parent
has not done anything

Change-Id: Iedf8a337097e04e1ab0054d59fc347e06b347ea7
2013-05-03 17:33:31 -07:00
Romain Guy
8add80211e Merge "Add an on-screen overdraw counter" 2013-05-04 00:27:28 +00:00
Romain Guy
78dd96d5af Add an on-screen overdraw counter
The counter can be enabled by setting the system property called
debug.hwui.overdraw to the string "count". If the string is set
to "show", overdraw will be highlighted on screen instead of
printing out a simple counter.

Change-Id: I9a9c970d54bffab43138bbb7682f6c04bc2c40bd
2013-05-03 17:08:20 -07:00
Romain Guy
89852c1401 Merge "Prevent a crash on devices that remove non-core services" 2013-05-03 20:36:51 +00:00
Romain Guy
927bc7d720 Prevent a crash on devices that remove non-core services
Change-Id: Id7fcf0f1f7b6ddec8e860b3c4cde98aec63d04b6
2013-05-03 11:32:09 -07:00
Jeff Brown
b468877f7f am f87d4ea7: am 17cf4e4d: Merge "Really make Surface thread-safe." into jb-mr2-dev
* commit 'f87d4ea77a6950c3d6d381347f2346c12bee25f4':
  Really make Surface thread-safe.
2013-05-03 11:24:20 -07:00
Jeff Brown
f87d4ea77a am 17cf4e4d: Merge "Really make Surface thread-safe." into jb-mr2-dev
* commit '17cf4e4d4a576009efbfce93bd64b687601b71c7':
  Really make Surface thread-safe.
2013-05-03 11:18:58 -07:00
Jeff Brown
17cf4e4d4a Merge "Really make Surface thread-safe." into jb-mr2-dev 2013-05-03 02:11:03 +00:00
Mathias Agopian
b7446f9ddb Merge "simplify Surface{View} dirty rect handling" 2013-05-02 23:26:26 +00:00
Romain Guy
3b748a44c6 Pack preloaded framework assets in a texture atlas
When the Android runtime starts, the system preloads a series of assets
in the Zygote process. These assets are shared across all processes.
Unfortunately, each one of these assets is later uploaded in its own
OpenGL texture, once per process. This wastes memory and generates
unnecessary OpenGL state changes.

This CL introduces an asset server that provides an atlas to all processes.

Note: bitmaps used by skia shaders are *not* sampled from the atlas.
It's an uncommon use case and would require extra texture transforms
in the GL shaders.

WHAT IS THE ASSETS ATLAS

The "assets atlas" is a single, shareable graphic buffer that contains
all the system's preloaded bitmap drawables (this includes 9-patches.)
The atlas is made of two distinct objects: the graphic buffer that
contains the actual pixels and the map which indicates where each
preloaded bitmap can be found in the atlas (essentially a pair of
x and y coordinates.)

HOW IS THE ASSETS ATLAS GENERATED

Because we need to support a wide variety of devices and because it
is easy to change the list of preloaded drawables, the atlas is
generated at runtime, during the startup phase of the system process.

There are several steps that lead to the atlas generation:

1. If the device is booting for the first time, or if the device was
updated, we need to find the best atlas configuration. To do so,
the atlas service tries a number of width, height and algorithm
variations that allows us to pack as many assets as possible while
using as little memory as possible. Once a best configuration is found,
it gets written to disk in /data/system/framework_atlas

2. Given a best configuration (algorithm variant, dimensions and
number of bitmaps that can be packed in the atlas), the atlas service
packs all the preloaded bitmaps into a single graphic buffer object.

3. The packing is done using Skia in a temporary native bitmap. The
Skia bitmap is then copied into the graphic buffer using OpenGL ES
to benefit from texture swizzling.

HOW PROCESSES USE THE ATLAS

Whenever a process' hardware renderer initializes its EGL context,
it queries the atlas service for the graphic buffer and the map.

It is important to remember that both the context and the map will
be valid for the lifetime of the hardware renderer (if the system
process goes down, all apps get killed as well.)

Every time the hardware renderer needs to render a bitmap, it first
checks whether the bitmap can be found in the assets atlas. When
the bitmap is part of the atlas, texture coordinates are remapped
appropriately before rendering.

Change-Id: I8eaecf53e7f6a33d90da3d0047c5ceec89ea3af0
2013-05-02 13:32:09 -07:00
Jeff Brown
fc0ebd7d37 Really make Surface thread-safe.
There were many places where the native object was being
accessed improperly.  Also some places where CloseGuard might
not be acquired or released correctly or where the generation
count might not be updated.

Fixed them all.

That said, Surface isn't intended to be used concurrently
so please don't do it.  This is only intended to make
hard to find crashes less likely.

Bug: 8328715
Change-Id: I981ef33425823e0fd7ad6b64443f2ec9b0c8335e
2013-05-01 15:28:01 -07:00
Romain Guy
fa4eb085c3 am b107b7e9: Merge "Prevent TextureView from ever setting a null layer paint Bug #8760436" into jb-mr2-dev
* commit 'b107b7e9ecaee799a7a18b8ab897969ef554fd9b':
  Prevent TextureView from ever setting a null layer paint Bug #8760436
2013-04-30 18:16:11 -07:00
Romain Guy
b107b7e9ec Merge "Prevent TextureView from ever setting a null layer paint Bug #8760436" into jb-mr2-dev 2013-05-01 01:14:41 +00:00
Chet Haase
b713a15f09 am 8afd195d: am 6b313da0: Merge "Clarify behavior of fullscreen mode and softInputMode\'s adjustResize" into jb-mr2-dev
* commit '8afd195d47d2813822a388fbd0ea69228deafcf0':
  Clarify behavior of fullscreen mode and softInputMode's adjustResize
2013-04-30 16:45:42 -07:00
Chet Haase
8afd195d47 am 6b313da0: Merge "Clarify behavior of fullscreen mode and softInputMode\'s adjustResize" into jb-mr2-dev
* commit '6b313da0d89564711acfc8c66b7790da0f52d187':
  Clarify behavior of fullscreen mode and softInputMode's adjustResize
2013-04-30 16:42:33 -07:00
Romain Guy
4225d79656 Merge "Handle Surface::lock errors in TextureView Bug #8689535" 2013-04-30 18:58:17 +00:00
Romain Guy
53bacf5a91 Handle Surface::lock errors in TextureView
Bug #8689535

Change-Id: I6d16e13903a58e93940160e7656147656ab79982
2013-04-30 11:30:10 -07:00
Romain Guy
efb709adfe Prevent TextureView from ever setting a null layer paint
Bug #8760436

DO NOT MERGE

Change-Id: I7e4d09fa534f539cb99ebeaa8159fb11920460cf
2013-04-30 11:13:00 -07:00
Romain Guy
f9aca99353 Merge "Prevent TextureView from ever setting a null layer paint" 2013-04-30 17:26:10 +00:00
Romain Guy
c2079c968d Prevent TextureView from ever setting a null layer paint
Change-Id: If9a418b7eb9969410286df43ee805cd7d8ec17b2
2013-04-30 10:25:35 -07:00
Chet Haase
45c89c2fad Clarify behavior of fullscreen mode and softInputMode's adjustResize
Fullscreen window's will not resize when the keyboard comes on screen,
regardless of the setting of the window's softInputMode field. This fix
clarifies the docs to make this behavior more obvious.

Issue #8754615 Clarify behavior of adjustResize and fullscreen interaction

Change-Id: Ie056db4e328cefaf0edb54fe8cfa7a08f320c8d0
2013-04-29 16:04:40 -07:00
Svetoslav Ganov
0bd6a395d8 am d3859994: am 951ce6c9: Merge "Revert change f449c0c381239dc0f78b0f01ecfb3889e056a597." into jb-mr2-dev
* commit 'd3859994624af39e0f75fd70fe623403f38c408d':
  Revert change f449c0c381.
2013-04-26 09:40:11 -07:00
Svetoslav Ganov
d385999462 am 951ce6c9: Merge "Revert change f449c0c381239dc0f78b0f01ecfb3889e056a597." into jb-mr2-dev
* commit '951ce6c966311d36328a89784d4c2e6836e9ae87':
  Revert change f449c0c381.
2013-04-26 09:38:18 -07:00
Svetoslav Ganov
951ce6c966 Merge "Revert change f449c0c381239dc0f78b0f01ecfb3889e056a597." into jb-mr2-dev 2013-04-26 16:35:49 +00:00
Chris Craik
80246dbdb5 am 57fc8122: am addc906f: Merge "Force clipping on layers that fail to be allocated" into jb-mr2-dev
* commit '57fc8122eabc08b19a41f308d409795d094856d8':
  Force clipping on layers that fail to be allocated
2013-04-25 21:27:04 -07:00
Chris Craik
57fc8122ea am addc906f: Merge "Force clipping on layers that fail to be allocated" into jb-mr2-dev
* commit 'addc906f70ba24aa4b649fff7f98d88b96c8d808':
  Force clipping on layers that fail to be allocated
2013-04-25 21:22:35 -07:00
Chris Craik
addc906f70 Merge "Force clipping on layers that fail to be allocated" into jb-mr2-dev 2013-04-26 02:15:45 +00:00
Alan Viverette
e7a4e636ac Revert change f449c0c381.
Previously, onHoverEvent() would return true if a view was hoverable
and consume the event. After the change, it would return the result of
dispatchGenericMotionEventInternal(). As a result, touch exploration
caused multiple hover events to be sent from every view under a given
touch point. This change reverts to the original behavior and fixes
touch exploration.

BUG: 8723842
Change-Id: I0c7362f19c51bf21ed842711a03b7f02613958d2
2013-04-25 17:32:45 -07:00
Svetoslav
afab4fd00b am c6eeacd9: am c38bc5ab: Merge "Lockscreen widgets not always announced." into jb-mr2-dev
* commit 'c6eeacd9341c0348c2eb29d1808eb17ea08464f4':
  Lockscreen widgets not always announced.
2013-04-25 17:14:33 -07:00
Michael Wright
b31c361077 resolved conflicts for merge of f652551b to master
Change-Id: I210f0e45d9163a8f5b70f99eba38f343c621a8e7
2013-04-25 17:09:58 -07:00
Svetoslav
c6eeacd934 am c38bc5ab: Merge "Lockscreen widgets not always announced." into jb-mr2-dev
* commit 'c38bc5ab6b55804c7a8d440cf2bf249baa2efc98':
  Lockscreen widgets not always announced.
2013-04-25 16:57:56 -07:00
Michael Wright
f652551b3b am b044c40c: Merge "Fixed javadoc in input related classes" into jb-mr2-dev
* commit 'b044c40c154ba8abe62154608812ad87993ca0d8':
  Fixed javadoc in input related classes
2013-04-25 16:57:52 -07:00
Chris Craik
eaddac6d26 Force clipping on layers that fail to be allocated
bug:8666842

In SW rendering, a previous optimization avoided clipping to the
bounds of views that are layers. This breaks if the view fails to
create a layer (such as if it's too big), so instead look at whether
the view has a layer.

Change-Id: I653882035512012aefd91f06ff0bdc73aa5e4430
2013-04-25 15:32:40 -07:00
Svetoslav
c38bc5ab6b Merge "Lockscreen widgets not always announced." into jb-mr2-dev 2013-04-25 21:49:00 +00:00
Michael Wright
b044c40c15 Merge "Fixed javadoc in input related classes" into jb-mr2-dev 2013-04-25 21:43:03 +00:00
Svetoslav
4293e233dc Lockscreen widgets not always announced.
1. The accessibility events for switching a widget were dispatched
   before we update the important for accessibility property. We
   were lucky to get events in some cases since the pages in the
   pager had alpha grater than zero, i.e. the page was already
   set as important for accessibility, due to a running animation.

2. Accessibility focus clear event not fired if we give focus to
   another view. The old focus was correctly cleared just the
   events were not dispatched.

bug:8599670

Change-Id: Ia2647d77eaa4e10fbaf3a047dc9ea5b728f9c3c3
2013-04-25 13:25:11 -07:00
Michael Wright
072137c80a Fixed javadoc in input related classes
Change-Id: Ie415f812a0f473488d74119dab18296a488db6b9
2013-04-24 20:41:20 -07:00
Chet Haase
490d0c4468 am 6b4d0f21: am 42689769: Merge "Document behavior and usage of ViewGroup.bringChildToFront()" into jb-mr2-dev
* commit '6b4d0f21109209f1390125f301f20aa32e83b91a':
  Document behavior and usage of ViewGroup.bringChildToFront()
2013-04-24 15:01:01 -07:00
Chet Haase
6b4d0f2110 am 42689769: Merge "Document behavior and usage of ViewGroup.bringChildToFront()" into jb-mr2-dev
* commit '4268976929979ffcc54122f8090c39a8c6799273':
  Document behavior and usage of ViewGroup.bringChildToFront()
2013-04-24 14:58:38 -07:00
Chet Haase
0187a5d424 Document behavior and usage of ViewGroup.bringChildToFront()
A call to ViewGroup.bringChildToFront() or View.bringToFront()
(which delegates to the parent's bringChildToFront() method) needs
to be followed by a call to requestLayout() and invalidate() on the
parent container in order for the changes to
actually happen. That is, the order of the child views would change, but
the parent container would not run layout or even invalidation without
being told to, so there would be no visible change until something else
caused a layout and invalidation to occur.

This change clarifies this requirement in the javadocs.

Issue #8667065 bringtoTop does not work

Change-Id: Ibe41a6318dddf9fb79382e1c9fd1d21ab4510976
2013-04-24 12:37:36 -07:00
Svetoslav
fb2563103b am 939ff0ac: am 4c783066: Merge "Fixing bugs exposed when moving accessibility CTS tests to UiAutomation." into jb-mr2-dev
* commit '939ff0acff8a21a023d79214130680a66214840f':
  Fixing bugs exposed when moving accessibility CTS tests to UiAutomation.
2013-04-23 18:08:55 -07:00
Svetoslav
939ff0acff am 4c783066: Merge "Fixing bugs exposed when moving accessibility CTS tests to UiAutomation." into jb-mr2-dev
* commit '4c78306617dd67b92fdf19101c5dfde4e21172d9':
  Fixing bugs exposed when moving accessibility CTS tests to UiAutomation.
2013-04-23 18:07:04 -07:00
Svetoslav
4c78306617 Merge "Fixing bugs exposed when moving accessibility CTS tests to UiAutomation." into jb-mr2-dev 2013-04-24 01:05:38 +00:00