Commit Graph

4744 Commits

Author SHA1 Message Date
Chet Haase
be6cf71dc5 Merge "Tweak visibility logic for inflated view scenarios" into klp-dev 2013-08-26 23:29:35 +00:00
Chet Haase
35a457a3ba Tweak visibility logic for inflated view scenarios
Previously, Visibility would determine whether a given view was
worthy of a transition by checking the visibility of that view's
parent hierarchy. This is done to avoid fading every view in
a hierarchy when only the top-most node should be faded.

However, the logic was flawed because it assumed the end scene
parent was stable between scenes, which is not the case with inflated
layout scenes, in which the parent views are not the same, even though they
may represent the same parents (via ids).

The new approach is to check information on both the start and end scene
parents, and to take ids into account when checking the state of these
parents in the start/end scenes. Also, avoid this logic altogether if the
transition is targeted at specific views (don't bother checking the
parents if the transition was told to fade specific views).

Issue #10442447 Transitions: Fades don't happen correctly in some situations

Change-Id: Icea24b892f2eff2d37c6436ccfe4e288aac84178
2013-08-26 16:04:11 -07:00
Adam Powell
0da4a282ee Expand documentation around ViewParent#childHasTransientStateChanged
Bug 10461020

Change-Id: Id27df5de171b01effae949bcb1ce69bd4101b5ee
2013-08-26 21:33:03 +00:00
Alan Viverette
aad4417868 Merge "Use transient state to preserve accessibility focus in ListView" into klp-dev 2013-08-26 20:49:50 +00:00
John Spurlock
b77edbfdab Improve transparent bar transitions.
1. Migrate transparent transitions to the new optimized
background color animations.

2. Ensure sysui animation transparent -> opaque has enough
time to run before window manager crops off the content area.

3. Lose the individual alpha on each status bar icon if the bars
are not opaque.  Animate the alpha if visible, make sure they
play together.

4. Documentation typo fix found in AnimatorSet.

Bug:10344949
Change-Id: I615668ce3c552d3df15dbba5cdeeca67549a0220
2013-08-23 08:08:24 -04:00
Satoshi Kataoka
d866f5002a Merge "Add new API shouldOfferSwitchingToNextInputMethod" into klp-dev 2013-08-23 09:31:51 +00:00
Michael Wright
8e3a41738f Merge "Expose API to query devices for supported keys" into klp-dev 2013-08-22 21:08:02 +00:00
Alan Viverette
6820751c0a Use transient state to preserve accessibility focus in ListView
Removes several stray calls to clearAccessibilityFocus() that were
preventing temporarily detached views from retaining accessibility
focus.

BUG: 10089858
Change-Id: Ieb88a6cd14fe1069ebeeb78bc0edba7a10131f5b
2013-08-22 12:33:07 -07:00
Satoshi Kataoka
2b10b52f6c Add new API shouldOfferSwitchingToNextInputMethod
Bug: 8364845
Change-Id: I6767f5640a07aa515a930645b0cf0b36fbe94831
2013-08-22 15:51:13 +09:00
Chet Haase
5a284c4208 Merge "Cancel running LayoutTransition before removing it from a container" into klp-dev 2013-08-21 21:09:10 +00:00
Chet Haase
ef3cbfd4c4 Cancel running LayoutTransition before removing it from a container
Previously, setting a new LayoutTransition object on a container would
not do anything to the old transition object (if it existed). This means
that the previous transition could be mid-flight, changing stuff in that
container, and would continue doing so even after it was removed.
This could cause artifacts like that in the bug below where views
that are fading out would be put in the containers "disappearing children"
list for the duration of the fade... and then would never be removed from
that list because the container was no longer connected to that transition.
This caused items to stay visible even after they were removed from
their parent containers.

Issue #10119571 LayoutTransitions sometimes does not honor view's visibility

Change-Id: I3efa4065e47fa97c4dd90410bbc1a0273c2b8079
2013-08-21 14:01:02 -07:00
Chris Craik
dc70afaeab Merge "Add inPremutiplied option to BitmapFactory.Options, functionality in Bitmap" into klp-dev 2013-08-21 17:22:24 +00:00
John Spurlock
b06b8b0267 Merge "Improve transient bar transitions." into klp-dev 2013-08-21 13:36:36 +00:00
Chris Craik
1abf5d6242 Add inPremutiplied option to BitmapFactory.Options, functionality in Bitmap
bug:2248948

Change-Id: I8fdd649332667598504a1076d5a447572bd53086
2013-08-20 18:29:33 -07:00
Andy McFadden
59210de17c Merge "Avoid crashing in unlockCanvasAndPost" into klp-dev 2013-08-20 21:27:07 +00:00
John Spurlock
5b9145bf99 Improve transient bar transitions.
1. If app clears transient flag w/ a gesture, the touch-outside
listener would always win, causing an unsightly hide + immediate
reshow.  Instead, give the app some time to clear the flag, then
perform a smooth transition in place.

2. When the transient bars are hidden, we do not know ahead of time
which background will be used on reshow (if transient bars are
revealed, the background is semi-transparent, if transient bars
are cleared, the background is opaque).  Window manager is responsible
for showing windows, but sysui is responsible for setting the view
background.  Therefore, we need some level of coordination between
the two in this case.  Introduce two new non-public sysui flags
that represent the window manager's request to reshow the hidden
bars, but do not reshow until sysui acknowledges (by clearing the flag).
This gives sysui whatever time is necessary to prepare itself for
reshow, avoiding unsightly blip from opaque -> transparent during
the enter animation.

3. When both system bars are hidden, any low-profile changes are
moot.  Avoid unsightly low-profile animations during bar reshow
by suppressing the flag in this case.

4. Improve transient bar home -> launcher transition by cancelling
the -> opaque animation.  This also fixes a bug where hitting
home from the transient bar would leave you with a semi-transparent
bar in a non-transient state.

Bug:10284800
Change-Id: I238210561d8d5f70c1a517283b986c9105a1ec75
2013-08-20 15:37:03 -04:00
Andy McFadden
ed55c8db1c Avoid crashing in unlockCanvasAndPost
It's possible to update the native surface pointer while the
surface is locked (via lockCanvas).  This leads to a surprise when
the surface is unlocked.  Avoid the surprise by tracking the
locked surface separately.

Bug 10289713

Change-Id: I84346c952be859bbd91ceae7df07b91dabe0948e
2013-08-20 11:23:17 -07:00
Michael Wright
b7b2d4b490 Expose API to query devices for supported keys
Change-Id: I29f230e19c6f851b4b72b2fc8dd41f5abcba4631
2013-08-19 17:06:03 -07:00
Craig Mautner
007751276c Merge "Notify ViewRootImpl when it's safe to modify Canvas." into klp-dev 2013-08-19 23:13:47 +00:00
Craig Mautner
bc57cd1b24 Notify ViewRootImpl when it's safe to modify Canvas.
When Activity.convert{To|From}Translucent() is called the
ViewRootImpl is now notified when it is safe to convert the Canvas
from translucent to opaque and back to translucent. This will make
it possible to save resources when compositing opaque layers.

Fixes bug 10349536.

Change-Id: I7282aee1d54601fb00611d20be204bf164d873f6
2013-08-19 15:47:42 -07:00
Alan Viverette
92d2a31807 Merge "Remove duplicate sealed node checks, add missing checks" into klp-dev 2013-08-19 19:50:29 +00:00
Alan Viverette
df39cb9b05 Remove duplicate sealed node checks, add missing checks
Change-Id: Icbe79ba4b74776f845b43f261624d0dbeda4250b
2013-08-19 12:28:04 -07:00
Alan Viverette
77b2a86144 Merge "Fix padding resolution" into klp-dev 2013-08-17 02:00:39 +00:00
Romain Guy
83aec80fb4 Merge "Fix hardware layers lifecycle Bug #10075732" into klp-dev 2013-08-17 01:41:28 +00:00
Romain Guy
46bfc48110 Fix hardware layers lifecycle
Bug #10075732

Hardware layers could survive across EGL terminate events.

Change-Id: Ie8565d55cb29fe6625fa1584d695edfecd37ab5e
2013-08-16 18:38:29 -07:00
Alan Viverette
7b1a6f76de Fix padding resolution
BUG: 10361243
Change-Id: I61b03c08b45ca9c921bf787274bdbb3f174bbc7e
2013-08-16 15:03:35 -07:00
Chet Haase
199acdfcc9 Better Transition interruption
Previously, a running transition on a scene root would simply
be canceled when a new transition was started. This would result in
abrupt scene changes, especially in generic use cases where apps/widgets
would spawn multiple transitions in successive rendering frames due to
small changes in view properties.

The new approach is to check all running animations against new transitions.
If there are overlapping properties that are being set to different values,
the new animations win and the old ones are canceled. If the end values are the
same, the new animations are noop'd and the old ones are allowed to continue
as-is.

There was also improvement to capturing state while other transitions are
running, necessary in this new world where old transitions are allowed to
continue running. Now, transitions are pause()'d while values are captured,
then resume()'d after capturing is done. This allows the system to see what the
real view properties are, instead of the mid-animation values.

Change-Id: I8e77fb9c1967087a682bb26a45763005f5ca9179
2013-08-16 13:22:36 -07:00
Satoshi Kataoka
69da2690e5 Add an API supportsSwitchingToNextInput
To let the system know an IME supports switching to a next input method

Bug: 8364845
Change-Id: Iabf4f106893ee6a262ad0cd44dbec0c661bf0ff2
2013-08-15 16:11:41 +09:00
Alan Viverette
70e907f51f Merge "Prevent refocus after entering touch mode" into klp-dev 2013-08-15 00:01:03 +00:00
Alan Viverette
76e696f6d2 Merge "Add motion event forwarding hidden APIs to View" into klp-dev 2013-08-14 23:01:56 +00:00
Alan Viverette
6fb3b9eb28 Add motion event forwarding hidden APIs to View
Change-Id: Ia7ab5496f8064c96b34912b5f5e9af6fd0978b34
2013-08-14 14:57:13 -07:00
Alan Viverette
973f3b4ebf Prevent refocus after entering touch mode
BUG: 10210009
Change-Id: I9a5d7016728cc7d1fb1c759708b6df41c81865bb
2013-08-13 16:57:28 -07:00
John Spurlock
7facd7f6f1 Sysui flag-related doc fixes.
Add new flags to existing flag listings, fix a broken @link, and
tweak wording.

Change-Id: Iebc4f5fc1c6fc3f8685c6252f88d8044fe08b79d
2013-08-13 17:34:04 -04:00
Michael Wright
51b4a40ef5 Merge "Expose vendor and product IDs for InputDevices" into klp-dev 2013-08-13 00:04:08 +00:00
Michael Wright
54e56946d1 Expose vendor and product IDs for InputDevices
Change-Id: I08665a41e474cbedd10b342eeae20d2ca7c03ac0
2013-08-12 16:39:59 -07:00
Chet Haase
2b2d313e86 Merge "Reduce amount of invalidation when old-style animations are running" into klp-dev 2013-08-09 22:50:35 +00:00
Chet Haase
2632b5d0d2 Reduce amount of invalidation when old-style animations are running
Previously, old animations (view.animation.*) would cause invalidations on
both the area of the child view and then the entire parent area. There's no
reason for the second invalidation; only the child area need be redrawn.

Issue #10229470 Old animation code in View.draw() may be invalidating too much

Change-Id: I4d0d16321e20b2f34dc579eacf5d3841aed33d6d
2013-08-09 15:05:14 -07:00
keunyoung
f6c7a5fd66 Merge "add local focus mode and input event injection API to Window" into klp-dev 2013-08-09 21:51:30 +00:00
Alan Viverette
be11c364e7 Merge "Fix padding adjustment for scrollbars in View, FastScroller" into klp-dev 2013-08-09 20:46:02 +00:00
Alan Viverette
26bb253b40 Fix padding adjustment for scrollbars in View, FastScroller
BUG: 10224791,10248282
Change-Id: Ia89d2cbea163b7cad567ea37161552c1cfd66045
2013-08-09 10:40:50 -07:00
keunyoung
30f420fd6a add local focus mode and input event injection API to Window
- This enables keyboard navigation for window without focus.
 - FLAG_LOCAL_FOCUS_MODE puts window into local focus mode.
 - Application needs to put window in local focus mode, control focus, and
   inject events to make dpad navigation work.
 - Window in local focus mode does not interact with window manager or ime
   regarding focus related events.
 - Also renamed ViewRootImpl.dispatchKey to dispatchInputEvent to allow both key and touch events injection.

Change-Id: I8e8561f29e0dade3797fb7ae3ee7690e6b7f8895
2013-08-08 19:45:21 -07:00
Fabrice Di Meglio
4155e2e175 Fix bug #10210182 CTS: android.widget.cts.TextViewTest#testDrawableResolution is failing on KLP
This issue has been actually revealed by a fix for bug #7034321 (Need Drawable RTL support)
where I identified an issue with Drawables resolution in TextView (was missing a call to
resetResolvedDrawables() and resolveDrawables()).

- add missing resetResolvedDrawables() and resolveDrawables() in TextView.setRelativeDrawablesIfNeeded()
- fix View.resolveDrawables():

this was a bit trycky as View.resolveDrawables() was wrongly supposing that the layout direction was
resolved and it could access View.getLayoutDirection() and could position the PFLAG2_DRAWABLE_RESOLVED
bit.

Dont forget that resolution of RTL properties (layoutDirection, Drawables ...) is happening in
View.measure() but in our case (TexView constructor) we still need to resolve the Drawables.

So now, be sure that we cannot resolve the Drawable if layout direction has not being resolved and the
raw layout direction is LAYOUT_DIRECTION_INHERIT.

But we can also "cheat" if the raw layout direction is LAYOUT_DIRECTION_LTR or LAYOUT_DIRECTION_RTL
or LAYOUT_DIRECTION_LOCALE as its resolution will give the same value :-)

Change-Id: I7a242d918697e1e1c2febf229e8edf1866b855be
2013-08-08 18:22:08 -07:00
Jesse Hall
6a6bc216d1 Use new ISurfaceComposer::destroyDisplay method
Bug: 10191053
Change-Id: I3ecc6880db4a4c77c6db4e8b50faa9b4021d17c6
2013-08-08 15:44:15 -07:00
Satoshi Kataoka
b3c21ac7c6 Reduce the transaction fee of getEnabledInputMethodSubtypeList
Bug: 8467480
Change-Id: If18cce8fbe567df51f29adcdcedff3f743460b8b
2013-08-08 11:32:31 +09:00
Romain Guy
cb883303f9 Only destroy remote graphic buffers
Bug #9795157

Change-Id: Ia7a39d3ef40994fede185482a5b4ca5500249b34
2013-08-07 15:42:29 -07:00
Ken Wakasa
c3a1914bd7 Revert "Reduce the transaction fee of getEnabledInputMethodSubtypeList"
This reverts commit e9a6f9713c.

Change-Id: I611d31086d4f02aae5c7021ac92975bd92a59f34
2013-08-07 15:03:24 +00:00
Satoshi Kataoka
e9a6f9713c Reduce the transaction fee of getEnabledInputMethodSubtypeList
Bug: 8467480
Change-Id: Ic1fddfe433e097041fcb09d1fd341d77d7d8b13b
2013-08-07 17:12:58 +09:00
John Spurlock
166bc5b664 Merge "Introduce new transparent bars sysui flags." 2013-08-06 22:29:17 +00:00
Mathias Agopian
52a9a10b6b Clearly separate consumer and producer interfaces
Bug: 9265647
Change-Id: Ic68e91788d0a05251e1d2fb9f9d4de403c7099bf
2013-08-06 13:07:42 -07:00
John Spurlock
e1f366faf8 Introduce new transparent bars sysui flags.
Two new public sysui flags for views to request transparent
bars:
  View.SYSTEM_UI_FLAG_TRANSPARENT_STATUS
  View.SYSTEM_UI_FLAG_TRANSPARENT_NAVIGATION

This first change simply introduces the flags at the framework
level, and makes the requisite layout tweaks to WM.

As part of this change, expunge the term "hideybars" from the
codebase. The flag to declare support for transient bars is called:
  View.SYSTEM_UI_FLAG_ALLOW_TRANSIENT

Final visuals/transitions between opaque/transparent bars will be
done as a subsequent change. Right now the transparent style is
identical to the transient bars.

Change-Id: I5ead9c5e7b77f212df5b2a5f6e770596cd2226f3
2013-08-06 14:17:22 -04:00