Fix NullException in QwertyKeyListener.KeyDown

Extending null protection for view to "c == i" case in addition to
"c == Character.toUpperCase(i)" case that helped to fix some force closures.
Seems as typo in original implementation.

Change-Id: Ibaa5aea95c5c8cdc8ac981fe0d1dad313e3e692f
Signed-off-by: Dmitry Tsyganyuk <fdt017@motorola.com>
Improve ABI handling for shared user ids.

The key improvement is that we need to keep track of
the package that's currently being scanned (this includes
new installs and upgrades of existing packages) and treat
it specially. If we didn't do that, In the case of upgrades
we would perform the shared UID calculation based on the ABI
of the old package, and not the current package.

This change also allows us to perform the CPU ABI calculation
before dexopt, which saves us from having to do it twice and
fixes a bug where we were using the wrong package path to
dexopt a package.

This also has the side effect of fixing 15081286.

bug: 15081286

Change-Id: I20f8ad36941fc3df29007f0e83ce82f38f3585c8
Merge "Fix NullException in QwertyKeyListener.KeyDown"
Merge "Improve ABI handling for shared user ids."
auto-merger: merge in from aosp/master