We provide a preferred constructor for the user which will
always generate a serializable NanoApp object. While we
still support the other path, we throw a specific exception
when trying to serialize a bad NanoApp object to ease
debugging.
Change-Id: I7ee610f0fce2f0dd489526e4819f66035281024b
we're now using hub_app_name_t as unique nanoapp ID throughout
all layers
Bug: 28086503
Change-Id: Ie8113de1b2bafd441d79e45137f44d74970fcd01
Signed-off-by: Alexey Polyudov <apolyudov@google.com>
BackgroundDexOptimizer (BDOS) keeps a list of packages it attempted
to compile but dexopt failed. Once such a package is put on the list,
it is never removed from it until reboot.
This CL modifies BDOS to accept notificiations from
PackageManagerService on recently installed packages and removes
their names from the list.
Bug: 28082762
Change-Id: I0c3d3f657bd3ff5f0a61dfeef1d8174ed7be0b74
* title color for system groups is now: "material_deep_teal_500"
* background behind shortcut keys:
** Now has 2dp rounded corners
** changed color from "material_grey_200" to "material_grey_100"
* the text items now have a minimum width equal to their height.
This means that now the text items with one character are always
the same (square) size as the icon items. Makes the UI look much
cleaner thus easier to read
* the line item now has a minimum height of 48dp and the content
is vertically centered
* minor variable renaming for increased readability
Bug: 28075364
Change-Id: Id7090b607b9c604c55513e7c393ed1084a1c8df0
BackgroundDexOptService keeps a list of packages which failed to
compile so that they are not revisited. If compilation takes so long
that the background job is killed, the offending package is not
recorded.
This patch records the package before dexopt is called and removes it
from the list if dexopt succeeds.
Bug: 28082762
Change-Id: If7388e159b999287b60f19dc99cf4dde61ec64c8
PackageDexOptimizer.performDexOpt would return DEX_OPT_PERFORMED if
dexopt succeeded on the package and DEX_OPT_SKIPPED otherwise, even
if dexopt failed. This patch fixes that and cleans up the code.
PackageManagerService.performDexOpt* would return true only if
PackageDexOptimizer.performDexOpt returned DEX_OPT_PERFORMED.
Consequently, it would return false when dexopt was not needed. This
patch refactors the code to return true unless PackageDexOptimizer
returns DEX_OPT_FAILED and documents the behaviour.
Bug: 28082762
Change-Id: Ica73e67ab02025ef5619746bb8c465c96b72846b
Adds a post-boot job which scans all optimizable packages and updates
those whose OAT files are out of date. This is meant to offset the
fact that on OTA we only update the most used packages.
Bug: 27901338
Change-Id: Ia4d4362ecead1ca63d08d62c6814dad4b810f7cc
It turns out that IME subtypes specified to
InputMethodManager#setAdditionalInputMethodSubtypes() are stored in the
presistent storate without subtype IDs. As a result, when the system is
rebooted, the system would no longer consider those additional subtypes
as enabled due to subtype ID mismatch, until the IME re-adds those
additional subtypes again with the original subtype IDs.
Bug: 28104337
Change-Id: I1445213e0b83d76631a839b974ec1ab9b28ad7d2
1. Deduplicate the Tethering message numbers, and use MessageUtils
to convert them to strings.
2. Add a warning to NativeDaemonConnector when an unsolicited
event is more than 500ms late or takes more than 500ms to
process.
Bug: 27857665
Change-Id: I379aef9257027d1ccf30906e79c6389ef1f95420
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