Commit Graph

2467 Commits

Author SHA1 Message Date
Diego Perez
289f090abe Adding missing SurfaceView methods
Some methods were not implemented in the mock SurfaceView and they were
causing some custom components to fail on the preview.

Bug: http://b.android.com/158592
Test: This is a mock class, not tested.
Change-Id: Id8faa7e6b5edf1238b02ae07f3dd59dc6539cb62
2016-12-07 12:28:14 +00:00
John Reck
f32adf4475 Clean up ApplyStyle JNI
Bug: 32573798

Mark input uint32_t[] as const. Use Read-only JNI
array access for input as it's faster than critical access.

Use non-movable arrays for TypedArray so that the address can
be resolved and stored, avoiding the need to do JNI array
access for the output.

Indicies is always non-null, so remove the optional checks.

Eliminate unused return value.

Benchmark results:
twelveKeyInflate 4963us -> 4713us
simpleViewInflate 73us -> 60us

Test: Device boots, benchmarks show faster

Change-Id: Ic3bde5aee31407d8903913f97f2218daf074499a
2016-12-02 12:49:20 -08:00
Doris Liu
8a5a950ac0 Fix LUTInterpolator lookup table position calc am: 0940834c8c
am: 00d348ec26

Change-Id: I563b65b61d3bac80ea81521478e295963508890c
2016-12-01 01:39:23 +00:00
Doris Liu
00d348ec26 Fix LUTInterpolator lookup table position calc
am: 0940834c8c

Change-Id: Ib80c00801473d7e60bae87b3b34a381c7f8e7e68
2016-12-01 01:33:52 +00:00
Doris Liu
0940834c8c Fix LUTInterpolator lookup table position calc
BUG: 32830741
Test: running progress bar at 5x duration scale, no flickering
Change-Id: Ie484bdbfdf18bacc4586e36c5142e4523d08bdaa
2016-11-30 23:20:19 +00:00
Kenny Guy
58feeac96b Merge "Allow overriding max profile in debugable builds." 2016-11-29 20:12:17 +00:00
Paul Duffin
10a9bd905c Merge "Use junit-host instead of junit" am: 6063357ae6 am: 6fc0c5ceca am: 32317b3c8d
am: 29bf88aca9

Change-Id: I2f75d5e80d9baa411e7816958d4a6d6d220d0ba9
2016-11-29 15:31:57 +00:00
Paul Duffin
6fc0c5ceca Merge "Use junit-host instead of junit"
am: 6063357ae6

Change-Id: I6522cedeb522fa01530d4f31b6505b4d4c265312
2016-11-29 15:12:46 +00:00
Paul Duffin
4a064d2010 Use junit-host instead of junit
Bug: 30188076
Test: make checkbuild
Change-Id: I3496b9d7e40abf7712a56ba633a2becd0aa17c06
2016-11-29 14:52:42 +00:00
TreeHugger Robot
d25cf04e98 Merge "Add explicit method to dismiss Keyguard" 2016-11-29 14:30:46 +00:00
Kenny Guy
02c8990bd6 Allow overriding max profile in debugable builds.
Support a system property on debugable builds to
override the max number of managed profiles to
allow easier dogfooding of multiple profiles.
Support 3 different badge colours for managed profiles.

Bug: 30473760
Test: runtest -c com.android.server.pm.UserManagerServiceCreateProfileTest frameworks-services
Test: runtest -c com.android.server.pm.UserManagerServiceUserInfoTest frameworks-services
Test: manual - attempting to create 2 profiles with adb fails, passes once I set the property.
Change-Id: Ie7fb19048a04a01572666f229283152254d0ffc3
2016-11-29 14:09:37 +00:00
Paul Duffin
4aab571757 Merge "Use junit-host instead of junit" am: 7dda7e1e81 am: bbb501281e am: 52277efa6c
am: 2d4183ffa5

Change-Id: I1cc3bc8b73d7756c850a1573ca5ff9090e64c184
2016-11-29 10:39:06 +00:00
Paul Duffin
bbb501281e Merge "Use junit-host instead of junit"
am: 7dda7e1e81

Change-Id: Ie070bf5329899f21e3fb65dae6db5fdd50e74ba9
2016-11-29 10:22:34 +00:00
Paul Duffin
21cf84f8b3 Use junit-host instead of junit
Bug: 30188076
Test: make checkbuild
Change-Id: I5d3efbfbe3245a631113674bff1b0aabdc9fe8be
2016-11-28 16:44:44 +00:00
Jerome Gaillard
f149ca784d Override TextServicesManager in layoutlib
When a TextServicesManger is required in layoutlib, provide a fake
one.

Test: Run layoutlib tests
Change-Id: I8c25f4919a2e97b56f705b59747e81cb6f45b07b
2016-11-28 15:54:55 +00:00
Jerome Gaillard
f666c0e2ea Fix layoutlib to reflect recent changes in platform code
Test: Layoutlib tests
Change-Id: I81964233a9e580ccee9c9e9b0cf3525babf30bd4
2016-11-28 10:40:33 +00:00
Diego Perez
5017ece983 Update allwidgets golden image
Test: Updating existing test
Change-Id: Ie66abc77ec6013a8094d6b8be2666b69c973a295
(cherry picked from commit 48d6ec53f9c75571217880ef77902f582723418b)
2016-11-25 12:36:12 +00:00
Jerome Gaillard
8deff10ff9 Merge "Fix shadow painting in layoutlib" 2016-11-25 12:04:03 +00:00
Jerome Gaillard
2dd5018a0f Merge "Add missing ServiceNotFoundException class" 2016-11-24 21:49:48 +00:00
Jerome Gaillard
d38fffd38d Store failure thumbnails in CWD/out/failures
When a test fails in layoutlib, store the resulting png files in
out/failures subdirectory of the current working directory.
That avoids the risk of collisions if tests for several branches
of layoutlib are run at the same time.

Test: Run tests in layoutlib with at least one failing test
Change-Id: I31594a871e481e6aa410a165926ce544dc7ddcf2
(cherry picked from commit 82ebb9058479de56860f348ab969160e0d8294b6)
2016-11-24 16:43:30 +00:00
Jerome Gaillard
555fcd5579 Fix shadow painting in layoutlib
Shadows could be painted outside of the allowed drawing region
for the components for which they are the shadow.

Bug: http://b.android.com/215402
Change-Id: I2d2821b745147f3723e8f11d648094fcd684fe51
(cherry picked from commit 9702fffc768db43d0aba4fb1bea54af50af11361)
2016-11-24 16:42:12 +00:00
Jerome Gaillard
e3607d2cc7 Add missing ServiceNotFoundException class
This class was added in ServiceManager.java in commit 49ca529a85.
Layoutlib rewrites the entire ServiceManager class, so it also
needs to define ServiceNotFoundException.

Test: TestDelegates.testMethodDelegates
Change-Id: Ia68399e8baa973ae961eabe929ca3d1019f20ba7
2016-11-24 16:24:28 +00:00
Jorim Jaggi
241ae10b21 Add explicit method to dismiss Keyguard
The flag is a bit clunky for most cases, and a method is more
clear.

Test: cts/hostsidetests/services/activityandwindowmanager/util/run-test
android.server.cts.KeyguardTests

Test: cts/hostsidetests/services/activityandwindowmanager/util/run-test
android.server.cts.KeyguardLockedTests

Test: runtest systemui -c
com.android.systemui.keyguard.DismissCallbackRegistryTest

Bug: 30961403
Bug: 27422134
Change-Id: I39de90c7cfecd99350a74f72cd76418e337f2b79
2016-11-23 16:27:35 +01:00
Diego Perez
dc3bb324ce Fix tests when running from the command line
When loading classes from the jar file, we can't just use the
URLClassLoader since it can not enumerate files in a jar directory.
Restoring the ModuleClassLoader and making all paths relative to the
system class loader (as opposed to relative to the class location).

Change-Id: Ib3f5d12dd5c964d0ba9cc6c5ec9cb556c989e653
(cherry picked from commit 2a4a6c81f8a103be5c48d8a0605a3e4416e8f7f1)
2016-11-23 11:01:44 +00:00
Bartosz Fabianowski
1133424c2b Wire up PM.getInstalledApplicationsAsUser(flags, userId) as hidden API
Settings needs to access a variant of getInstalledApplications() which
takes a |userId| argument. Since this is not currently exposed by
PackageManager, Settings calls into PackageManagerService directly. This
is ugly and breaks the regular abstraction layer hierarchy.

The CL fixes the problem by exposing the required variant of
getInstalledApplications() as a hidden API, analogously to what was done
before with getInstalledPackages().

Bug: 32692748
Test: Will be CTS-verifier-tested together with Settings
Change-Id: Id9c4e8e18524d312159821f1a4d5527263c7e950
2016-11-17 20:49:16 +01:00
Diego Perez
c318f0b408 More layoutlib testing infra fixes
- Remove ModuleClassLoader as it can be replaced with a URLClassLoader
  for now.
- Move CustomCalendar and CustomDate to a separate package that can be
  used both by the Bridge tests and the actual test app.
- Move empty.xml out of the test app so it compiles.
- Update test app to use the latest build tools and SDK (some attributes
  being used by the app weren't supported in API 21).
- Update gitignore to remove the new out directory.

Test: Update to existing tests
Change-Id: Ieb7324d5ae559f9c581771c57f2127cd83909015
2016-11-15 14:11:33 +00:00
Jerome Gaillard
e6f30eec36 Fix testActivity on buildbot
Follow-up to commit 896cc3a794, the class file also needed to be
updated. The golden file of testActivity is also updated to be
the one built with jdk1.8.0_60 which is the one running on buildbot.

Test: Run testActivity
Change-Id: I7f3cfc1123160005c3cb5fa4213db6ae3a48457d
(cherry picked from commit aab13aee9a11c340952c24f2410940df59996816)
2016-11-14 18:05:57 +00:00
Jerome Gaillard
7638c49c84 Change date on CustomCalendar
The date of the calendar is set by converting the epoch time based on
the local time zone. We choose at date at 12:00 GMT so that it will
be on the same day no matter which time zone is considered.

Test: part of testActivity
Change-Id: Ib36a5b45f69323265dd5ceaa17eeac553fc2d071
(cherry picked from commit 896cc3a794bb6e173c1e53e97f70007c3e24de38)
2016-11-14 11:01:33 +00:00
Jerome Gaillard
4570fc9f28 Merge "Rename native methods that were changed in the platform" 2016-11-14 11:00:51 +00:00
Ben Lin
bbd711c2a5 Merge "Adding ContentProvider#refresh and ContentResolver#refresh." 2016-11-11 19:13:40 +00:00
Jerome Gaillard
a10973ebd1 Rename native methods that were changed in the platform
This is following commits f22859757b, 94931bd87e, 4387190d8e
and caa08ff5e9.

Test: Run TestDelegates
Change-Id: If90028492c036fc5f69913e4dcad5a1a5fca4b55
2016-11-11 14:11:03 +00:00
Ben Lin
1cf454fcb6 Adding ContentProvider#refresh and ContentResolver#refresh.
Original CL is from ag/1568530.

Bug: 31647485
Change-Id: Ib45fc995a361b8c75cd3600f638910b18a263d51
2016-11-10 13:53:27 -08:00
Jerome Gaillard
3911cee2cf Update testActivity
Put android:animateFirstView false in the test application theme
so that the date picker view displays fully.
Update the golden image to reflect the changes.

Change-Id: If57fac5c182dd69b4b4d4fcc30d6f17a8f67ad68
(cherry picked from commit 96970138fc1c8d928a6d3ec362865e6c626f56e4)
2016-11-10 16:35:09 +00:00
Diego Perez
8f61cb3301 Merge "Fix themed attributes resolution" 2016-11-08 12:03:19 +00:00
Wale Ogunwale
ac2561e820 Make window token add/remove APIs require displayId
Window tokens can now only be on one display, so we now require clients
that want to add/remove window tokens to specify the display they would
like the token to be created on. This simplifies the token handling code
in WM and will be useful moving forward for clients that want to add
windows to external displays.

Test: Existing tests pass
Change-Id: I6b2d8d58a913b3624f1a9a7bebbb99315613f103
2016-11-02 10:28:45 -07:00
Jorim Jaggi
8d78693157 The big keyguard transition refactor (6/n)
Cleanup:
- Make sure all the state is nicely dumped.
- Remove some unused stuff.
- Fix a flicker when occluded -> unlocked

Bug: 32057734
Change-Id: Id87e26adccef740d608b325c2dc1f6db14dd4ec3
2016-11-01 15:36:40 -07:00
Diego Perez
e48170bcbb Merge "Remove refSkPixelRef" 2016-11-01 10:29:29 +00:00
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
Diego Perez
c93beed4e6 Remove refSkPixelRef
Change-Id: I4d6e7076d2b87dd208c0eba27491c13f56567420
2016-10-31 17:54:01 +00:00
Diego Perez
4bcf5e7c47 Merge "Remove use of refSkPixelRef" 2016-10-27 10:15:41 +00: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
Diego Perez
906f2ad1c8 Remove use of refSkPixelRef
Test: refactoring, existing tests pass
Change-Id: I4ea51f25b3a2e4cb6a3391d059fb1f0b74f0e90d
2016-10-26 16:08:44 +01: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
Diego Perez
46bf9f3b5c Merge "Account for horizontal offset when calculating borders" 2016-10-17 11:36:19 +00: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
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
TreeHugger Robot
7ef8dbed50 Merge "Make bitmap backed by native memory instead of java byte array Test: refactoring CL. Existing unit tests still pass. bug:27762775" 2016-09-30 20:57:40 +00:00
sergeyv
4508218850 Make bitmap backed by native memory instead of java byte array
Test: refactoring CL. Existing unit tests still pass.
bug:27762775

Change-Id: Ic4e914b3a941c3d545f8ce9e320e638973df0e91
2016-09-30 12:25:07 -07:00
Dianne Hackborn
354736e196 New infrastructure to switch remaining commands to "cmd" calls.
This introduces a new feature of the IBinder command protocol
to allow the shell command implementation to call back into
its caller to ask it to open files in the calling context.  This
is needed so that commands that have arguments specifying files
can open those files as the calling shell, not the system (or
whatever) process.

To test this all out, move the "am start" implementation over
to ActivityManagerShellCommand, in particular along with its
option to specify a file in which to write profiling data.

Test: Manual

Change-Id: I0c1e3857defefbd19a2ac29413aafbb34b1e48a3
2016-09-29 10:58:44 -07:00
Winson
329011cf40 Removing private system ui flags from status bar flags logic. am: ab216609f1 am: b7a673ed95
am: dccfd4394e

Change-Id: Ie8bbbfb5c24957f64036e8de23d6a29e6669ea18
2016-09-21 07:07:59 +00:00