Commit Graph

29786 Commits

Author SHA1 Message Date
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
Svetoslav
100ed154b7 am b0675df8: am faa47b52: Merge "Idle maintenance scheduling broken." into jb-mr2-dev
* commit 'b0675df8fd377230edc392e02ba0eba275b57992':
  Idle maintenance scheduling broken.
2013-05-06 13:56:14 -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
Svetoslav
b0675df8fd am faa47b52: Merge "Idle maintenance scheduling broken." into jb-mr2-dev
* commit 'faa47b526fc35be01b1bc46a78679adde87f6701':
  Idle maintenance scheduling broken.
2013-05-06 11:10:57 -07:00
Fabrice Di Meglio
8c2e3a412a Merge "Optimize RTL properties resolution" into jb-mr2-dev 2013-05-04 00:48:12 +00: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
Svetoslav
faa47b526f Merge "Idle maintenance scheduling broken." into jb-mr2-dev 2013-05-03 23:33:09 +00:00
Svetoslav
6a08a12b8e Idle maintenance scheduling broken.
1. The scheduling was relying on receiving battery level broadcasts
   which however are not sent if the device is asleep. The maintenance
   window was not bound and we could miss a frame if the user did
   not interact the device longer than the min time between two
   maintenance windows.

2. Hide the idle maintenance intents since this will be rewritten
   to user services.

bug:8688454

Change-Id: I17b421b09823cb46ec218cabda19e02432d94f8c
2013-05-03 14:03:06 -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
Amith Yamasani
821b58a93d am f5a553a4: am 55a08c5a: Merge "Allow requiredForAllUsers to work on updates to system apps" into jb-mr2-dev
* commit 'f5a553a4278a68fda9795dea759840d4f93546d7':
  Allow requiredForAllUsers to work on updates to system apps
2013-05-01 21:28:18 -07:00
Amith Yamasani
f5a553a427 am 55a08c5a: Merge "Allow requiredForAllUsers to work on updates to system apps" into jb-mr2-dev
* commit '55a08c5ab91014eb42ecdc9e7039c7bae1f00058':
  Allow requiredForAllUsers to work on updates to system apps
2013-05-01 21:27:14 -07:00
Amith Yamasani
55a08c5ab9 Merge "Allow requiredForAllUsers to work on updates to system apps" into jb-mr2-dev 2013-05-02 04:26:01 +00:00
Jeff Sharkey
9cbe2ae3ae Merge "Unhide extra to fix docs build." 2013-05-02 01:15:25 +00:00
Jeff Sharkey
9ab3fd4565 Unhide extra to fix docs build.
Change-Id: Ib757b5d62e6ff7f4623680fb5faba337de46aa02
2013-05-01 18:14:16 -07:00
Jeff Brown
fed9c11a99 am f2930d78: am c3112608: Merge "Don\'t dump sql bindargs unless verbose mode is requested." into jb-mr2-dev
* commit 'f2930d783ac52d89cc8fc6db3bed7989544a9cbc':
  Don't dump sql bindargs unless verbose mode is requested.
2013-05-01 17:57:15 -07:00
Jeff Brown
f2930d783a am c3112608: Merge "Don\'t dump sql bindargs unless verbose mode is requested." into jb-mr2-dev
* commit 'c31126088fea61a9b5ba6cdb1fd2791e86800a8a':
  Don't dump sql bindargs unless verbose mode is requested.
2013-05-01 17:54:34 -07:00
Jeff Brown
c31126088f Merge "Don't dump sql bindargs unless verbose mode is requested." into jb-mr2-dev 2013-05-02 00:52:26 +00:00
Jeff Sharkey
037db6cfd0 Merge "External storage provider, document picker UI." 2013-05-02 00:46:46 +00:00
Jeff Sharkey
9e0036ed7d External storage provider, document picker UI.
Continuing to flesh out storage backends by adding an external
storage document backend.  Still rough, but it can traverse files
and directories.

Early pass at OPEN/CREATE_DOC picker UI, which offers to traverse
any known storage backends.  Supports opening subdirectories and
returning a picked file.

Change-Id: Idc3554036b3816a93d9b465ee8a620746859d2ae
2013-05-01 17:44:42 -07:00
Jeff Sharkey
863b117a3a Merge "Start fleshing out new storage APIs." 2013-05-02 00:22:10 +00:00
Jeff Sharkey
9ecfee03fa Start fleshing out new storage APIs.
Introduces new DocumentsContract which storage backends must
implement.  Backends surface a simple directory-like organizational
structure that enables a document to appear at multiple locations in
that hierarchy.  Querying a document or the contents of a directory
will return a Cursor populated with DocumentColumns, which includes
simple metadata.

Adds new OPEN_DOC and CREATE_DOC Intents, and permission to protect
storage backends.

Change-Id: Ib4984bc980182b2cedbe552908e5be94604ef085
2013-05-01 17:21:06 -07:00
Amith Yamasani
0d8750d771 Allow requiredForAllUsers to work on updates to system apps
Bug: 8736380

Also set the default type as the constructor docs imply in RestrictionEntry.

Change-Id: I446504fad8822804d68f09b45ef62f6d79c4b8df
2013-05-01 15:31:49 -07:00
Jeff Brown
cefeb29d53 Don't dump sql bindargs unless verbose mode is requested.
Bug: 8780126
Change-Id: I88e238f9d684cc76731207e75370cbb2e0e476c5
2013-05-01 15:28:37 -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
Elliott Hughes
c3bc1b671e am c255800f: am 6d82f86f: Merge "Show CJK dates as all-numeric in the DatePicker."
* commit 'c255800fb0f46ea5f68d2c145605ac7dcd3a89b6':
  Show CJK dates as all-numeric in the DatePicker.
2013-05-01 14:56:59 -07:00
Elliott Hughes
c255800fb0 am 6d82f86f: Merge "Show CJK dates as all-numeric in the DatePicker."
* commit '6d82f86fa01800ee0523743366e0dc1113178fd9':
  Show CJK dates as all-numeric in the DatePicker.
2013-05-01 14:53:28 -07:00
Elliott Hughes
949e9df25b Show CJK dates as all-numeric in the DatePicker.
Before, we'd have something like 2006 4月12. After, we have 2006 4 12.
The alternative would require using custom NumberPicker.Formatter instances
for the year and day fields in these locales, and that seems significantly
more disruptive.

Bug: 8766552
Change-Id: I568578aae2f80f2acfc53cd277ef3beae6743472
2013-05-01 14:12:05 -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
Jeff Sharkey
09aa0cf6f6 Merge "Better --unplugged support when dumping battery." 2013-04-30 22:14:12 +00:00
Alan Viverette
52ae8e845e am a7fa0079: am 561dcc58: Merge "Avoid crash when TextToSpeech calls onInit() from the constructor." into jb-mr2-dev
* commit 'a7fa0079a7bf544f7f7b0828c00a9247c0c51bfe':
  Avoid crash when TextToSpeech calls onInit() from the constructor.
2013-04-30 14:09:01 -07:00
Alan Viverette
a7fa0079a7 am 561dcc58: Merge "Avoid crash when TextToSpeech calls onInit() from the constructor." into jb-mr2-dev
* commit '561dcc5823eec20c48d116531556b32e9de66f91':
  Avoid crash when TextToSpeech calls onInit() from the constructor.
2013-04-30 14:04:13 -07:00
Jeff Sharkey
ec43a6bc17 Better --unplugged support when dumping battery.
Also fixes logBatteryStatsLocked() to output valid dump data, instead
of just a usage message.

Bug: 8708665
Change-Id: Ie0d8d90e1a470b7e1e902643333309c2cf7bdb72
2013-04-30 13:33:18 -07:00
Elliott Hughes
a5e5196bec am 76c643c9: am e3f2735f: Merge "when locale is non-Enligh, sometimes month spinner needs a number IME"
* commit '76c643c9b600ef31c22f807c2874c879a7fa5069':
  when locale is non-Enligh, sometimes month spinner needs a number IME
2013-04-30 13:23:17 -07:00
Romain Guy
0520146c41 am 55828af2: am 6628ee7a: Merge "HeaderViewListAdapter: Correct thrown error names."
* commit '55828af26ce0090c6c80a300d27d1064ce1b74c6':
  HeaderViewListAdapter: Correct thrown error names.
2013-04-30 13:23:15 -07:00
Elliott Hughes
76c643c9b6 am e3f2735f: Merge "when locale is non-Enligh, sometimes month spinner needs a number IME"
* commit 'e3f2735fcfd8dafd226200d5cf219a6f82c9cc0c':
  when locale is non-Enligh, sometimes month spinner needs a number IME
2013-04-30 13:21:22 -07:00
Romain Guy
55828af26c am 6628ee7a: Merge "HeaderViewListAdapter: Correct thrown error names."
* commit '6628ee7a46a56cdc28d409e6fd74afc34bd24c5b':
  HeaderViewListAdapter: Correct thrown error names.
2013-04-30 13:21:19 -07:00
Elliott Hughes
e3f2735fcf Merge "when locale is non-Enligh, sometimes month spinner needs a number IME" 2013-04-30 20:11:50 +00:00
Elliott Hughes
31872fd7ce am a99595a3: am afe56810: Merge "Fix DatePicker\'s spinner order in various locales."
* commit 'a99595a393341b6a130e202bc9e93848ee53057b':
  Fix DatePicker's spinner order in various locales.
2013-04-30 12:17:27 -07:00
Elliott Hughes
ba8d2e58f8 am c2639e58: am 0bb4c701: Merge "Use ICU for getDateFormatOrder."
* commit 'c2639e58fa5724c06a1d910ad76aebed647b4ba2':
  Use ICU for getDateFormatOrder.
2013-04-30 12:17:25 -07:00