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

conflicts:
     core/java/android/provider/Settings.java
     packages/SystemUI/AndroidManifest.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

Change-Id: Ia6104ff86acc8cc0bf08246dc5a3a9bfcc41b74a
Halo: Bugfix for Layout < 0 crash

Change-Id: I870a8b195995500fa631a8b08da413039769ff37
Floating window (1/2)
This is the popup code from Paranoid Android's HALO, which has already been commited. This commit just allows it to be on or off as some users may not want to use this function. We have a better idea on how to use this functionaility which will be seen later.

For now though, this is the messy way of turning it on and off.

Conflicts:
	core/java/android/app/Activity.java
	core/java/android/provider/Settings.java

Change-Id: Ica702fbe9348ea3055e8c15da97574d2da783479

Conflicts:
	core/java/android/provider/Settings.java
Fix Floating Window

Change-Id: Icf48df5d6ffbfb8e6b16a632f5135a0fa02dd946
Halo: Add master switch to disable Halo (1/2)

Change-Id: Ifb0f4e8abdce1ed3d4cc4c973edc08794781db64

Conflicts:
	core/java/android/provider/Settings.java
Fix Halo not showed at first notifiction drop

Change-Id: Iefa98e2168e0c53db99466de69da91cfd3465155
Don't bring home to the front if we're opening a floating activity
Fix little derp causing visual bug

To reproduce, disable halo, and press "clear all notifications" button

Change-Id: Ice7ab62229e27db53ef51fd5df55dbcd0a86358b
Give floating flag to previous activities in the stack
When launching stacked activities, only the last one is flagged as floating in sysui when tapping halo.
This causes the system to show the launcher when the first stacked activity is launched (this first intent gets the flag FLAG_ACTIVITY_TASK_ON_HOME
in TaskStackBuilder).
This change makes all the stacked activities get the floating flag if the last one has it.