Commit Graph

7996 Commits

Author SHA1 Message Date
Yohei Yukawa
b7edebc8ad Fix inefficient CursorAnchorInfo#hashCode().
It turns out that the current CursorAnchorInfo#equals() is quite
inefficient because our CursorAnchorInfo#hashCode() tries to use almost
all the fields.  Even worse, as Matrix#hashCode() is hard-coded to 44,
we get the same hashCode() when comparing two CursorAnchorInfo objects
that are different only in transformation Matrix after such a complex
hash calculation.

In the real world scenarios, most likely calculation hash code only from
Matrix and composing text would be good enough for our use case, because
the former can cover UI scrolling scenario and the latter can cover the
text typing scenario.  More complex hash calculation is probably
inefficient.

With this CL, CursorAnchorInfo#hashCode() is pre-calculated only from
those two fields, and carefully reorder comparisons in
CursorAnchorInfo#equals() to improve the likelihood of returning false
with fewer comparisons.

Bug: 28105733
Change-Id: Id896adeab5ffe87ceddb2c2762d6d91475e28ec4
2016-04-11 01:38:23 -07:00
Jorim Jaggi
8f5701bd9f Only force drawing status bar background if target >= N
Since forcing it all the time has the potential of breaking
compatibility with apps, we don't want to do this.

Instead, we only force it if the app targets >= N.

We communicate this to window manager with
PRIVATE_FLAG_FORCE_DRAW_STATUS_BAR_BACKGROUND.

We introduced this for 2-up split-screen. If we have an app
that doesn't draw the status bar background by itself, we
just force the whole bar to be black.

The same applies for windows that used translucent status
bar - we also force the whole bar to be black

Bug: 27285627
Change-Id: I7f1ceaa364f8a4e851935f77aa5e8d913bf11791
2016-04-08 20:49:20 -07:00
Phil Weaver
af93306a3d Merge "Reduce unnecessary accessibility cache clearing." into nyc-dev 2016-04-08 22:33:33 +00:00
Tenghui Zhu
3cb5ba75b7 Merge "Update the documentation on createCircularReveal" into nyc-dev 2016-04-08 21:24:04 +00:00
Phil Weaver
e37cfab6c6 Reduce unnecessary accessibility cache clearing.
Tracking if accessibility focus is being cleared because it is being
set to another view in the same window. In this case, leave
accessibility focus on the window.

This change greatly reduces the amount of cache re-indexing.
Previously we flushed the cache every time accessibility focus moved.

Bug: 28077283
Change-Id: If80899d36e7f58b22635f844bdd4ea37a55b875e
2016-04-08 13:06:44 -07:00
Phil Weaver
ab4d5ffd12 Merge "Eliminate side effects of a11y window title." into nyc-dev 2016-04-08 18:22:02 +00:00
John Reck
c724dcf23c Merge "Make stopped state a first-class thing" into nyc-dev 2016-04-08 15:09:42 +00:00
Teng-Hui Zhu
9b3be58403 Update the documentation on createCircularReveal
fix:25250431

Change-Id: I9fc76ad69b495c36a03c875a529f755a029fae96
2016-04-07 16:13:27 -07:00
John Reck
4a62effbfe Merge "Fix some edge cases" into nyc-dev 2016-04-07 23:08:10 +00:00
John Reck
945961f78a Make stopped state a first-class thing
Bug: 27286867

WindowManager has committed to stopped state
controlling the lifecycle of the Surface, so
make that a first-class thing in HWUI as well.

This makes it more resistent to things like
a rogue updateSurface() happening while mStopped=true,
leading to bad things down the line. Instead let
the surface be changed/updated as often as desired,
and just block any attempt to draw on that surface.

Also removes some unnecessary makeCurrent()s, as
EglManager ensures that we *always* have a valid
GL context now (using a pbuffer surface if there is
no window surface set)

Change-Id: Iead78ddebc7997e8fdb0c9534836352f5e54b9bd
2016-04-07 16:02:33 -07:00
Phil Weaver
9be3c7bdc7 Eliminate side effects of a11y window title.
ag/898112 added passing the window title to accessibility. To do that,
it also updated copy of the title in WindowManager.LayoutParams. That
was a behavior change, and the change broke cts tests that enforce that
the title in LayoutParams matches its expected format.

This change restores the previous behavior and adds a separate field to
LayoutParams to old an up-to-date title to pass to accessibility.

Bug: 28002185
Change-Id: Ia5b549113600b7c4fcc80b76c3f3a944dddaf483
2016-04-07 15:15:41 -07:00
John Reck
51f2d606dc Fix some edge cases
Bug: 27709981

This desperately needs a refactor, but to keep
the current (really needed & nice) behavior of
dispatching after sync finishes would be difficult
to handle cleanly without lots of ripping so... #yolo

Change-Id: I831a06c6ae7412a062720d68ecbe3085190f0258
2016-04-07 14:10:43 -07:00
Vladislav Kaznacheev
78740add9b Merge "Rename View.DragShadowBuilder#onProvideShadowMetrics parameters" into nyc-dev 2016-04-07 20:41:54 +00:00
Andrii Kulian
48143f7ec5 Merge "Caps Lock toggle with Meta + Alt (2/2)" into nyc-dev 2016-04-07 01:43:03 +00:00
Andreas Gampe
12a722e569 Merge "Frameworks/base: Move Animation.USE_CLOSEGUARD to inner class" into nyc-dev 2016-04-06 22:45:36 +00:00
Selim Cinek
82404bc068 Merge "Deprecated the contentinfo and the number" into nyc-dev 2016-04-06 20:45:56 +00:00
Andreas Gampe
56c560a9dd Frameworks/base: Move Animation.USE_CLOSEGUARD to inner class
Move flag to inner class to isolate Animation. This allows compile-
time initialization of Animation and subclasses.

Bug: 27265238
Change-Id: I3d95ab77e87de0c033f97545609461bdc9bd5d61
2016-04-06 13:03:02 -07:00
Andrii Kulian
112d05678b Caps Lock toggle with Meta + Alt (2/2)
Caps Lock implementation in frameworks/base

Bug: 27482276
Change-Id: Ie0d8145c049197d4591e012832a710e4f751d2ac
2016-04-06 12:36:33 -07:00
Selim Cinek
0f9dd1e2f5 Deprecated the contentinfo and the number
It was mainly adding noise to the notification
rather than useful information.

Bug: 27431551
Change-Id: Ie22c9935d60eeac1cca5d9ce97239aadfac9b3cf
2016-04-06 12:18:31 -07:00
Jorim Jaggi
11c62e17af Dynamic density change handling
- In PWM, make sure to read the height values after the new
configuration has been applied.
- Reset all navigation bar button icons when density changes.
- Adjust height of notification bar.
- Reload divider height values in SysUI and WM.
- Snap divider handle to a new position after loading the
new configuration, as the snap points change.

Bug: 26844819
Bug: 27450471
Bug: 27921696
Change-Id: I9e28f0c49f6367c5fcfac010e7a6e98a42e85996
2016-04-06 19:12:24 +00:00
Svetoslav Ganov
f13f14ef30 Merge "Remove unusable a11y APIs for ClickableSpans." into nyc-dev 2016-04-06 02:05:42 +00:00
Vladislav Kaznacheev
82fdb2e9d1 Rename View.DragShadowBuilder#onProvideShadowMetrics parameters
Added 'out' prefix to the two out parameters of this method.

Bug: 27810738
Change-Id: I2825cc90c2d2a1786578be31aff250ea6673ff9f
2016-04-05 17:06:44 -07:00
Yohei Yukawa
1bc62ce846 Merge "Don't give IME focus to temporarily detached View." into nyc-dev 2016-04-05 21:21:09 +00:00
Chris Craik
cd6ea77d07 Merge "Fix software layer alpha" into nyc-dev 2016-04-05 18:50:26 +00:00
Yohei Yukawa
e470fcfeb0 Merge "Fix a remaining View leak in InputMethodManager." into nyc-dev 2016-04-05 17:22:47 +00:00
Chris Craik
cfa6dade73 Fix software layer alpha
Fixes: 27429404

Software layers must combine layerpaint alpha, if present, with view
alpha.

Change-Id: If9c7dcb53ab8754b4e123cf9cc332a566fd792c4
2016-04-05 10:15:11 -07:00
Adam Lesinski
a149c42071 Merge "Fix issue with overridden configuration in onConfigurationChanged" into nyc-dev 2016-04-05 02:22:52 +00:00
Phil Weaver
72fde85f7f Remove unusable a11y APIs for ClickableSpans.
This change essentially backs out ag/683646, which added an API to click
on ClickableSpans within a TextView. This API has the flaw, however,
that ClickableSpans are not parcelable, so they are not in general
reported to AccessibilityServices. That means that services will have no
idea what they are activating.

Since the API is not usable end-to-end, I'm backing it out before the
API is final.

Bug: 17726921
Change-Id: I541c6218f2899ff67a6b32a13fd9ae6f3b53b3c4
2016-04-04 18:37:32 -07:00
Yohei Yukawa
a4ed0cfcb6 Don't give IME focus to temporarily detached View.
The root cause of Bug 18920212 is that when AutoCompleteTextView tries
to show completion window upon text input,
InputMethodManager#focusInLocked() can be called with a View that is
temporarily detached, which should be ignored.

Bug: 18920212
Change-Id: Ia79bbd8468f768d546354382b47b39dd31ef7bb5
2016-04-05 00:05:26 +00:00
Yohei Yukawa
807c3a828b Merge "Unhide View#dispatch{Start,Finish}TemporaryDetach()" into nyc-dev 2016-04-05 00:05:09 +00:00
Adam Powell
13af9845d4 Merge "Tweaks for ScaleGestureDetector" into nyc-dev 2016-04-04 23:06:00 +00:00
Adam Lesinski
3ad1b4899f Fix issue with overridden configuration in onConfigurationChanged
When using applyOverrideConfiguration, subsequent callbacks to
onConfigurationChanged didn't take into account the locally overridden
configuration. This patches the incoming configuration to match
what is expected by the application.

Bug:27644297
Change-Id: I3a090e9862a56470d999aa0aa4d5bae29f533a11
2016-04-04 15:24:48 -07:00
Chris Craik
a7f775db93 Merge "Fix how outlines are sent to rendernode" into nyc-dev 2016-04-04 22:08:32 +00:00
Jorim Jaggi
26952d748e Do not call forceLayout if not needed
If the relevant frames for the app don't actually change, there is
no reason to call forceLayout and force a layout pass.

Bug: 27864358
Change-Id: I2add8cc5791023937afc154e6e50bbf7efb35adb
2016-04-04 21:56:48 +00:00
Adam Powell
c6df18f5fa Tweaks for ScaleGestureDetector
Remove obsolete history and size tracking from ScaleGestureDetector.

Change-Id: I20c323a8a92e467b62eb412b718c2e9e906e7800
2016-04-04 14:42:24 -07:00
Chris Craik
136d1af1cc Fix how outlines are sent to rendernode
bug:27918183

Fixes an issue where all convex outlines were pushed as empty rects to
RenderNode.

Also adds outline/reveal clip property logging, so such issues are
easier to debug in the future.

Change-Id: Ic4a996ecd09a8ef84cdf8b963bdb4853c7f6d180
2016-04-04 13:40:39 -07:00
Bo Liu
2f1eb93354 Merge "Expose setDrawGLFunctionDetachedCallback to webview" into nyc-dev 2016-04-04 20:20:10 +00:00
Phil Weaver
7eb716c0f4 Merge "Make a11y text navigation by page symmetric." into nyc-dev 2016-04-04 16:37:05 +00:00
Phil Weaver
d4a1932608 Merge "Add accessibility window title and anchor." into nyc-dev 2016-04-04 16:36:01 +00:00
Chong Zhang
fbe10f175f Merge "Avoid extra relaunch when rotating side-by-side apps" into nyc-dev 2016-04-01 21:56:45 +00:00
Chong Zhang
167bbfac24 Avoid extra relaunch when rotating side-by-side apps
Update configuration with WM first and check if the stacks need to be
resized due to the update. If so, let activity manager resize the stacks
inline, instead of letting WM schedule another pass of resizeStack. This
way the configuration will be updated to the latest before ensureActivity-
ConfigurationLocked, and we don't need another relaunch there.

bug: 27834014

Change-Id: Ib761a96cada0c3247b0480f18370670c593159da
2016-04-01 13:58:41 -07:00
Bo Liu
ee34ef1633 Expose setDrawGLFunctionDetachedCallback to webview
Add WebViewDelegate.setDrawGLFunctionDetachedCallback system API that's
used for webview to receive the functor detach callback.

BUG: 27709981
Change-Id: Ie6b5e445c0090a181f94fcd2ec1ea77095c9cb03
2016-04-01 11:10:00 -07:00
Adam Powell
991989f318 Merge "Revert "Only call Drawable.setVisible(false) for visible outgoing drawables"" into nyc-dev 2016-04-01 15:41:04 +00:00
Clara Bayarri
3916bb045c Merge "Keyboard Shortcuts Helper: Include all System shortcuts" into nyc-dev 2016-04-01 11:17:26 +00:00
Yohei Yukawa
24df931e9e Unhide View#dispatch{Start,Finish}TemporaryDetach()
In order to fix Bug 18920212, we have to track when a View enters
temporarily detached state and when it exits from that state. To do
that, ListView needs to use View#dispatchStartTemporaryDetach() instead
of directly calling View#onStartTemporaryDetach() because there is no
guarantee that existing applications have internally followed Call-Super
pattern.

With this CL, we are going to expose temporary detach state and its
dispatching methods as public APIs.  Major changes are:
  1. ListView's indirect children will start receiving temporary
     dispatch callbacks. Previously only direct children have received
     View#on{Start, Finish}TemporaryDetach() callbacks.
  2. TextView can no longer assume that ListView never calls
     View#View#dispatchStartTemporaryDetach() but directly call
     View#onStartTemporaryDetach() instead. See the commit message
     of [1] for details.

This also enables us to do the following fixes, which will be handled in
subsequent CLs.
  A. ViewCompat support lib is finally able to rely on temporary
     dispatch mechanism without reflection.
  B. InputMethodManager is now able to ignore focus-in events from
     temporarily detached Views. This will be done in the next CL [2].

  [1]: a440b002aa
  [2]: Ia79bbd8468f768d546354382b47b39dd31ef7bb5

Bug: 18920212
Bug: 27905921
Change-Id: If8f780f8b71754f7533a65097304113ae1f5cf12
2016-03-31 17:15:23 -07:00
Adam Powell
4b2e12cc9e Revert "Only call Drawable.setVisible(false) for visible outgoing drawables"
This reverts commit 35e2ea0203.

This patch was based on two different wrong assumptions.

Bug 27822069

Change-Id: I20b1017f91f3fce3c23dd8446459d6f3e3150a48
2016-03-31 15:36:18 -07:00
George Mount
98aa25c2d9 Merge "Revert "Revert "Run cleanup before end actions of ViewPropertyAnimator.""" into nyc-dev 2016-03-31 20:14:04 +00:00
Vladislav Kaznacheev
b7d08c3f3c Merge "Add wallpaper input consumer to WindowManagerService" into nyc-dev 2016-03-31 18:43:16 +00:00
Vladislav Kaznacheev
0d50d8660d Add wallpaper input consumer to WindowManagerService
This is an input consumer similar to the one used when hiding the navbar,
but placed above wallpapers. It might be useful for processing touch
events over "desktop" in freeform MW mode.

Re-landing I9d6d28a624f750ad48fc39f9b149dd1f989cceba after fixing build.

Bug:26688904
Change-Id: I89fdabd9c72cdd4a1d7ca626c33ddc99ddea97f9
2016-03-31 18:42:22 +00:00
George Mount
f643fb0250 Revert "Revert "Run cleanup before end actions of ViewPropertyAnimator.""
This reverts commit 879a626f18.

Change-Id: I6fd011fb86a2aa0e30ba41fdefa3e29c7771e647
2016-03-31 11:15:27 -07:00