ActivityManagerService: stay away from zombie content providers

When the lowmemorykiller kills a content provider in an unfortunate
moment, an innocent client app can become attached to a zombie provider
and be unconditionally killed moments after, when the dead provider is
being removed.
Prevent this race by addition of isAlive function to Process.java that
determines whether a process is still running and is not only a zombie,
add a check of the state of the provider process to getContentProviderImpl.

Change-Id: Id753b8dab103e4b447c4138468938ca9f5cb857d
ContentProviderRecord: Remove external process reference when finalized

ContentProviderRecords is removed from provider map by activity manager service
when the process hosting the content providers terminates and this causes GC
to free the content provider records but the reference to external process
using the content provider isn't cleared. Fix is to clear the reference and
unlink for death notification.

Change-Id: I67fd10cee57b02257792d0c9b4569fe11dea7648
PackageInfo class incorrectly referenced as a struct.

Change-Id: Ie38b2b3ed82a6d5f99b6c574af53ae5bda7371d5
bootanimation: allow using RGB565 instead of ARGB8888

RGB565 uses considerably less memory, and together with texture
cache, it allows us to offer a really smooth bootanimation on
not so powerful devices.

Change-Id: I9da8fd7e6a587b5895519dd0983ec9b8f676771b
fix NAT detection in SipService

The NAT detection in SipService just checks if the client IP is a
private address. In this case keep alive is enforced. But if you
use a server which also has a private address, keep alive should not
be enabled to save battery.
This patch modifies the NAT detection to also check the server IP.
If both are private, NAT is not detected.

Change-Id: If4baaf1866253ca6c432e5cc4b07e3ebd9de6ba1
frameworks/base: Handle Out of Memory Exception when creating video thumbnails.

Adds code to handle an out of memory exception when generating the thumbnail
from a recently recorded video clip.

Change-Id: Ifcbe007272ffef85744fca1414ea5eacccd0154c
CRs-Fixed: 277571
Signed-off-by: Shalaj Jain <shalajj@codeaurora.org>
ProcessStats: Fix another crasher

Prevent occurences of:

java.util.NoSuchElementException
	at java.util.StringTokenizer.nextToken(StringTokenizer.java:208)
	at com.android.internal.os.ProcessStats.getCpuSpeedTimes(ProcessStats.java:574)
	at com.android.internal.os.ProcessStats.getLastCpuSpeedTimes(ProcessStats.java:546)
	at com.android.server.am.ActivityManagerService.updateCpuStatsNow(ActivityManagerService.java:1676)
	at com.android.server.am.ActivityManagerService.batteryNeedsCpuUpdate(ActivityManagerService.java:1728)
	at com.android.internal.os.BatteryStatsImpl$MyHandler.handleMessage(BatteryStatsImpl.java:129)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loop(Looper.java:137)
	at com.android.server.am.ActivityManagerService$AThread.run(ActivityManagerService.java:1431)

Change-Id: I66f30739455dd726b708467f814f53c445f327b2
fix NoSuchElementException error with CPU ProcessStats

Credit to Eugene373

p2: update commit message
p3: cleaned up tabs
p4: also added aosp changes from this commit - https://github.com/android/platform_frameworks_base/commit/ca894b396b93344ac255746e12730cb269d4d856

Signed-off-by: Jonathan Steadman <xxwhitehawk@gmail.com>
Change-Id: I3c71dbd5fb8e42811c47d6431003101943cb388a
Add boot animation preview (1/2)

This change is needed to get notified once the animation is finished.
The usecase would be multipart animations where the first part is shown
once and the second is shown in a loop.

Change-Id: Ibd9c83a4662bef2a866c5bb076d94f49e714dd63
Signed-off-by: Dirk Rettschlag <dirk.rettschlag@gmail.com>
onSavePassword dialog can leak when WebViewClassic is destroyed.

The AlertDialog creates in onSavePassword method leaks if
WebViewClassic is destroyed when the dialog is shown.

Change-Id: I81f20e1dd138467a6413766c0a081b389b334ae0
[webkit] Runtime enablement of WebGL

Hook up debug setting to enable/disable WebGL.

Change-Id: I46790e61471a76eb5a8d8ff552022e12c3782204
net: customize memory cache size

Change-Id: I2b7cc83707a567676550be2639095c5bb28dc6dc
Add simple caching to XML compilation

XML compilation stage will perform many (expensive) resource ID
lookups - for the same entries. Adding this simple cache can
dramatically improve performance of this stage (often a bottleneck)

Change-Id: Ib1ab82ba9bf901bc2a3f9027b47d680861d6c315
Signed-off-by: Jorrit Jongma <jorrit@jongma.org>
Add simple caching to XML compilation

XML compilation stage will perform many (expensive) resource ID
lookups - for the same entries. Adding this simple cache can
dramatically improve performance of this stage (often a bottleneck)

Change-Id: I61356b6b3f0d90b7ac549b781e3ac8dd02282559
Updated: fixed for Mac OS X (also tested on Windows, Linux)
VPN Traffic Amount in Human Readable Format

Normally, VPN traffic amounts are registered in the amount of
bytes that have been transferred over the VPN link.  But that's
ugly, ugly for humans that is.  Most of the time people like
Kilobytes, Megabytes, and Gigabytes; not ugly Bytes.  This
modification changes that so that you get a nice way of
describing the amount of data that has been transferred over
that VPN link.

Signed-off-by: Tom Parkison <thomas.parkison@gmail.com>
Change-Id: I3cef28d63cd98aad833a9d1c9262b162e78a11ab