DO NOT MERGE - Preserve the order of InputMethodManager method calls

Cherrypick of I0f8d33b0c77129f72581bc43e7f4fdc25469b520

This CL allows the Framework class InputMethodManager to behave
in a more deterministic way, that is to say, with an I/O barrier.

InputMethodManager#setAdditionalInputMethodSubtypes is internally
implemented as a RPC to the corresponding counterpart in
InputMethodManagerService. The problem here is that this RPC is
marked as "oneway". As a consequence, this public API call
returns immediately without waiting the additional subtypes are
actually added. This behavior is also not documented so far
unfortunately.

See the following demo code:

  Final InputMethodManager imm = ...;
  imm.setAdditionalInputMethodSubtypes(id, subTypes);
  Final List<InputMethodInfo> ims = imm.getInputMethodList();

Currently, it is not guaranteed that the InputMethodInfo returned
from #getInputMethodList reflects the result of the previous call
of #setAdditionalInputMethodSubtypes because of its undocumented
asynchronous nature.

With this CL, InputMethodManager#setAdditionalInputMethodSubtypes
behaves as if it has I/O barrier. This change should make it easy
for IME developers to use additional subtype mechanism.

BUG: 13033954
BUG: 13291370
Change-Id: I0455b176bfb3176c533ba3241881f05092b98abc
Merge commit '3b9de0a4' into manualmerge

Conflicts:
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java

Change-Id: I5433912e9d97a20bec6c8e287450550daab6d89b
DO NOT MERGE - Fixed crash for odd image width/height

Due to an internal rounding in the renderer, the calculations
for the cropping area could be slightly offset, getting out
of the image boundaries. I sanitized the rect by ensuring they
are inside the image.

Bug: 12174629
Change-Id: Icc37790732ddd479631b898b23c05501d2dcd5be
Re-initialize error after attach

If flag for error after attach is not reinitialized, it may cause
NullPointerException on subsequent onAttachedWindow if error text
was reset to null.

Change-Id: I8976c28a6ca71017e5c4b3f29d4eeeb2eda48c38
Merge "Verify certificates" into klp-dev
Fix incorrect setting of TaskRecord.frontOfTask.  DO NOT MERGE.

When Intent.FLAG_ACTIVITY_REORDER_TO_FRONT was set the TaskRecord
member frontOfTask was being set true incorrectly for the top
activity. It should only be true for the bottom activity. This fix
ensures that frontOfTask is always set correctly for all activities by
consoldating it into one method.

Fixes bug 12171535.

Change-Id: If982dad3c81b2b816adc5d89e7e0496923098a70
Merge "Fix incorrect setting of TaskRecord.frontOfTask.  DO NOT MERGE." into klp-dev
Include the interface for clearDnsInterfaceForUidRange

With netd allowing overlapping rules for uid range rules the interface
name is needed to make sure only the correct rule is removed.

Bug: 12134439
Change-Id: I94f77f154f49ca8d5f6cf49683a4473cc92c3eb7
Fix support for simultaneous VPN tuns

A VPN can once again bring up a new tun interface while the old tun is
running. Once the new tun is set up the routing rules will be removed from the
old tun. It is up to the application to drain the old tun of traffic and
close it.

If the new tun fails to come up the old tun will remain untouched and
can still be used.

To prevent leakage the new rules are added before the old tun is
shutdown. Netd/Dns has been changed to allow multiple rules to exist
at once with the most recently added rule taking priority.

Bug: 12134439
Change-Id: I7e00c7c68cc339d81f09b3d2a33276ffc76985f5
Import translations. DO NOT MERGE

Change-Id: I0b2d6484e67628d26f34d3be39b8b11f009151bd
Auto-generated-cl: translation import
Verify certificates

b/13418320

Cherrypicked from 7e435a011dd519f76a8ec1a8ed99a22bee5c3e26
https://googleplex-android-review.git.corp.google.com/#/c/433316/

Change-Id: I39c81b1557a16c7a4666a4531a398efa91dcb00c
DO NOT MERGE: Maintain binding to crashed listeners.

Adapted from change I44ce250e, "Maintain binding to crashed
listeners from NotificationManagerService.":

> This fixes the logic on the death handlers for notification
> listeners, and doesn't unbind from the listener services so
> that the system will bring them back up again.

Bug: 12587702
Change-Id: I41d0c6733046ee9760bcfae4407e754592b805ea
malloc some advances

Bug: 13506939
Change-Id: I87ad616960c4f16bc55d8b906049dbd4f001d6a5
(cherry picked from commit 3af2a37e057b31617b8f4eeb22ac3ef85c3fd5aa)
DO NOT MERGE - Fix keyguard pattern lockout bug

(cherry picked from commit 91c9561cbe665f91e1665f30362c409ae180b127)

Bug: 13302967
Change-Id: I35e7319f8767b2320dc11d9bfe8dc034e2a39b28
Handle provisioning APN by turning off/on data.

This is a start and two tests succeed:

Tested expired AT&T SIM and waiting 15min for alarm to fire.
Tested a provisioned Verizon SIM and works normally.

I've NOT tested AT&T where I've properly completed the provisioning.
I've NOT tested T-Mobile SIM either provisioned or not-provisioned.
I've NOT tested provisioning over WiFi.
I've NOT tested that WiFi <-> Mobile works
I've NOT tested voice calls, SMS, MMS
...

The current bug is below, but it is poorly named either it should be
renamed or a new bug created.

Bug: 13190133
Change-Id: I0a09f642614cd27a8655e9dae764b8999ce485b8
Lock down MANAGE_DOCUMENTS permission.

MANAGE_DOCUMENTS is a very broad permission, since it allows full
access to all DocumentsProviders.  DocumentsUI should really be the
only app holding this permission; everyone else should rely on Uri
permission grants for access.

Bug: 12958298
Change-Id: I1def48a4ea1814e031fc8513c3cd051d764cd7f8
Fix state transition verification.

When there is connectivity state change, the network states could be broadcasted multiple times.
The state transition should consider that.

Bug: 13277256
Change-Id: I3d400900a0e2454f9d198629f1c062cbb15bdcd8
(cherry picked from commit 71aae0b6fd1bb9204b81c2e9447f3544c29579c4)
am ecba937b: DO NOT MERGE - Fix keyguard pattern lockout bug

* commit 'ecba937b005b07d72eadfaf93a200e0b14af2980':
  DO NOT MERGE - Fix keyguard pattern lockout bug
am d3da8f71: am ecba937b: DO NOT MERGE - Fix keyguard pattern lockout bug

* commit 'd3da8f711ec642322e497a493985bed5c43f597b':
  DO NOT MERGE - Fix keyguard pattern lockout bug
am 0b2f2122: am d3da8f71: am ecba937b: DO NOT MERGE - Fix keyguard pattern lockout bug

* commit '0b2f212204bd71700a4a32b87ac2d4c6a0c56feb':
  DO NOT MERGE - Fix keyguard pattern lockout bug