2711 Commits

Author SHA1 Message Date
Chet Haase
25a738fb25 Fix in transition canceling logic
The logic that canceled underlying animations caused a problem
when there were more than one animation in the list (due to removing
items from a list that was currently being processed elsewhere).

Change-Id: Ie207f340b5d7de4ffcf56a26c05ec394abb80224
2013-06-04 16:35:14 -07:00
Chet Haase
867a86613d Various fixes/cleanup in Scenes and Transitions
setDuration() wasn't handled correctly for TransitionGroup; it should
propagate the value to its children.

Also, videos with no ids were not being handled correctly. The transition code was
using the default id on those views (-1) to store start/end data about the view,
causing multiple non-id views to clobber values in the hashmaps. The correct approach
should be to ignore default id values - only store information about the view
instances, not about the unset ids.

Also, added a new test InterruptTest to be used to fix the current behavior of
not handling situations where new transitions start while old ones are still taking place.

Change-Id: I4e880bdbb33cc26d487bceb0d56e463e72f7621f
2013-06-03 16:37:05 -07:00
Adam Powell
3d6a3800c8 Fix build; update framework tests for WindowManager API change
Change-Id: I801c455184f2a6771f50e29dc147402db48f9fb7
2013-05-31 17:39:20 -07:00
Jason Sams
579c00efd6 Fix ambiguous clamp.
Change-Id: I75a55bbfe6b8ef68242c8ecd0f70ef218829d110
2013-05-29 11:53:13 -07:00
Dianne Hackborn
f4bf0ae2a7 New ArrayMap class.
This is a new kind of key/value mapping that stores its data
as an array, so it doesn't need to create an extra Entry object
for every mapping placed in to it.  It is also optimized to reduce
memory overhead in other ways, by keeping the base object small,
being fairly aggressive about keeping the array data structures
small, etc.

There are some unit and performance tests dropped in to some
random places; they will need to be put somewhere else once I
decided what we are going to do with this for the next release
(for example if we make it public the unit tests should go in
to CTS).

Switch IntentResolver to using ArrayMap instead of HashMap.

Also get rid of a bunch of duplicate implementations of binarySearch,
and add an optimization to the various sparse arrays where you can
supply an explicit 0 capacity to prevent it from doing an initial
array allocation; use this new optimization in a few places where it
makes sense.

Change-Id: I01ef2764680f8ae49938e2a2ed40dc01606a056b
2013-05-24 16:36:14 -07:00
Chris Craik
6d29c8d521 Add tessellation path for points
bug:4351353
bug:8185479

Point tessellation is similar to line special case, except that we
only tessellate one point (as a circle or rect) and duplicate it
across other instances.

Additionally:

Fixes square caps for AA=false lines

Cleanup in CanvasCompare, disabling interpolation on zoomed-in
comparison view

Change-Id: I0756fcc4b20f77878fed0d8057297c80e82ed9dc
2013-05-14 14:12:55 -07:00
Stephen Hines
6fd5e7ce41 Merge "Switch Fountain(Fbo) to use RSSurfaceView instead of RSTextureView." 2013-05-08 22:52:01 +00:00
Stephen Hines
0e1207e03d Switch Fountain(Fbo) to use RSSurfaceView instead of RSTextureView.
Change-Id: Ifb036e83d76270075de1e7de3b67bb00c645bff2
2013-05-06 18:18:57 -07: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
Tsu Chiang Chuang
85c5f084e5 am e325f13c: am 4e0ae8d6: Merge "Make sure the app is still app after launching. Bug:8755950" into jb-mr2-dev
* commit 'e325f13cf0a06b98e2a638784cd75c0c04f90956':
  Make sure the app is still app after launching. Bug:8755950
2013-05-01 14:18:51 -07:00
Tsu Chiang Chuang
e325f13cf0 am 4e0ae8d6: Merge "Make sure the app is still app after launching. Bug:8755950" into jb-mr2-dev
* commit '4e0ae8d6fdc4646a90949ddf95fd8d1f7a22055a':
  Make sure the app is still app after launching. Bug:8755950
2013-05-01 14:14:01 -07:00
Tsu Chiang Chuang
14c716be79 Make sure the app is still app after launching.
Bug:8755950

Change-Id: Ie30d84cb94787d8b2e7bdc65e329a311581f4a3f
2013-05-01 07:54:48 -07:00
Kenny Root
178e8bbf25 am e9ae6822: resolved conflicts for merge of 1f6e789b to jb-mr2-dev-plus-aosp
* commit 'e9ae6822a80cb1f3bd13c785f1727c03d35da52e':
  Track change to JSSE provider
2013-04-30 09:01:38 -07:00
Kenny Root
e9ae6822a8 resolved conflicts for merge of 1f6e789b to jb-mr2-dev-plus-aosp
Change-Id: I06c05d637613215b6d83df3e29cd495f6a5a0176
2013-04-29 23:09:03 -07:00
Kenny Root
12e752225a Track change to JSSE provider
Change-Id: I35e824e47ad758ab6408e91e2ba5dcda053a82f5
2013-04-29 15:15:27 -07:00
Chet Haase
797b7559d6 Fix build due to transition test errors
erroneous inclusion of R file for test files is causing build breakage
on the server. Remove the offending lines.

Change-Id: I1948facc1b5e3f8b7415e0e6c4290b53a54f12af
2013-04-18 14:18:35 -07:00
Chet Haase
faebd8f079 First draft of Scenes & Transitions feature
This checkin has preliminary API (in flux, definitely changes still
to be made) and implementation for a new "Scenes & Transitions" feature.
The current implementation allows you to define different Scenes
(via layout resource IDs or callbacks) and Transitions to be used when
changing to those scenes. By default, scene changes will use AutoTransition,
which generally does the right thing.

There are no overview docs or tutorials yet. The best way to learn how things
work is to see the code for the various tests in
frameworks/base/tests/TransitionTests.

Expect the API to change. Expect the implementation to change (mostly to add
more functionality). Expect bugs, but tell me if things do not work
as expected.

Change-Id: Ib025a9f565678b225afa4759325cf6d496cc7215
2013-04-18 13:33:13 -07:00
Chris Craik
181e3cb37c am 9b9fe68e: am 18455c30: Merge "Add input/output JSON data for baseline comparison" into jb-mr2-dev
* commit '9b9fe68ea3117041e570ca158d61201acefb0d8f':
  Add input/output JSON data for baseline comparison
2013-04-17 17:38:36 -07:00
Chris Craik
18455c307d Merge "Add input/output JSON data for baseline comparison" into jb-mr2-dev 2013-04-18 00:32:08 +00:00
Chris Craik
5f78311584 Add input/output JSON data for baseline comparison
CanvasCompare will output a JSON file with test results, and can take
such files as input for baseline comparison. The new logcat output
breaks down results into per-test and per-modifier improvement and
regressions.

Change-Id: I4da0251db0637841173ac95e9f431a7ff52c8b61
2013-04-10 15:07:28 -07:00
Maxim Siniavine
a3c58967fe am f7c6475d: am 85478b59: Skip apps without launch intent.
* commit 'f7c6475d0a89d057b60ca63e138c8fbb5a47f1a8':
  Skip apps without launch intent.
2013-04-10 12:26:24 -07:00
Maxim Siniavine
85478b5972 Skip apps without launch intent.
If an app from the apk cannot be launched then skip it in compatibility
test, rather than generate a null pointer exception.

Change-Id: I252031f249bfe25282b10394889ab8c5506cabcf
2013-04-10 12:14:11 -07:00
Daniel Sandler
8be8d6e8b9 am 800d99f6: am 9fa49cc3: Merge "Fix [-] buttons in the notification builder test." into jb-mr2-dev
* commit '800d99f6b557b8684fbdbfc882bc9789ccd3d21f':
  Fix [-] buttons in the notification builder test.
2013-04-09 07:43:27 -07:00
Daniel Sandler
9fa49cc330 Merge "Fix [-] buttons in the notification builder test." into jb-mr2-dev 2013-04-09 14:34:20 +00:00
Daniel Sandler
72dcb91393 Fix [-] buttons in the notification builder test.
(Broken by change I9fae5a4a).

Bug: 8564511
Change-Id: I0d5b65e6678018630c812c5616e9b3f068029e66
2013-04-09 13:34:04 +00:00
Ying Wang
b1026046c6 am d9574cb1: am cf5ccb8f: Fix tests build.
* commit 'd9574cb12896ed639f1c220f646c2dc5e8017841':
  Fix tests build.
2013-04-08 19:15:33 -07:00
Ying Wang
cf5ccb8f81 Fix tests build.
Change-Id: I24d65c18018a8d6df6fa3414306fc0d586d4cfa2
2013-04-08 19:02:01 -07:00
Daniel Sandler
9717fff785 am fe2902b4: am 0e78de6c: Add tag "foo" to builder test\'s notifications.
* commit 'fe2902b48b0b3538e8de7b3d64064c244ca5b193':
  Add tag "foo" to builder test's notifications.
2013-04-08 08:21:10 -07:00
Daniel Sandler
0e78de6c0f Add tag "foo" to builder test's notifications.
This allows them to be conveniently cleared via adb:

  $ adb shell service call notification 5 \
    s16 com.android.statusbartest \
	s16 foo \
	i32 <NOTIFICATIONID> \
	i32 <USERID>

Bug: 8564511
Change-Id: I9fae5a4a0be64d6707cc06ca938adeb8b3c0b735
2013-04-08 14:42:41 +00:00
Tim Murray
70122b0660 am 5c3123d1: am 36b859a6: Merge "Specify SDK version for RS graphics tests." into jb-mr2-dev
* commit '5c3123d1ab9103469eddcf739da1b98d3d36c978':
  Specify SDK version for RS graphics tests.
2013-04-05 15:58:02 -07:00
Tim Murray
36b859a61f Merge "Specify SDK version for RS graphics tests." into jb-mr2-dev 2013-04-05 22:46:06 +00:00
Tim Murray
b2cb8e41f9 Specify SDK version for RS graphics tests.
Change-Id: Ia61c753392432b91f91260a9b8769dfd396c259f
2013-04-05 15:17:54 -07:00
John Spurlock
8740cb1da6 resolved conflicts for merge of 29211d3a to master
Change-Id: I9691f41b12fbf52d0ef35a9bf5223edef7afdfd2
2013-04-05 16:18:59 -04:00
Daniel Sandler
5feceebb89 New NotificationListenerService.
This is the best and only way for apps to listen for
notifications: create a NotificationListenerService, wait
for the NoMan to bind to you (as a result of the user
checking a box somewhere in Settings and agreeing to a
scary dialog box), and you'll start receiving notification
posted and dismissed callbacks. Your service, while enabled,
will also be able to clear one or all notifications.

Use this power wisely.

This change moves StatusBarNotification out of
com.android.internal into android.service.notification.
[Internal customers, including System UI and early users of
the system-only listener binder API, will need to be
updated.]

Bug: 8199624
Change-Id: I1be46f823d4b3ddc901109ec1e085cd6deb740c2
2013-04-05 19:54:44 +00:00
Guang Zhu
d6e7a2b498 am 4a7fae49: am eb93cc6a: Merge "add account checks to app launch test" into jb-mr2-dev
* commit '4a7fae4953e4d50af9b2bf65059cfe8ea3799383':
  add account checks to app launch test
2013-03-22 19:35:33 +00:00
Guang Zhu
6266a436f3 add account checks to app launch test
This optional parameter ensures that, before test starts, device
has the listed account types configured already.

e.g. to test app launch time of Gmail, a valid Google account
must present on device

Change-Id: Idba11beff754fd1d201a9c44a562809d4a9495e2
2013-03-22 11:36:30 -07:00
Fabrice Di Meglio
3807312e9b am 0bcec06b: am 19eceaad: Merge "Fix bug #8437358 Clean any ICU related code from TextLayout / Paint and their dependencies" into jb-mr2-dev
* commit '0bcec06b24e7bc67ab4922f6bb18e6bc7737ba69':
  Fix bug #8437358 Clean any ICU related code from TextLayout / Paint and their dependencies
2013-03-20 22:32:45 +00:00
Fabrice Di Meglio
19eceaadd7 Merge "Fix bug #8437358 Clean any ICU related code from TextLayout / Paint and their dependencies" into jb-mr2-dev 2013-03-20 22:27:37 +00:00
Fabrice Di Meglio
665f02c667 Fix bug #8437358 Clean any ICU related code from TextLayout / Paint and their dependencies
- remove the ICU related methods and update the methods using the "reserved" argument
- update to CTS in another CL too

Change-Id: I5509736568c342d9d17bfeafc17951117ab5d3cc
2013-03-20 14:56:05 -07:00
Jason Sams
f2e2cab60a am 26c46054: am 4e43d76e: Merge "Move compute tests from frameworks/base to frameworks/rs" into jb-mr2-dev
* commit '26c46054a8543b529efa733a7c13483c481e861e':
  Move compute tests from frameworks/base to frameworks/rs
2013-03-19 20:55:19 +00:00
Jason Sams
4e43d76e82 Merge "Move compute tests from frameworks/base to frameworks/rs" into jb-mr2-dev 2013-03-19 20:47:42 +00:00
Jason Sams
eacf9c8041 Move compute tests from frameworks/base to frameworks/rs
Change-Id: I670027782f5ba6df0713dbdc3c99ae7c1eef7d22
2013-03-19 12:43:46 -07:00
Romain Guy
3c12205090 am 595b5bdf: am 603ce559: Merge "Apply ComposeShader\'s local matrix to children" into jb-mr2-dev
* commit '595b5bdf08ab315898b4af0c5c7033a912e004f7':
  Apply ComposeShader's local matrix to children
2013-03-19 02:37:23 +00:00
Romain Guy
d4289922ce Apply ComposeShader's local matrix to children
Change-Id: Idf9b8e7d7b30f8fcd8ba1fd4bfe8991e9ca148e2
2013-03-18 19:30:48 -07:00
Romain Guy
af216f7ce7 am 3c385b3f: am 16b7dc9c: Merge "Merge all shapes/paths caches to PathCache" into jb-mr2-dev
* commit '3c385b3fc08ae2fc5325d0dd4f64d462edf3aad8':
  Merge all shapes/paths caches to PathCache
2013-03-19 02:09:13 +00:00
Craig Mautner
9dfe44bde6 Fix test that uses new API
Change-Id: Ib463dbece44ef1ec9842e3766c2c133b46ca63a5
2013-03-18 18:51:42 -07:00
Romain Guy
c46d07a29e Merge all shapes/paths caches to PathCache
This change will greatly simplify the multi-threading of all
shape types.

This change also uses PathTessellator to render convex paths.

Change-Id: I4e65bc95c9d24ecae2183b72204de5c2dfb6ada4
2013-03-18 18:32:17 -07:00
Dianne Hackborn
468bb47d8f am 0964bb20: am 338b1884: Merge "Improve/flesh-out shared library version check." into jb-mr2-dev
* commit '0964bb20f4798c9b25334dccbf2c5a14b33e6564':
  Improve/flesh-out shared library version check.
2013-03-18 18:49:59 +00:00
Dianne Hackborn
338b188444 Merge "Improve/flesh-out shared library version check." into jb-mr2-dev 2013-03-18 18:44:52 +00:00
Fabrice Di Meglio
f72b5c920a am cf60cc9a: am 261f82ca: Merge "Revert "Clean Paint.mBidiFlags as it is no longer used"" into jb-mr2-dev
* commit 'cf60cc9adedf032c6c97cd2cbb9ff211deaaf3ae':
  Revert "Clean Paint.mBidiFlags as it is no longer used"
2013-03-15 20:39:31 +00:00