Fixes for clang
PackageInfo is a class, not a struct.
String16 is contained in the android namespace. Do not namespace prefix it
within the android namespace.
Explicitly specify which std classes are necessary to prevent ambiguous
type errors. (map, set)

Change-Id: I56a4ca0b0950aa56e0da220d13f052ba4a79b4b2
Profile: Filter on NETWORK_STATE_CHANGED instead of SUPPLICANT_STATE_CHANGED

For more reliable network change detection use NETWORK_STATE_CHANGED
instead of SUPPLICANT_STATE_CHANGED

Only set profile when profile actually changed.
Use getWifiSsid instead of getSSID so we dont have to strip double
quotes ourselves, add null pointer exception check because function can
now be called when WiFi is off.

Change-Id: I2b4ea65fdb484edb39a14725c648d9ab0d5d36fb
Also backup profiles file via backup manager.

Change-Id: Id70cb1bce15b7de127e4291e9482ab3fd7270f9f
Revert "Auto-close if you swipe away the last notification."

This reverts commit 8cc36e572876f3bb9197f0109db3042466e5f917.

It didn't work as advertised anyway: It only worked if there are no
persistent notifications, and it also closes the notification area if
the notification is closed by the app itself.

Change-Id: I16f0fb6cf41d20c3a3bd4278446edab780c1fc77
Close notification panel when swiping away the last clearable
notification.

Change-Id: I4e5114f66e799a7c80e18b38abce5678da460846
Fix occasionally flickering music control widget.

The problem was seemingly related to the player abandoning audio focus
while the playback state was still set to 'playing'. In that case, the
transport control was removed from the keyguard host because it had no
listener anymore, but later was re-added due to isMusicPlaying() still
returning true. Re-adding it lead to it re-registering with audio
service, which cleared the display due to nothing being connected, which
lead to the detachment listener being called again, which in turned
closed the loop.

While this may be a sign of a buggy player app (it should stop its
playback prior to abandoning audio focus), this situation still should
be handled gracefully. Fix the problem by simply reporting no music
being played while no remote control client is connected.

Change-Id: Id6834d38bc6faa3b6455ac66b413443f85606785
systemui: Add CONNECTIVITY_INTERNAL permission

 * SystemUI needs to be able to list interfaces if tethering is in use
   and we ask for a second tethering path to be set up (BT+USB, etc).
 * Add permission to stop exceptions in the framework and enable
   tethering thru multiple paths.

Change-Id: If7a65c31557dc2f0451f0612fb109f61e8056368