On-The-Go: handle display orientation changes

Change-Id: Iad38e98a0c2a37be10c9b1e29fbf9f15b2a13852

Conflicts:
	packages/SystemUI/src/com/android/systemui/nameless/onthego/OnTheGoService.java
Add android_system_label to symbols.xml

Change-Id: Id5ae4f440becb5039b189ea59a5c459178550e46

Conflicts:
	core/res/res/values/symbols.xml
Add config_batterySdCardAccessibility to symbols.xml

Change-Id: I0f9dc18ddaaa52d02ba547c827db62d1d765c37f

Conflicts:
	core/res/res/values/symbols.xml
Halo: allow choose notifications on floating window or not (1/2)

Change-Id: Ia94a00ed7648fea2984606cae50fa3ad684d40de

Conflicts:
	core/java/android/provider/Settings.java
Fix systemui fc when using custom recent
Tunning max allowed background services

The serialize running of background services feature
delay some services startup when system bootup, and
lead some abnormal behaivor at the early of system startup.
Tunning will be disabled after system complete bootup.

Change-Id: I834607d9156253bee13848586a8136e24760fdf4
SpellChecker: bound check for string end

Check whether spell check result is out of end of string
Use strict one to avoid IndexOutOfBoundsException.

Change-Id: I6acac77e1e9750258ed364817a8615a6f56bebe4
[ActivityManager] Ensure consistency behavior when a background activity brings another existed activity to front.

Symptom: ANR occurs on previous activity.
Root Cause:
In KK, when a background activity starts another existed background activity (bring to front),
if current focused stack is not the same as the stack of target starting activity,
it will still resume the top of target stack, even the top activity on the target stack may not the same as target activity.
And it will result incorrect focus, press back key will send to previous stack's top then popup ANR on previous activity:
"Reason: Waiting because no window has focus but there is a focused application".

By original code comment, it looks 'bring to front' should not happen in this issue case.
// If the target task is not in the front, then we need
// to bring it to the front...  except...  well, with
// SINGLE_TASK_LAUNCH it's not entirely clear.  We'd like
// to have the same behavior as if a new instance was
// being started, which means not bringing it to the front
// if the caller is not itself in the front.

If the caller and target are in the same stask, it will just deliver new intent without changing task order (the same behavior as JellyBean).
So the patch concept is just to avoid to use target stack to resume top when caller and target are in different stack.

Solution: Do not allow to resume another stack top if non-top activity try to bring existed activity to front.
It may not be a good solution, just a reminder for the issue case.

Reproduce steps:
Assume A, B, C are different app tasks.
When the application stack is like:
  Top C
      B
      A

 #Case 1: Home is foreground
  A starts B with NEW_TASK, C will resume, focus still stays at Home, and window order does not update.
  Then press back key or volumn key will result ANR on Home.

 #Case 2: App is foreground (Resumed activity is C)
  A starts Home, Home will resume, focus still stays at C, and window order does did not update.
  Then press back key or volumn key will result ANR on C.

Change-Id: If05070123b248e2335791e43a4d4ddee6db11d84
[1/2] Base: implement App circle sidebar

add whitelist app to include into circle view
rebased
make standalone patch

PS.15 : rebased
PS.16 : cleanup

Change-Id: I08d2a3a7e0f8df20e801e585d4cac8547a740a3e

Conflicts:
	core/java/android/provider/Settings.java
	packages/SystemUI/res/values/custom_strings.xml
	packages/SystemUI/res/values/custom_styles.xml
	packages/SystemUI/res/values/liquid_dimens.xml
	packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
Base: Floating window with multitasking

basic floating window are taken from AOSPA (HALO) by @D4rKn3sSyS

Drawables courtesy of @Alex Cruz thanks to him :)

with heavy change to get this work for multitasking

this feature, has ability to:
1. Moveable window to various position
2. Scaling window with 2 finger like zoom in/out
3. Double tap in actionbar or above window to fullscreen or back to floating window
4. Automatically resize when Snapping into one of side (Top, Bottom, Left, Right)
   (taken from xhalofloatingwindow by @zst123)
5. Automatically switch focus from other app (taken from multiwindow by @xplodwild)
6. Unlimited floating window app (depends on RAM)

this is still under testing, to make fully works
so if there any bug because of this, DO NOT REPORT INTO OMNIROM JIRA

to make app launch using Floating window feature

you must add Intent.FLAG_FLOATING_WINDOW
before start an activity

for example you can look at https://gerrit.omnirom.org/6515

need https://gerrit.omnirom.org/#/c/6561

PS.17 : fix scaling

Change-Id: Iad00c239de7d66e8bb45205ce626d4f08417b7cd

Conflicts:
	core/java/android/app/IActivityManager.java
	core/java/android/content/Intent.java
	core/java/android/view/IWindowManager.aidl
	core/res/res/values/strings_custom.xml
	core/res/res/values/symbols_custom.xml
	services/java/com/android/server/wm/WindowManagerService.java

Conflicts:
	core/java/android/app/Activity.java
Base: App Circle sidebar (add support floating window)

PS.8 : rebased
PS.9 : add support minimize/maximize window

Change-Id: Ied388a0a4054dfaf1d3e6fcdc33dd5aab28565a9

Conflicts:
	packages/SystemUI/res/values/custom_strings.xml
Base: App Circle sidebar (add support Samsung multiwindow flags)

this will automatically add app into app circle sidebar
if apps support samsung multiwindow flags
in their manifest

PS.2 : rebased

Change-Id: Ifa8965f1fb5d24987aed7d6d52a4e77deb48c455
[1/2] frameworks: Adding old-school (JB like) battery percents style
due to its better visibility.

Also added "No battery" style.

Added percents visibility while charging and
colorizing percents while charging

One selector made obvious

Removing unnecessary code

Setting green color for text 90+% charged

Now bolt color means color of circle battery, not percents

Fixing percentage color while charging for "text only" style

Fixing percentage color for JB style

Adding green percents color when charging and >90% for circles with percents too

Including Juba's changes regarding battery tile with no battery in statusbar
and styles order

How does it look like:
https://dl.dropboxusercontent.com/u/66673431/BattModPercentScreen1.jpg
https://dl.dropboxusercontent.com/u/66673431/BattModPercentScreen2.jpg

Settings change: https://gerrit.slimroms.net/#/c/5755/

Change-Id: I7505c7e35c252a0fac0bd37db4be33bbff89ef41
WallpaperManager: add NULL pointer check for getCropAndSetWallpaperIntent

Originally the api 'getCropAndSetWallpaperIntent' does not check
whether the parsed parameter is a NULL pointer, as leads to the
whole app crash if it call this api with a null parameter accidentally.
A null pointer check logic is added into its original parameter check
logic, so that this API will throw an IllegalArgumentException if it
is parsed with a null pointer

Change-Id: Ib7de40e571419d09e1a744edc969eb7162766b75
Signed-off-by: houst0nn <houstonn@gmail.com>
Release DrmManagerClient resources

Call release for DrmManagerClient to avoid resource leaks

Introduced by following commit (5d143ad4a8f...),
"Media scanner support for FL(Forward Lock) DRM file types"

https://android-review.googlesource.com/#/c/91081/

Change-Id: Ic3c458579f4e99b3b072a2e13362d1996b982589
Signed-off-by: houst0nn <houstonn@gmail.com>
Style previews [1/3]

Credit:@Andy Mast
CM11 Themes: Ensure customTheme is not null.

The configuration retrieved via getConfiguration() sometimes contains
a null customTheme which results in the theme returning to holo when
applying a component such as icons.  Icons will change but styles
and fonts would return to the default.

Change-Id: Iac0cb8eed5de8fdc9fe8efd697d968f26e801c08
Add the calling package name to requestRouteToHost

The calling package name will be used to check if an application is a
system application when deciding if a route should be exempt from VPN
routing rules...

Bug: 12937545
Change-Id: I2c09c875fe9bb9685871a0a801ddcbb32fc17405
Only allow System apps to make VPN exempt routes

requestRouteToHost will only allow system applications to make routes
exempt from the VPN's routing rules.

If a VPN is currently running and a non-system app requests a route it
will only succeed if that host is currently covered by a VPN exempt
routing rule. Otherwise it will fail.

For example, if a VPN is running and the MMS network is brought online
those routes will be added as VPN exempt. If an application then tries
to request a route to a MMS endpoint it will succeed because the routes
already exist. If an application tries to request a route to a host
covered by the VPN the call will fail.

Bug: 12937545
Change-Id: If7bcec91bbb96c62c8fb69748c975847e6c00b6f
Update LinkProperties with MTU value

Use the MTU provided by network as part of Data Call Response.
If it is not present, use the static value from config file

Change-Id: I9d03cc9b355d09a93883fbf4ddc93fae0077641c
CRs-Fixed: 634747