Merge commit '77c9990ae0806575ae7a2750459f3e74f0bec092'
* commit '77c9990ae0806575ae7a2750459f3e74f0bec092':
Add call to (new) Canvas.freeCaches() in response to low-memory
Merge commit '04ab1c767199bc674a7b7424fdd0d527c32252ac'
* commit '04ab1c767199bc674a7b7424fdd0d527c32252ac':
Add a grey line to the top of the search plate image so it doesn't
Merge commit '3eab744d018924189b1b8f5530accd52e91213de'
* commit '3eab744d018924189b1b8f5530accd52e91213de':
Add support for changing a threads scheduler group. Three groups are available (default, background non interactive, foreground boost). Setting a thread priority to PRIORITY_BACKGROUND will transparently change groups to background
This will ensure that we do not parse the data in chunks when passing it to the
LoadListener. Decoding in chunks can lead to incomplete sequences which will
lead to a failed decode.
Check for a cancelled LoadListener in StreamLoader and stop the load. This is
just a shortcut for downloaded or failed resources.
Cleanup some of the LoadListener code around resetting a few member variables.
Reset them in the status callback since that indicates a new response from the
server (or StreamLoader).
Previously we had converted application/xhtml+xml to text/html because of bad
server data. Now we need to treat xhtml as xhtml to get svg to be interpreted
correctly.
* changes:
Add support for changing a threads scheduler group. Three groups are available (default, background non interactive, foreground boost). Setting a thread priority to PRIORITY_BACKGROUND will transparently change groups to background
BitmapFactory::Options now let you specify if the resulting bitmap can be
"purgeable". If so, then its decoded pixels may be purged when not actively
being drawn, freeing up that RAM. When such a bitmap is drawn, it will
automatically be re-decoded on demand. This is done by having the bitmap
keep a reference/copy of the encoded data.
Where it is a reference or a copy is controlled by the "shareable" flag in
Options. If this is true, the implementation *may* just reference the encode
data (e.g. a file descriptor) rathern than making a complete copy of it.
Currently, purgeable is not supported for generic inputstreams, but is
enabled for byte-array, file-descriptor, and assets, though for impl
reasons only file-descripts are currently enabled for "shareable", but that
may change in the future.
This is just plumbing. The Java APIs existed already, but there were no C APIs to hook the Java APIs
up to. Now there are C APIs, so we can call them.
Of course, whether or not the C APIs actually work when you call them depend upon the
capabilities of the active OpenGL driver, which must be checked at run time.
Also, while we're here, make the glGetString method static. It was always supposed to be static,
but was accidentally implemented as non-static, because the code was copied from the non-static
OpenGL ES classes.
CL 147456 introduced support for HTML formatted search suggestions.
This is triggered by the value "html" in the SUGGEST_COLUMN_FORMAT
column. However, the code failed to check that the
SUGGEST_COLUMN_FORMAT column was present before trying to read it.
This resulted in an IllegalStateException being thrown when searching
with a suggestion provider that does not include the SUGGEST_COLUMN_FORMAT
column. This broke search at least in the Contacts and Music apps.
Automated import of CL 147681
- all public apis and framework changes have been reviewed by relevant folks in our branch (e.g romainguy)
- all new public apis are @hidden; they will still get reviewed by api council once we're in git
- other than that, it's mostly GlobalSearch and search dialog stuff, a new apps provider, and some tweaks
to the contacts provider that was reviewed by jham
Automated import of CL 147564
If a webpage suppresses keys from getting echoed back to the
browser app, then also disable select/copy when a key follows
a shift key press.
Also add in missing debug string to permit debug builds.
There are three major classes of changes here:
- Avoid writing lines where their values are often empty, false, or some other typical thing.
- Use partial writes to the PrintWriter to avoid creating temporary strings.
- Use StringBuilder where we need to generate real String objects (and where possible cache the result).