Commit Graph

9004 Commits

Author SHA1 Message Date
Winson Chung
655332c641 Creating PinnedStackController.
- Creating a PinnedStackController to keep track of the state of the PIP
  to prevent changes in the system (ie. IME showing) and user interaction
  from clobbering each other.
- Refactoring calls in AM into WM/controller

Test: android.server.cts.ActivityManagerPinnedStackTests

Change-Id: Ie59dfd45d5c54764ba69a589b3b8148845e92cc3
Signed-off-by: Winson Chung <winsonc@google.com>
2016-10-31 13:21:55 -07:00
Chet Haase
281c3a28be Merge "Clean up InputConnection.commitContent() javadocs" 2016-10-31 19:34:51 +00:00
Chet Haase
2a16fc53e2 Clean up InputConnection.commitContent() javadocs
Test: docs only, no test apart from verifying that it builds
Bug: #32158219 clean up InputConnection.commitContent() javadocs
Change-Id: I94ca33a34dfaece8db912367d2290db67a4a038a
2016-10-31 09:00:20 -07:00
Aga Madurska
99449eea6c Update colors for the round scroll bar. am: 5177264735 am: c78b695126
am: 5a5187edcd

Change-Id: I08861d4c80ba2d682ed009c82bec1933d8f78c09
2016-10-31 12:05:28 +00:00
Aga Madurska
5a5187edcd Update colors for the round scroll bar. am: 5177264735
am: c78b695126

Change-Id: Iffaab844f7c0fab11cc429f06b450eb190737bc5
2016-10-31 11:59:29 +00:00
Aga Madurska
5177264735 Update colors for the round scroll bar.
Bug:32536003

Change-Id: I35503c089bc918493aab3288580f81d7b780d671
2016-10-31 10:55:07 +00:00
John Reck
1952e2dc9b Merge "Add SurfaceHolder#lockHardwareCanvas()" 2016-10-28 19:38:45 +00:00
John Reck
6bc7014210 Add SurfaceHolder#lockHardwareCanvas()
Bug: 26988043
Test: SurfaceViewTests#testSurfaceHolderHardwareCanvas CTS test
Change-Id: I3e5352d498dbe2fc56a18ca27360d129a14c7784
2016-10-27 14:13:44 -07:00
Winson Chung
303c6b78b6 Fix wrong bounds being used in landscape.
- Ensure we use the right display size when calculating PIP bounds.
- Also update interface to take the display id.

Test: android.server.cts.ActivityManagerPinnedStackTests
Test: #testPinnedStackDefaultBounds
Test: #testPinnedStackMovementBounds

Change-Id: I01fd8ba6dee212c29a9a092673ee8f7843e41af6
2016-10-26 12:49:40 -07:00
Andrii Kulian
5406e7ade8 Apply display override config for secondary displays
Now display-specific settings, such as dimensions and orientation,
are stored in display override config. For default display it is
mirroring the global config. Each time when global config is updated,
override of the default display should be updated too and vice versa.

Test: Existing and manual tests still pass.
Change-Id: Ic6c2190092d328820f314a05bed43c875db18170
2016-10-25 13:22:10 -07:00
TreeHugger Robot
0154feef22 Merge "Initial refactoring to enable reuse of SkiaDisplayList on a per RenderNode basis. With Skia renderer we see 30% speed improvement in Invalidate Tree UI Jank test, when SkiaDisplayList objects are reused." 2016-10-19 20:36:00 +00:00
Robert Carr
652aae43e6 Un-hide ROTATION_ANIMATION_SEAMLESS.
For N the Camera used ROTATION_ANIMATION_JUMPCUT
which was reinterpreted as seamless rotation if possible.
However this ended up being non ideal in app transition
scenarios where the rotation animation replaces the app
transition. Here we also can't seamlessly rotate, so the
window just suddenly appears with jumpcut. In fact we want
crossfade as a fallback animation and this is what distinguishes
ROTATION_ANIMATION_JUMPCUT and SEAMLESS. The problem was patched
over in N by having double-tap gestures fire camera intents
with a SEAMLESS ActivityOptions.rotationAnimationHint,
but it was too late to un-hide for consumption by apps. While here,
clean up some documentation that doesn't really parse.

Test: Manual, try the RotationAnimation activity in ApiDemos sample.
Bug: 28838855
Bug: 28823590
Change-Id: I17b5e9fa967df8ade0943337cd7b6c3956d3a499
2016-10-17 17:23:09 -07:00
Stan Iliev
c0e7a90f1f Initial refactoring to enable reuse of SkiaDisplayList
on a per RenderNode basis. With Skia renderer we
see 30% speed improvement in Invalidate Tree UI Jank test,
when SkiaDisplayList objects are reused.

Test: manually built and run on angler-eng.
Change-Id: Ie4ec50ddb2015150e3ec678dde7ebed0c8d90067
2016-10-17 16:30:28 -04:00
John Reck
caa08ff5e9 The bigger update to Canvas
All draw* calls in Canvas are regular JNI
All draw* calls in DisplayListCanvas are FastNative
Unifies Canvas JNI on nMethodName naming

CanvasPerf results before:
INSTRUMENTATION_STATUS: basicViewGroupDraw_min=12492
INSTRUMENTATION_STATUS: recordSimpleBitmapView_min=13912

and after:
INSTRUMENTATION_STATUS: basicViewGroupDraw_min=11945
INSTRUMENTATION_STATUS: recordSimpleBitmapView_min=13318

Test: refactor, makes & boots
Change-Id: I06000df1d125e17d60c6498865be7a7638a4a13e
2016-10-17 11:33:28 -07:00
TreeHugger Robot
c2e3594b7f Merge "Drawing debug focus on Books/Recommended for you/MORE button" 2016-10-14 23:33:55 +00:00
Andrii Kulian
b97963475a Merge "Make usage of Configuration.EMPTY safe" 2016-10-14 23:27:06 +00:00
Winson Chung
011c85729a Merge "Adding PIP input consumer." 2016-10-14 22:34:03 +00:00
Vadim Tryshev
5e16f77865 Drawing debug focus on Books/Recommended for you/MORE button
1. Taking into account scroll state
2. Drawing focus also for views with edges.

Bug: 32099818
Test: Manually ensure that that button draws focus
Change-Id: I085db4deb1561d8b480e4012018d48bc83a7f81f
2016-10-14 14:36:01 -07:00
Winson
412754816d Adding PIP input consumer.
- This CL provides the framework for manipulating the pinned stack using
  an input policy (to be determined later) provided by the SystemUI.

Test: android.server.cts.ActivityManagerPinnedStackTests
Test: #testNonTappablePipActivity

Change-Id: I025c41fff26ed05a35d68e59f10330680ed11ea8
2016-10-14 11:21:48 -07:00
Andrii Kulian
a8a9bc5860 Make usage of Configuration.EMPTY safe
With current approach there is a high chance of making a programming
error and altering the state of singleton Configuration.EMPTY object,
because previously configuration was usually set by link to it.

This CL changes the behavior to create Configuration member objects
only once and alter their state afterwards.

Test: Manual and existing tests still pass.
Change-Id: Ie267c2fbf555f137670b7bd2cd251b817c69bc8e
2016-10-14 11:00:13 -07:00
TreeHugger Robot
16c9e8bac7 Merge "Visualize view focus in debug mode." 2016-10-13 20:28:57 +00:00
Vladislav Kaznacheev
1ed3c63bb8 Merge "Avoid sending incorrect or redundant hover events." 2016-10-13 18:29:20 +00:00
TreeHugger Robot
3bc72e5549 Merge "Fix import statement in view|transition|animation packages." 2016-10-12 21:31:56 +00:00
Aurimas Liutikas
67e2ae8639 Fix import statement in view|transition|animation packages.
This change also remove trailing whitespace.

Test: code still compiles
Change-Id: I7eff4546320d67d2bae58d31bad0625ea0791b8f
2016-10-12 09:09:52 -07:00
Vadim Tryshev
cdf38ba2c8 Visualize view focus in debug mode.
See the bug for motivation.

Bug: 32099818
Test: Manual check with enabling the dev setting.
Change-Id: I77262f77ac709639e5b1314a0be45612bde70ad6
2016-10-11 18:36:49 -07:00
Romain Guy
253f2c213f Linear blending, step 1
NOTE: Linear blending is currently disabled in this CL as the
      feature is still a work in progress

Android currently performs all blending (any kind of linear math
on colors really) on gamma-encoded colors. Since Android assumes
that the default color space is sRGB, all bitmaps and colors
are encoded with the sRGB Opto-Electronic Conversion Function
(OECF, which can be approximated with a power function). Since
the power curve is not linear, our linear math is incorrect.
The result is that we generate colors that tend to be too dark;
this affects blending but also anti-aliasing, gradients, blurs,
etc.

The solution is to convert gamma-encoded colors back to linear
space before doing any math on them, using the sRGB Electo-Optical
Conversion Function (EOCF). This is achieved in different
ways in different parts of the pipeline:

- Using hardware conversions when sampling from OpenGL textures
  or writing into OpenGL frame buffers
- Using software conversion functions, to translate app-supplied
  colors to and from sRGB
- Using Skia's color spaces

Any type of processing on colors must roughly ollow these steps:

[sRGB input]->EOCF->[linear data]->[processing]->OECF->[sRGB output]

For the sRGB color space, the conversion functions are defined as
follows:

OECF(linear) :=
linear <= 0.0031308 ? linear * 12.92 : (pow(linear, 1/2.4) * 1.055) - 0.055

EOCF(srgb) :=
srgb <= 0.04045 ? srgb / 12.92 : pow((srgb + 0.055) / 1.055, 2.4)

The EOCF is simply the reciprocal of the OECF.
While it is highly recommended to use the exact sRGB conversion
functions everywhere possible, it is sometimes useful or beneficial
to rely on approximations:

- pow(x,2.2) and pow(x,1/2.2)
- x^2 and sqrt(x)

The latter is particularly useful in fragment shaders (for instance
to apply dithering in sRGB space), especially if the sqrt() can be
replaced with an inversesqrt().

Here is a fairly exhaustive list of modifications implemented
in this CL:

- Set TARGET_ENABLE_LINEAR_BLENDING := false in BoardConfig.mk
  to disable linear blending. This is only for GLES 2.0 GPUs
  with no hardware sRGB support. This flag is currently assumed
  to be false (see note above)
- sRGB writes are disabled when entering a functor (WebView).
  This will need to be fixed at some point
- Skia bitmaps are created with the sRGB color space
- Bitmaps using a 565 config are expanded to 888
- Linear blending is disabled when entering a functor
- External textures are not properly sampled (see below)
- Gradients are interpolated in linear space
- Texture-based dithering was replaced with analytical dithering
- Dithering is done in the quantization color space, which is
  why we must do EOCF(OECF(color)+dither)
- Text is now gamma corrected differently depending on the luminance
  of the source pixel. The asumption is that a bright pixel will be
  blended on a dark background and the other way around. The source
  alpha is gamma corrected to thicken dark on bright and thin
  bright on dark to match the intended design of fonts. This also
  matches the behavior of popular design/drawing applications
- Removed the asset atlas. It did not contain anything useful and
  could not be sampled in sRGB without a yet-to-be-defined GL
  extension
- The last column of color matrices is converted to linear space
  because its value are added to linear colors

Missing features:
- Resource qualifier?
- Regeneration of goldeng images for automated tests
- Handle alpha8/grey8 properly
- Disable sRGB write for layers with external textures

Test: Manual testing while work in progress
Bug: 29940137

Change-Id: I6a07b15ab49b554377cd33a36b6d9971a15e9a0b
2016-10-11 17:47:58 -07:00
Vladislav Kaznacheev
5a77c37488 Avoid sending incorrect or redundant hover events.
Make sure ACTION_HOVER_EXIT is never sent to a
ViewGroup more than once.

While processing ACTION_HOVER_MOVE during exiting
a hover target never send it a ACTION_HOVER_ENTER.

Test: android.view.cts.HoverTest
Bug: 32071138
Bug: 32071098
Change-Id: Ibc1809137907176437a3a5a4ea14b00f1c629b58
2016-10-10 16:11:15 -07:00
John Reck
5cb74bca88 Canvas fastjni -> @FastNative
Just the basic cleanup first, will follow-up with a more
comprehensive update later
Test: builds & boots, refactor no behavior change

Change-Id: Ie3a7144b5fefdfda085e2ab50da8b0e627a1ecb8
2016-10-10 08:19:15 -07:00
Phil Weaver
6e91196404 Merge "Move a11y event dispatch back to ui thread." 2016-10-05 21:13:48 +00:00
TreeHugger Robot
838277059f Merge "More fixes in drag/drop docs." 2016-10-05 20:11:11 +00:00
Phil Weaver
65097bf83f Move a11y event dispatch back to ui thread.
Test: Ran CTS

Bug: 31753900
Change-Id: I0ba096cb99dd8347a7e9d6c41ff0aa8293dc5d15
2016-10-05 11:08:20 -07:00
John Reck
f6f26015f2 Merge "DisplayEventReceiver -> @FastNative" 2016-10-04 15:57:42 +00:00
John Reck
e46af37e3e DisplayEventReceiver -> @FastNative
Test: make && boot
Change-Id: Id75648a2398a13c5af24eabc217bdef778618872
2016-10-03 16:21:30 -07:00
John Reck
0970997326 Update MotionEvent JNI
Switch to @CriticalNative & @FastNative
Test: make & boot

Change-Id: I8962663348b354d30995b397619ee101e405e57c
2016-10-03 15:47:18 -07:00
TreeHugger Robot
c097209f91 Merge "Making old apps passing null ClipData to startDrag work again." 2016-10-03 17:51:58 +00:00
TreeHugger Robot
d67b4f53d5 Merge "Some fixes in ClipData and ClipDescription delivery." 2016-10-01 00:32:20 +00:00
Vadim Tryshev
697331784b Making old apps passing null ClipData to startDrag work again.
This is for compatibility; see the bug.

Bug: 31865195
Test: manually rant an old app
Change-Id: If2f55ffd424b31f18610b96dd30bca87408e3df0
2016-09-30 17:25:30 -07:00
John Reck
15473e00ae SurfaceView only call forceDisconnect if isValid am: 6ba466ff3e am: 5a0da698a7
am: 88123c4ef4

Change-Id: I612a1aafbb9deace211845d93c20f8edaf0746e4
2016-10-01 00:23:16 +00:00
Vadim Tryshev
ad57431f49 More fixes in drag/drop docs.
Bug: 31702571
Test: Built docs, inspected in Chrome.
Change-Id: Ib7c421a6eacac5e352bbba64eedb9f8b689cbe60
2016-09-30 16:47:07 -07:00
John Reck
88123c4ef4 SurfaceView only call forceDisconnect if isValid am: 6ba466ff3e
am: 5a0da698a7

Change-Id: I356848f7edb11304d9ab4584dab8e5895ff49762
2016-09-30 23:23:17 +00:00
John Reck
5a0da698a7 SurfaceView only call forceDisconnect if isValid
am: 6ba466ff3e

Change-Id: I890142436b2442cced212550ac916bedf1306bc9
2016-09-30 23:15:04 +00:00
Vadim Tryshev
a61efa4c33 Some fixes in ClipData and ClipDescription delivery.
See the bug.

Bug: 31809803
Test: Ran Drag/Drop CTS
Change-Id: Ie48a172bc465cd33e176801865e54e8aded4ce55
2016-09-30 15:36:35 -07:00
John Reck
6ba466ff3e SurfaceView only call forceDisconnect if isValid
Change-Id: I683c2f937f44d8b3d912839a3e91cbd5b5c7f437
Fixes: 31778946
Test: Manual, launch Cookie Jam then tap recents
2016-09-30 21:33:34 +00:00
Kevin Hufnagle
7f3010a6cd docs: Clarified definition of KeyEvent.Callback.onKeyMultiple() am: b248b1f689 am: f3f234ff36
am: 88af737268

Change-Id: I1e6173b6f50aa8e981c8979349e428d02c4d133a
2016-09-27 02:02:57 +00:00
Kevin Hufnagle
73bc7dbed2 docs: Clarified definition of KeyEvent.Callback.onKeyMultiple() am: b248b1f689 am: fcd4541b06
am: 8aff16acb7

Change-Id: I81108107b9d9f0cb3e1a58201ebb094552d5e2fd
2016-09-27 00:00:29 +00:00
Kevin Hufnagle
8aff16acb7 docs: Clarified definition of KeyEvent.Callback.onKeyMultiple() am: b248b1f689
am: fcd4541b06

Change-Id: If0e9042f0df23403a128e45ca61258930b7db982
2016-09-26 23:47:09 +00:00
Kevin Hufnagle
88af737268 docs: Clarified definition of KeyEvent.Callback.onKeyMultiple() am: b248b1f689
am: f3f234ff36

Change-Id: I2c86132a817e6629435baaaa5a525ea828b6848d
2016-09-26 23:45:05 +00:00
Kevin Hufnagle
fcd4541b06 docs: Clarified definition of KeyEvent.Callback.onKeyMultiple()
am: b248b1f689

Change-Id: Ie7380c80fc81b65a89337c7c126abc1dfe58a76e
2016-09-26 23:12:46 +00:00
Kevin Hufnagle
f3f234ff36 docs: Clarified definition of KeyEvent.Callback.onKeyMultiple()
am: b248b1f689

Change-Id: I9f1c7377e09fc6a7831ab3e49784c21c4a3cf873
2016-09-26 23:10:26 +00:00
TreeHugger Robot
d2ecfc8744 Merge "Remove unused private flags from View" 2016-09-26 15:41:19 +00:00