QS: Don't assume observers are registered when dealing with changes

Not all uri activity has an associated content observer. Poking
the content://settings/system provider manually, for example,
would result in the following NPE:

AndroidRuntime: FATAL EXCEPTION: main
AndroidRuntime: java.lang.NullPointerException
AndroidRuntime:        at com.android.systemui.statusbar.phone.QuickSettingsController$QuickSettingsObserver.onChange(QuickSettingsController.java:354)
AndroidRuntime:        at android.database.ContentObserver$NotificationRunnable.run(ContentObserver.java:180)
AndroidRuntime:        at android.os.Handler.handleCallback(Handler.java:725)

Change-Id: I7034d261804aa972fe9020dd9b602348d249cb33
WebSettings: Move CM tag to the end of the user-agent

Append it at the end of everything to make it less obtrusive to
agent parsers, and append the CM device identifier so we can present
smarter choices when our sites are accessed.

Change-Id: I1e60d13be4cca9043e434a31bfc4fa08e01a12c0
Fix DateUtils.formatElapsedTime, again

Remove extraneous "hours" argument in the <10 minutes case

Change-Id: I5a5913d2e0744f5783f8422cddc30603c7bd703f
unlcok google play

Change-Id: Id616e1f5e90aacaa6a8708958ca6325490fe83ba
ajust navbar/statusbar size

Change-Id: Ied183c698aa37ede93b6466ca6fdc49fb7893d80
collapse notification if not has clearable items

Change-Id: I6c2236bb381cc407bc15efdff84287156a13e043
Revert "collapse notification if not has clearable items"

This reverts commit d63424720b2b9a9f2364e8e3e193a94452d28771.
hide status bar in landscape mode

Change-Id: I20513543304fd652e5c1e1ee4b6686c95a233ef1

Conflicts:

	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
Revert "hide status bar in landscape mode"

This reverts commit 0d688717bd6e91ee66f66111e4811257b9f5c373.
move clear all buttom to bottom left

Change-Id: I21014f7c9d0d5bdd6659a6092e6605a78236c320
WIP: enable volume rocker music control when keyguard is active

Change-Id: I796c3e8d4d9095f1a869265f18d28a41fe41bf85
Revert "WIP: enable volume rocker music control when keyguard is active"

This reverts commit 95e715a8894111b25443ca6fc327e2318fd9bb09.
add navbar power button

Change-Id: I50ca19dd00d553761e0ebf737b170326f8b09e49
Quick Settings: don't limit swipe detection to the bottom bar

Change-Id: I006fc0a41edc8074ad569657d29f808a58877da7
auto expanded desktop (framework)

Change-Id: Ifcb2b2a4813c557b5abacaca9992b0455495109f
Decrease auto rotation settle time

Change-Id: Ieb93358923a426433b41d511e11a7c22c68afeb8
Change choose activity behavior

Single click to run just once, long clock to always use.

Change-Id: I1db4b65084d3c2dded0f014e95db90c9cf1cdec1
Do not check captive portal in mobile network

Change-Id: I1686e08c387110d6c542ef6466b223e779802bc4
Remove 'Complete action using' title

Change-Id: I357a775890bced9fae3bdb4edd0d20cd3633ddbc
HALO (1/2)

HALO is Androids one and only multitasking solution.

We explicitly do not go the Samsung/Cornerstone route. This solution is basically an extension of
the regular notificationshade, which is an aggregator for notifications that can be checked out when
time permits. HALO completes it by allowing you to respond to tasks on the spot, trying to be as
unintrusive as possible and flexible in regards to policies (white/black lists).

Features:

- Apps open up in floating state, apps underneath do not pause
- complete SystemUI & Core integration, making HALO feel like a native feature, source/SDK and UI/UX
- HALO has white and blacklists, which for now allow fine control for apps pinging through HALO
- multiple gestures to navigate HALO:
  - double-tap-move: move
  - tap-drag-left/right: task through notifications, finger up launches
  - tap-drag-up: dismiss notification
  - tap-drag-down: put HALO into semi-hidden state
  - swipe while HALO is hidden wakes it up
  - drag-to-X to remove HALO altogether
- comes with as few settings as possible, everything should be self explanatory and intutive,
  users must be informed about the double-tap gestures which is the only catch.

Known issues:

- Integration has been finished for PhoneUI. TabletUI and PIE must be integrated still.
- Packageinstaller must allow HALO through its overlay check or it will disable the install-app button.
- The low level has a few remaining issues:
  - Some apps still go up fullscale (they trick us with services, circumventing the intent flagging)
  - Some 3D games still pause
  - There is one known app that refuses to end on back or touch-outside, that is WeChat
  - The activitystack pause implementation works but is makeshift

To-Do:

- On-screen tutorial at first start up to teach users the gestures
- Fixing all known issues, full integration in the remaining UI's
- Perhaps hybrid engine integration for running floating apps in a decreased size

Merge branch 'multiwindow' into jellybean

Conflicts:
	core/java/android/app/Activity.java
	core/java/android/provider/Settings.java
	packages/SystemUI/AndroidManifest.xml
	packages/SystemUI/res/values-land/dimens.xml
	packages/SystemUI/res/values/dimens.xml
	packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
	packages/SystemUI/src/com/android/systemui/statusbar/view/PieStatusPanel.java

Change-Id: Ia00cdbe8efb3bf5a6c874dc7e581d3a2982a1f90

Conflicts:
	packages/SystemUI/res/values/dimens.xml
	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java