Send callbacks for Net property changes

LinkProperties and NetworkCapabilities changes were not calling app callbacks.

bug:17681483
Change-Id: I67dac3c4dc1284f5c4bfb24de239da4ec776336f
Merge "Revert "Revert "Frameworks/base: Update to preloaded-classes""" into lmp-dev
Allow any unvalidated Network to satisfy NetworkRequests.

Explicitly selected Networks may never be validated (e.g. Chromecast)
but are still given a high score so they can explicitly become the
default Network.  Without this fix they do not become the default
Network if another Network is present.  This was an artifact of how
unvalidated Networks were handled, but now that unvalidated Networks
are properly handled, ala 50807d, we can freely rematch even
unvalidated Networks and NetworkRequests.
Also, never linger and teardown unvalidated Networks as the user
might be in the process of signing in.  This better matches prior
behavior when unvalidated networks didn't match NetworkRequests,
and thus were never lingered.
Also, don't disconnect networks that may be lingering.  The
disconnect logic in rematchNetworkAndReqeuests() is adjusted to only
fire when a network is newly validated.
It is incorrect to consider rematching uncreated Networks and
explicitly selecting created Networks, so this change logs error
messages in those cases.

bug:17647968
bug:17396616
Change-Id: Id6b8a350b8200f484d5bfd14ca0a8f64f08846a0
Send updated NetworkAgent score to NetworkFactories when validated.

Previously the score was not sent out causing other NetworkFactories
to have the lower unvalidated score and to repeatedly try to bring
up a new Network only to have it torn down.
Also, avoid logging an error when tearing down a network with only
listening requests.

bug:17726566
Change-Id: I82ff7c9bd5ec962f62a50ad0042c278622953969
Merge "Disable notification effects during phone calls." into lmp-dev
Merge "Update framework icons for media & alarm streams." into lmp-dev
Merge "Send callbacks for Net property changes" into lmp-dev
docs: Unbuntu troubleshooting link to CamelCase ID

Change-Id: I705d17346c470563c350df9bb17d23f3fda5fbc5
Use network-specific HTTP proxy settings in captive portal login app.

The HTTP proxy system properties are set based on the proxy configured
for the network the captive portal login app is operating on.  These
system properties are subsequently read by the WebView used to perform
the sign-in.
This is a short-term fix using reflection.  This allows users with
cellular providers that use proxies to sign into WiFi captive portals.
The long-term fix could involve:
1. Sending out a network-specific proxy config changed broadcast, and
2. Modifying the ActivityThread to set proxy system properties for
   Networks selected with setProcessDefaultNetwork(), and
3. Modifying WebView to read from the proxy system properties when
   PROXY_CHANGE_ACTION broadcasts are received.

bug:17679789
Change-Id: I3ada0470ad085df1a4452b4a655ac35f310d2241
Merge "docs: Unbuntu troubleshooting link to CamelCase ID" into klp-modular-docs
Fix test framework to allow Mockito tests to run successfully on ART.

Currently, Mockito tests don't run on ART (KitKat & L) due to an extra
NoClassDefFoundError exception being thrown while trying to resolve
internal test runner classes. These exceptions are benign, Mockito's
internal test runners all inherit from org.junit.runner.Runner, which is
not included in the setup, but none of them are actually used in tests.

The same apks succeed on Dalvik, and logcat shows the same exceptions
 going by, minus the NCDFE's.

Section 5.3 of the VM spec says the virtual machine has to wrap a
ClassNotFoundException in NoClassDefFoundError if the first exception
arises from verification or resolution but not initialization of that
particular class.

Bug: 17042833
Change-Id: I3af20f6884d9fa3afc3fbf9fcb238be10267827a
am d37afa37: Merge "docs: Unbuntu troubleshooting link to CamelCase ID" into klp-modular-docs

* commit 'd37afa37452d5e5dab3704ecab0ab7cebb3da292':
  docs: Unbuntu troubleshooting link to CamelCase ID
am 32cfe2bb: am d37afa37: Merge "docs: Unbuntu troubleshooting link to CamelCase ID" into klp-modular-docs

* commit '32cfe2bbc71091a1ab282d5c7e4df7db5f6051e6':
  docs: Unbuntu troubleshooting link to CamelCase ID
am 1242af06: am 32cfe2bb: am d37afa37: Merge "docs: Unbuntu troubleshooting link to CamelCase ID" into klp-modular-docs

* commit '1242af060bec63ec3a37512ebbbdbe545bd9f0f7':
  docs: Unbuntu troubleshooting link to CamelCase ID
Fix issue #17783882: AUPT: NPE in Videos: Attempt to invoke virtual method...

...'java.lang.String java.lang.String.substring(int)' on a null object reference

Change-Id: I4a78653174da398a4edd23b2bc099598548b79c2
Prevent monkey from triggering bugreport

Change-Id: Ifa6f06f7dfa63b740352ad7388f33911649afcb0
Fix issue #17811029: Settings provider race when removing users

Change-Id: Ia40d0a9c161b765d1340db5390d0acdbfc050b81
Fix alarm delivery-order sorting

We also refine the order of delivery within any given package.  Now,
we identify which apps have wakeup alarms being delivered in the
current pass, and deliver all of that app's alarms before moving
on to alarm delivery to apps who are only receiving non-wakeup alarms
in the current delivery pass.  The TIME_TICK alarm is also hoisted to
the start of the current delivery pass if present.

Bug 17778686

Change-Id: I6306a00fe657787a77d0254c0807ac51e810fdcf
Maybe fix issue #17449495: Nakasi is pretty laggy/slow to do anything

Tweak the oom tuning to raise everything by 50%.  This is the same
increase we did for Volantis; I am thinking that most of the issue
there was not it being 64 bit, but it being tighter on RAM.  From
my testing, it looks like in user switching there was some paging
going on with Nakasi, and with this change things seem to be better.

We should probably revisit this for future work on RAM.  It seems
likely that a 64 bit device will need more RAM, so probably the value
I am picking here is larger than we actually need for other devices.
I think this is the safest change at this point though -- it leaves
Volantis the same, where we already had tweaked it to address paging
issues, raises it on Nakasi (to the same value as Volantis) where we
seem to have paging issues, and on our other devices also raises it
but those are generally not under memory pressure so this shouldn't
really make a difference.

Change-Id: Ib19394068734d322a015ed07370d9d4961877e4b
Fix issue #17783882: AUPT: NPE in Videos: Attempt to invoke virtual method...

...'java.lang.String java.lang.String.substring(int)' on a null object reference

Change-Id: I4a78653174da398a4edd23b2bc099598548b79c2