Commit Graph

4201 Commits

Author SHA1 Message Date
Dianne Hackborn
c4aad01cbb Formalize overscan metrics.
The window manager now maintains and reports a new formal
"overscan insets" for each window, much like the existing
content and visible insets.  This is used to correctly
position the various UI elements in the various combination
of layout options.  In particular, this allows us to have
an activity that is using fitSystemWindows to have the content
of its UI extend out to the visible content part of the screen
while still positioning its fixed UI elements inside the
standard content rect (and the entire window extending all
the way into the overscan area to fill the screen as desired).

Okay, maybe that is not written so clearly.  Well, it made
my head hurt too, so suffer!

The key thing is that windows now need to know about three
rectangles: the overall rectangle of the window, the rectangle
inside of the overscan area, and the rectangle inside of the
content area.  The FLAG_LAYOUT_IN_OVERSCAN option controls
whether the second rectangle is pushed out to fill the entire
overscan area.

Also did some improvements to debug dumping in the window
manager.

Change-Id: Ib2368c4aff5709d00662c799507c37b6826929fd
2013-02-22 19:14:37 -08:00
Craig Mautner
12e563fff9 Merge "Create rotation animation modes." 2013-02-22 18:51:21 +00:00
Craig Mautner
3c1743705c Create rotation animation modes.
Allow fullscreen windows to specify crossfade or jumpcut animations
that override the default rotation animation. Only if the incoming
and outgoing topmost windows are fullscreen and both specify the
same animation to use.

Fixes bug 8182773.

Change-Id: I6b3c0020d7bd2cdfba5c66189e114ec62cd54fcf
2013-02-22 10:44:52 -08:00
Michael Wright
fe98be7533 am 65b0052a: Merge "Remove SurfaceControl.setPosition(int, int)"
* commit '65b0052a7473b73a18aef73460c9ebec77a2c2a0':
  Remove SurfaceControl.setPosition(int, int)
2013-02-21 16:09:05 -08:00
Michael Wright
b7b696ee71 Remove SurfaceControl.setPosition(int, int)
This was just casting and calling the float version anyways, which Java does
automatically.

Bug: 8153162
Change-Id: If2f99995ff38b92e40777896baf6694786031898
2013-02-21 15:52:50 -08:00
Chris Craik
c4ca87f0f4 am 8a47d8ea: Merge "Clean up clipping and deferral logic"
* commit '8a47d8eaec26d0937aee94a057f561f246748339':
  Clean up clipping and deferral logic
2013-02-20 10:42:40 -08:00
Chris Craik
8a47d8eaec Merge "Clean up clipping and deferral logic" 2013-02-20 18:40:03 +00:00
Chris Craik
5d11676414 Clean up clipping and deferral logic
bug:8037003

-Merges replay methods
-Bounds checking for DrawBitmapMesh, DrawRects and DrawDisplayList
-Use clip as bounds for otherwise unbounded draw operations

Clip-as-bounds is correct for drawColor and functor, but other draw
operations (pos text, text on path, and layers) still need true bounds
calculation

Change-Id: I5d5149d2c624f01e3fe46628bf156e835e69b9d5
2013-02-19 18:56:10 -08:00
Romain Guy
04bef5a6bb am 9943155b: Merge "Show Dalvik stack trace if an exception happens at draw time External bug: http://code.google.com/p/android/issues/detail?id=49379"
* commit '9943155b4db517deb72bd433d1cc9916bd84ae70':
  Show Dalvik stack trace if an exception happens at draw time External bug: http://code.google.com/p/android/issues/detail?id=49379
2013-02-19 15:37:43 -08:00
Romain Guy
9943155b4d Merge "Show Dalvik stack trace if an exception happens at draw time External bug: http://code.google.com/p/android/issues/detail?id=49379" 2013-02-19 23:34:30 +00:00
Romain Guy
d17043dcb4 Show Dalvik stack trace if an exception happens at draw time
External bug: http://code.google.com/p/android/issues/detail?id=49379

Drawing was previously wrapped in a try/finally block which was silently
swallowing user code exceptions. For instance, if a View throws a
NullPointerException in its onDraw() method, the previous implementation
would silently crash in native code.

This change extracts the section that builds display lists into a new
method that does not contain any try/finally block.

In addition, this change logs any exception thrown while drawing
display lists.

Change-Id: I0abffa4c9183d41aac8b0f8442813e56b957f08f
2013-02-19 14:12:55 -08:00
Romain Guy
61302eec45 am 88b556f8: Merge "Fix the build"
* commit '88b556f8d4780b053851b10400b9cd0442ad7991':
  Fix the build
2013-02-19 13:14:00 -08:00
Romain Guy
88b556f8d4 Merge "Fix the build" 2013-02-19 21:11:25 +00:00
Romain Guy
4bac6c1a54 Fix the build
Change-Id: I2a0e0d5a25e0c26872dfffeecfb42bace25c0f3c
2013-02-19 13:10:25 -08:00
Dianne Hackborn
7ccb4e79ef am 79ad13f1: Merge "Implement display overscan support."
* commit '79ad13f172094117fab7e816f36a4b84ed241df0':
  Implement display overscan support.
2013-02-19 13:02:53 -08:00
Dianne Hackborn
79ad13f172 Merge "Implement display overscan support." 2013-02-19 21:00:11 +00:00
Romain Guy
846f5f238f am e91efaba: Merge "Expose display list APIs"
* commit 'e91efabaf2c51d017bf4c5bc4e06491c3511f4e5':
  Expose display list APIs
2013-02-19 12:36:28 -08:00
Romain Guy
52036b19a5 Expose display list APIs
The exposed APIs are slightly simpler than the full APIs used internally.
Only APIs useful to applications are exposed.

Change-Id: Ie03014628d40ad5ef63dedbc52ce3def84429d54
2013-02-19 12:30:02 -08:00
Dianne Hackborn
c652de8141 Implement display overscan support.
The window manager now keeps track of the overscan of
each display, with an API to set it.  The overscan impacts
how it positions windows in the display.  There is a new set
of APIs for windows to say they would like to go into the
overscan region.  There is a call into the window manager to
set the overscan region for a display, and it now has a
concept of display settings that it stores presistently.

Also added a new "wm" command, moving the window manager
specific commands from the "am" command to there and adding
a new now to set the overscan region.

Change-Id: Id2c8092db64fd0a982274fedac7658d82f30f9ff
2013-02-19 12:08:58 -08:00
Mathias Agopian
76f56dd598 am ceec31b7: Merge changes I5a218ca1,I853a76d9
* commit 'ceec31b7dab6a23e443d5dcbcfac4a23b720cfde':
  Refactoring: Rename SurfaceTextureClient to Surface
  clean-up following Surface split
2013-02-15 14:28:22 -08:00
Mathias Agopian
ceec31b7da Merge changes I5a218ca1,I853a76d9
* changes:
  Refactoring: Rename SurfaceTextureClient to Surface
  clean-up following Surface split
2013-02-15 22:08:40 +00:00
Adam Powell
2bec1e3d8c am fdc61af1: Merge "Fix missing onSingleTapConfirmed calls in GestureDetector"
* commit 'fdc61af16ffdbaa699431db2f008a424bd79f655':
  Fix missing onSingleTapConfirmed calls in GestureDetector
2013-02-15 13:11:15 -08:00
Mathias Agopian
5280061794 Refactoring: Rename SurfaceTextureClient to Surface
Change-Id: I5a218ca11abeeec05e3a4c3cfc581bcc788814ea
2013-02-15 12:47:40 -08:00
Mathias Agopian
29479ebe10 clean-up following Surface split
Change-Id: I853a76d92d957ee38a36fcdd280d6407ec316987
2013-02-15 12:47:40 -08:00
Adam Powell
eca3e6065e Fix missing onSingleTapConfirmed calls in GestureDetector
Eliminate the short period of time between the tap timeout and long
press causing onSingleTapConfirmed not to be dispatched when apps
expect.

Bug 8124095

Change-Id: I9841ab2a8eb3fee7d57e744e1c8e0e42e108d5f6
2013-02-15 11:27:02 -08:00
Mathias Agopian
0233b6ee33 am 30d7ab9a: fix docs build
# Via Mathias Agopian
* commit '30d7ab9a10fcde397bae7bed5f16d1094fded8b2':
  fix docs build
2013-02-14 19:58:47 -08:00
Kristian Monsen
1456758802 resolved conflicts for merge of 58a1ca66 to master-chromium
Change-Id: I06b61e6d7d52b584eae03a95220381475b8bff0e
2013-02-14 19:48:27 -08:00
Mathias Agopian
30d7ab9a10 fix docs build
Change-Id: I9819693cfa9ad5b8b15b62eab60ddd35a53c5531
2013-02-14 15:39:04 -08:00
Mathias Agopian
58a1ca6642 Merge "split Surface in two classes: SurfaceControl and Surface" 2013-02-14 20:25:08 +00:00
Mathias Agopian
ab31d35749 am a41b23d5: Merge "get rid of Surface.getIdentity()"
# Via Android (Google) Code Review (1) and Mathias Agopian (1)
* commit 'a41b23d55da1bd8e68eb784f28e2c3fe9ded080e':
  get rid of Surface.getIdentity()
2013-02-14 12:25:07 -08:00
Mathias Agopian
a41b23d55d Merge "get rid of Surface.getIdentity()" 2013-02-14 20:22:33 +00:00
Mathias Agopian
3866f0d581 split Surface in two classes: SurfaceControl and Surface
SurfaceControl is the window manager side; it can
control the attributes of a surface but cannot push buffers
to it. Surface on the other hand is the application (producer)
side and is used to push buffers to the surface.

Change-Id: Ib6754c968924e87e8dd02a2073c7a447f729f4dd
2013-02-14 12:19:11 -08:00
Romain Guy
feb6954da1 am 10c0aa24: Merge "Implement support for drawBitmapMesh\'s colors array"
# Via Android (Google) Code Review (1) and Romain Guy (1)
* commit '10c0aa246d9b2633c6cb4e5b714abb0031a4f4cd':
  Implement support for drawBitmapMesh's colors array
2013-02-14 10:54:21 -08:00
Romain Guy
10c0aa246d Merge "Implement support for drawBitmapMesh's colors array" 2013-02-14 18:51:28 +00:00
Craig Mautner
102f711043 am 534d136a: Merge "Remove unused App methods."
# Via Android (Google) Code Review (1) and Craig Mautner (1)
* commit '534d136aa66fb13f7c1b482513627de45c218c29':
  Remove unused App methods.
2013-02-14 10:16:57 -08:00
Romain Guy
ff316ec7a7 Implement support for drawBitmapMesh's colors array
Change-Id: I3d901f6267c2918771ac30ff55c8d80c3ab5b725
2013-02-13 18:39:43 -08:00
Mathias Agopian
f9136fd969 get rid of Surface.getIdentity()
Change-Id: I8b70d77cc1b38009ad71d92025c3beb481a18866
2013-02-13 17:01:42 -08:00
Craig Mautner
b0c0b1fd70 Remove unused App methods.
Now that the Task methods have replaced the App methods remove
the App methods.

Change-Id: I0e7432f2c6f99708759ed8c871d20eb5bd38c3c2
2013-02-13 15:24:14 -08:00
Chris Craik
c932760f66 Merge "Revert "Merge remote-tracking branch 'goog/master-chromium' into 'goog/master'" DO NOT MERGE" 2013-02-13 23:14:58 +00:00
Romain Guy
93799ba01b Merge "Add a render buffer cache to reuse stencil buffers Bug #7146141" 2013-02-13 19:27:59 +00:00
Romain Guy
8d4aeb7111 Add a render buffer cache to reuse stencil buffers
Bug #7146141

This new cache is used in a similar way to LayerCache. It helps
reuse already allocated stencil buffers and thus avoid churning
memory on every frame.

Change-Id: I19551d72da52c40039e65904563600e492c8b193
2013-02-13 11:27:05 -08:00
Fabrice Di Meglio
0c33ecd209 Merge "Clean Paint.mBidiFlags as it is no longer used" 2013-02-13 19:11:50 +00:00
Chris Craik
7c1a49f5f5 Revert "Merge remote-tracking branch 'goog/master-chromium' into 'goog/master'" DO NOT MERGE
This reverts commit 6c0307dd0a, reversing
changes made to a2cd828b74.

Conflicts:
	packages/SystemUI/res/values-sv/strings.xml

Change-Id: Ia178efe8b14751583d47b2826bfe3d3d5463dd2e
2013-02-13 10:50:20 -08:00
Fabrice Di Meglio
6d9fe5bd22 Clean Paint.mBidiFlags as it is no longer used
See bug #7623824

Change-Id: Ie2f9422821f6dcc73c99e8695f448e966b587b1d
2013-02-12 13:12:13 -08:00
Chet Haase
71c2405977 Fix getHitRect() to return correct rect for transformed child
Previous code incorrectly included pivot point in calculation, which
resulted in offset rectangle

Issue #8178031 getHitRect() incorrect when view is transformed

Change-Id: Ie6c4c51614577d208016584cf1bf4eed570f730d
2013-02-12 07:39:58 -08:00
Svetoslav
35ae8748fe Merge "Optimize loading of resource name when reported to accessibility." 2013-02-12 01:48:48 +00:00
Svetoslav
a33243eb64 Optimize loading of resource name when reported to accessibility.
Loading of the resource id name was unnecessarily complex and
was generating spam in the log as a result.

bug:8153518

Change-Id: Ib2c1118fd36b86ba8ce803ba3190fa01ab06e8c3
2013-02-11 17:35:18 -08:00
Fabrice Di Meglio
9dd4c5c686 Fix bug #7381967 Add RTL APIs to ViewParent
- add RTL apis to ViewParent
- remove awful and performance bottleneck casts in View during LayoutDirection,
TextDirection and TextAlignment resolutions.

Change-Id: I92a56b16382e13c28c1dad35f6f205620eb01bfe
2013-02-11 14:41:04 -08:00
Craig Mautner
005f6f6077 Merge "Reset SensorEventListener when listener reenabled." 2013-02-11 17:47:14 +00:00
Craig Mautner
eee29c445c Reset SensorEventListener when listener reenabled.
- Following disable and reenable of the WindowOrientationListener
the state was the same as before. State should be reset to default.

- Provide a Handler to the sensor task to deliver events on the
same Thread that WindowManagerPolicy operates on.

- Expand lock protection to all of WindowOrientationListener.

- Move WindowOrientationListener to policy package.

- Make SensorEventListenerImpl non-static.

Fixes bug 7964531.

Change-Id: I17cecf3d0b6d125cb3e4d7350c3adb3f62b684bd
2013-02-11 09:46:08 -08:00