Commit Graph

4237 Commits

Author SHA1 Message Date
Mathias Agopian
49ff2c615e improve SurfaceControl.screenshot documentation
Change-Id: I7e17f69f74df8610b5b85fac0127727df973be42
2013-03-18 20:27:35 +00:00
Chet Haase
728713258f DO NOT MERGE: ListView transient state fix
ListView child views with transientState (setHasTransientState(true)) are not
handled correctly when the data set changes, such as when an item is added
or removed. The problem is that the transient views are cached by their
position, but this position is out of sync between the ListView and the adapter
until the ListView layout process is complete.

A better way, which unfortunately only works on ListViews with stable IDs, is
to cache the views by their itemID instead, and to use that ID to determine when
and where to reuse/retrieve a transient view during the ListView layout.

Issue #8254775 View.setHasTransient state has side-effects when deleting content in ListView

Change-Id: I2fc25e71ed6655af30b9c3f47fdf014e9b667616
2013-03-18 10:06:27 -07:00
Chet Haase
138c58a941 Merge "Add overlays to views" into jb-mr2-dev 2013-03-18 14:29:06 +00:00
Chet Haase
91cedf1c3d Add overlays to views
It is useful, particularly in animations, to be able to add a view, or at
least some graphics, on top of a view. For example, to have a child of a layout
fade away, we might want to remove the child from that layout and then fade it out
gradually. Meanwhile, we have to have a place to put that view where it will be
drawn. We could do this in the content container sometimes, but this is not a
reliable workaround in the general case, and may obscure other siblings/parents of
the layout/view in the hierarchy. A better approach would be to place a view/graphic
temporarily in the layout itself.

This feature adds the ability to add one or more Views and Drawables to an "overlay"
layer, after which the view will handle drawing that extra content when it redraws itself.

Issue #8350510 Add APIs needed for future animation capabilities

Change-Id: I70bf78c46ee3db8bd87ea1cdc2ecb5c0747ccbf9
2013-03-15 15:53:31 -07:00
Jeff Sharkey
93b04b91bc Merge "Avoid warnings about synthesized IDs." into jb-mr2-dev 2013-03-15 21:47:58 +00:00
Jeff Sharkey
47b50333c1 Avoid warnings about synthesized IDs.
Bug: 8153518
Change-Id: I5d638e17581f63c6d4a10ff6bc2c1bf9997a78b3
2013-03-15 14:46:52 -07:00
Fabrice Di Meglio
261f82ca99 Merge "Revert "Clean Paint.mBidiFlags as it is no longer used"" into jb-mr2-dev 2013-03-15 20:34:06 +00:00
Fabrice Di Meglio
da12f389eb Revert "Clean Paint.mBidiFlags as it is no longer used"
This reverts commit 6d9fe5bd22.
2013-03-15 11:26:56 -07:00
Chet Haase
b38258f357 Merge "Fix erroneous requestLayout-during-layout issues" into jb-mr2-dev 2013-03-15 14:29:41 +00:00
John Spurlock
ac3dfb3880 Merge "WindowManager.LayoutParams docs cleanup." into jb-mr2-dev 2013-03-14 13:08:06 +00:00
Chet Haase
107a48236a Fix erroneous requestLayout-during-layout issues
In general, calling requestLayout() during layout is a Bad Idea.
However, ListView does this during the normal course of its layout, as it
removes and adds views during layout. However, it handles this properly,
ensuring that the views in its hierarchy are all measured and laid out
properly by the time its layout process is done.

A previous fix to the request-during-layout issue attempted to distinguish
the correct from incorrect behavior by checking whether views had been properly
laid out since the requestLayout() call, and making sure the views were
visible in the hierarchy (parented, attached, and !GONE), since otherwise
the views would not be laid out, the flags wouldn't be cleared, and requests
are superfluous anyway. However, this logic only checked whether the
requesting views were GONE, whereas the check should include the entire
parent hierarchy of the views (since a view with a GONE parent is still not
visible to the user).

This fix adds that additional check and cleans up other parts of the previous
code, such as not bothering to post() requests that occur during the second
layout pass unless those requests are also valid (coming from visible views).

Issue #8370042 Path seems to be in an infinite layout loop

Change-Id: I7aaf701229adfeee349a9a7c9ec14585735ba9f6
2013-03-13 18:23:44 -07:00
Mathias Agopian
86e1bc7305 fix CloseGuard usage in Surface
Bug: 8375415
Change-Id: I03e9f318c2ad586f4bd93b280557ada66121d275
2013-03-13 18:21:11 -07:00
John Spurlock
33291d8d71 WindowManager.LayoutParams docs cleanup.
Fix a few things found in our "Constants" section.
 - Close unclosed links.
 - Avoid periods inside parens for summary sentences.
 - Lowercasing in a few places for consistency.

Change-Id: I9aa689fd980b373614dae7c4f8257e0786d2340a
2013-03-13 14:45:14 -04:00
Michael Wright
e7a9ae8ba0 Add touch navigation input source
Bug: 8276741
Change-Id: I674b9804bf9ae76d694ae7073b54a7d43474a43c
2013-03-11 17:58:22 -07:00
Michael Wright
74e4156e5c Add InputDevice#isFromSource convenience method
Change-Id: If2d2e37bc3fff5a862ea3652c7ef9778018e7ecc
2013-03-11 16:02:51 -07:00
Adam Powell
f158b52e20 Make View#computeOpaqueFlags recognize OUTSIDE_OVERLAY scrollbars
While the inset scrollbars may change padding and how backgrounds are
drawn such that an otherwise opaque view is no longer opaque. However,
OUTSIDE_OVERLAY scrollbars don't change the padding and should not
affect the determination of opacity.

Change-Id: I8c0c1408aeb540813de3351f0c0d1ad12ba5919c
2013-03-07 12:40:04 -08:00
Dianne Hackborn
1ab64b819b Merge "Add new sample code for writing a ViewGroup." into jb-mr2-dev 2013-03-07 00:34:55 +00:00
Dianne Hackborn
7caab0ff2d Add new sample code for writing a ViewGroup.
Change-Id: Id6714b062884c9ed60703e5c199f16683c00a800
2013-03-06 13:47:04 -08:00
Mathias Agopian
f4d6f153e6 Merge "remove suppor for SurfaceControl.FX_SURFACE_SCREENSHOT" into jb-mr2-dev 2013-03-06 03:52:50 +00:00
Mathias Agopian
11e7d88d14 remove suppor for SurfaceControl.FX_SURFACE_SCREENSHOT
the window manager can now use the SurfaceControl.screenshot
API with a "regular" surface.

Change-Id: I76bed81d5e7b078ea1b3e8f96814aba32e9d5405
2013-03-05 14:14:55 -08:00
Dianne Hackborn
a55136169e Merge "Add new WindowId for cross-process monitoring of focus." into jb-mr2-dev 2013-03-05 17:37:43 +00:00
Dianne Hackborn
e3f23a36d8 Add new WindowId for cross-process monitoring of focus.
This is a class representing a window and providing limited
interaction with it, which can be handed across processes.

Change-Id: I22885f2064a9cc8c68d690a5858c2e28bbb6a0f3
2013-03-05 09:33:48 -08:00
Romain Guy
d23b2747ef Merge "Finish current Canvas operations then resume previous Canvas Bug #8297260" into jb-mr2-dev 2013-03-05 03:11:11 +00:00
Romain Guy
e78b8003a5 Finish current Canvas operations then resume previous Canvas
Bug #8297260

Change-Id: Ia30bb61ff5db805ec5d57f5e4c22c275f649ecdb
2013-03-04 19:08:02 -08:00
Mathias Agopian
0449a40586 screenshots can now go into a Surface from java
A Surface can trivially be created from a SurfaceTexture.
Update ElectronBeam to use this new API.

Bug: 6940974
Change-Id: I20459443d0d853e3f8ae23104c08d185c336abea
2013-03-04 17:45:26 -08:00
Christopher Tate
267097b00b DO NOT MERGE: Don't crash when we get a drag-ended after being detached
Removing view groups during a drag would cause an NPE here.  The
child views will still get the drag-ended event as expected.

(Cherrypicked from downstream)

Bug 8298439

Change-Id: Ic14cbf9fdc305b91c1627f6882a45d34ee1c34ae
2013-03-04 14:02:29 -08:00
Romain Guy
8b5aa48469 Restore the ability to track native Surface changes
Bug #8230990

ViewRootImpl needs to know when the native Surface objects changes
to recreate the EGL surface. A recent refactoring in Surface broke
the behavior of getGenerationId(). This simply restores the old
behavior (every change increments the generation ID by 1.)

Change-Id: Ife1df1ffb2ee7a373b8ebf2431192702ba10f344
2013-02-28 18:16:31 -08:00
Svetoslav
3c55e5c659 Fake accessibility service used by UiAutomation not destroyed.
UiAutomation registers a fake accessibility service to introspect
the screen. Upon the death of the shell process that started an
instrumentation in which a UiAutomation resides the connection
between the UiAutomation and the system is kept alive allowing
the instrumentation to introspect the screen even after the death
of the shell process.

bug:8285905

Change-Id: I1a16d78abbea032116c4baed175cfc0d5dedbf0c
2013-02-27 18:32:17 -08:00
Jean Chalard
17100f3976 Merge "Fix dead key -> space combination." into jb-mr2-dev 2013-02-26 22:29:00 +00:00
Dianne Hackborn
1bf1af60a3 Add documentation for overscan flag.
Change-Id: Ibed06f23b2011a66021344384150e9d4ba6e61ed
2013-02-26 10:36:10 -08:00
Jean Chalard
548655045a Fix dead key -> space combination.
This also fixes "dead key -> same dead key" combination.
Both these key sequences should only give the non-combining
version of the combining character.

Bug: 8158374
Change-Id: I51f01685dd2997c2c5316ce6aa4f10ac9354c877
2013-02-25 23:48:59 -08:00
Craig Mautner
2e5528c5e0 Merge "Revert ActivityManager changes for tasks. DO NOT MERGE" into jb-mr2-dev 2013-02-26 01:08:28 +00:00
Craig Mautner
2ad920759b Revert ActivityManager changes for tasks. DO NOT MERGE
Keeping all activity=>task changes in master and removing them
from jb-mr2.

Revert "Update histories simultaneously."
Revert "Add null check to setAppGroupId."
Revert "Fix crashing bug in validator."
Revert "Switch topRunning* and moveTaskTo*"
Revert "Begin switch over to task based history."
Revert "Reset and reuse Iterators and don't new() one."
Revert "Remove AppWindowToken lists."
Revert "Fix build."
Revert "Remove unused App methods."
Revert "Stop using AppToken movement and start using Task."
Revert "Replace access to mAppTokens with AppTokenIterator"
Revert "Refactor setAppOpVisibility implementation."
Revert "Add AppWindowTokens to TaskList."
Revert "Make ActivityStack.mHistory private."
Revert "Migrate AppWindowToken lists into DisplayContent."

Change-Id: I5722c9a4956dccb52864207e2967690bc58e4ebb
2013-02-25 17:07:39 -08:00
Mathias Agopian
19a38f6f40 Merge "Fix SurfaceControl.setDisplaySurface() such that it accepts a null Surface" into jb-mr2-dev 2013-02-26 00:55:25 +00:00
Mathias Agopian
ffddc9b804 Fix SurfaceControl.setDisplaySurface() such that it accepts a null Surface
also fix a typo that made us call the wrong Surface ctor

Bug: 8225509
Change-Id: I23f92179b6003d4c3e0febb35166c1caeafa27f5
2013-02-25 16:49:57 -08:00
Romain Guy
08bca88b27 Rename debug property and expose it in HardwareRenderer
Change-Id: If46a9bc14a50f6c9a202d901881b36bbac32cba3
2013-02-25 16:21:30 -08:00
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