This patch uses the Minikin's new doLayout API that supports context,
and has some simple refactoring (pass css as string rather than setting
on the Layout object) to use this api.
Change-Id: I899474f81d377f3106e95ee3eb8d0fcc44c23ac2
Passes textScaleX and textSkewX parameters, as well as paint flags from
the paint to Minikin, to support nontrivial scale and stretch of text.
Passing paint flags should minimize kerning artifacts arising from
mismatch of glyph rendering in layout and drawing.
Also, replaces unsafe snprintf to a fixed size buffer with a safe
version, which still avoids an allocation per layout operation.
This is part of the fix for bug 15186705 "Usability of the suggestion
strip in recent OTA's is severely reduced"
Change-Id: I79788383135836f4c21fb84405f36382627bf959
This patch sets fStyle on the TypefaceImpl based on querying the font,
which is important in the Typeface.createFromAsset path. This fixes both
the style returned from getStyle() and also selects fallback fonts to
best match the style of the main font.
Fixes bug 15429916: "Typeface.getStyle always returning 0 in some L
devices".
Change-Id: I1992ba1e65e7f488d331e175f5f12843f67c2faa
Use audio utility function instead of popcount
to get channel count from channel mask
Bug: 14815883.
Change-Id: Ia9a898c9f7f03d22caeefb418be1e33f65f7b7bb
As pointed out in a previous patch review, some native Canvas methods do not
receive a native canvas handle and instead have to use GraphicsJNI to query
the object mNativeCanvasWrapper field.
To avoid the extra JNI call, this change adds the missing Java wrapper
methods and ensures that all native calls are passed efficient native
handles.
Also, some native methods are consolidated: save, saveAll -> save,
clipRect* -> clipRect.
Change-Id: I2eae4a633f6a463d9fbae2ca632661acc8b5cfc3
This patch wires up getStringBounds to do the layout with Minikin to get
accurate bounds, and with the correct typeface. It fixes bug 15416575
"getStringBounds gives wrong result in Minikin".
Change-Id: I5c020bc372acb1d785a33c3c296239c151bd8c87
This patch improves the Minikin integration in a number of ways,
including:
Software rendering does text decorations and handles alignment
correctly. This fixes bug 15139067 "Centered text isn't working".
Paint implements getTextPath. This fixes bug 15143354 "Text rendering in
Maps Navigation wrong typeface?"
Also a bit of refactoring, since there was duplicated code for iterating
font runs that's now a static method in MinikinUtils.
Change-Id: I4cfdb2c0559982376348325a757d95235fab1768
These are discouraged anyway, due to the fact that using them may
result in decoding on the UI thread. Now that they are ignored, the
images will still be decoded; they just will never have their
memory purged, meaning there could be a RAM penalty. This is
acceptable, since apps are encouraged to instead use inBitmap to
manage bitmap memory.
This incidentally fixes BUG:15390468 by converting purgeable index8
(e.g. gif) images to non purgeable.
Change-Id: Ieaf3ab25d28d93fb94bdaea1eb3bd762f163b09a
The presence of ".bc" files in an APK implies
incompatibility with any of the 64 bit ABIs.
bug: 14900093
Change-Id: I66ca339a9a149cb3b7e7b349033d80acdeb4140a
It's possible for a TypefaceImpl to contain a null pointer, which was
causing crashes on unref. This patch just checks for NULL.
Fixes bug 15104801 "Aviate Launcher crashes on startup - Hammerhead L
AAV49B"
Change-Id: Idf9f176c54bf81ff3daacc0b33e95aa9d8bbe57f
This patch adds the fallback font list to custom typefaces created from
files and assets, as well as those created by name. This is a fix for
the deskclock half of bug 15139067 "Centered text isn't working".
Change-Id: I0cc60951953dfb73817a98ddfee5713f0387ee90
Implement audio port and audio patch
callback infrastructure for clients to receive
notifications when audio routing changes occur via the
OnAudioPortUpdateListener interface.
Bug: 14815883.
Change-Id: I32cbba64eca7369871aec235ff100de1f0c2d344