Make bootanimation smooth
interrupter: Use LOCAL_LDLIBS rather than LOCAL_LDFLAGS

Change-Id: Ide7d3e7962d8dda6f41ca8ba89acf75fa1c86e40
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
Fix problem with BootAnimation exit

After the completion of each animation part, the boot animation must
sleep for the number of frames specified in part.pause. If this is
done in a single sleep statement, it is possible that the boot animation
will continue to display long after surface flinger has finished booting.

To address that, the pause between parts is done in a loop and on each
iteration, the property that surface flinger sets to indicate that animation
should exit is checked.  This minimizes, but doesn't remove, the likelihood
that the bootanimation is visible when the UI comes up.

Change-Id: Ib71df0a72c0a47a1f7231b02379dc951c1f93e52
Signed-off-by: Russell Webb <russell.webb@intel.com>
framework/base: Create surface based on the panel orientation.

  - Create Surface for boot animation based on panel orientation
  - Set the display projection values based on panel orientation.

Change-Id: Iaf66ac13cc44cf7910ff150b3a104eb52bcefdbf
ChaosLab: Add annotation to be used when adding new features to the lab.

This should be used when adding completely new features to ChameleonOS,
and not for simple things that expand upon a current feature.

Change-Id: I37d7250424967d41ecfb885120627f5397b2f804
Gesture Lockscreen [1/2]

Change-Id: I370d40d47459d64adf709d4caee1c27c75922cfd

Conflicts:
	core/java/android/provider/Settings.java
	core/java/com/android/internal/widget/LockPatternUtils.java
	packages/Keyguard/res/values/liquid_strings.xml
GC: Improve the string parsing for GC parameter setting

Improve the string parsing for GC parameter system property.
Previously we only recoganize plain number for dalvik.vm.heapminfree
and dalvik.vm.heapconcurrentstart, while users tend to use format as
2m.  Improve the string parse to cover such cases.

Change-Id: Iaf0152bc4d77e1caabc307a9a7b0e5b261f8e441
Fragment animations are not being saved across configuration changes

As per comment #5 in issue #25994:

The problem here is not that the state isn't saved and restored, the problem is how the BackStackRecord is rebuilt.  The ops themselves do save and restore the state, the problem is in BackStackRecord#addOp.

    void addOp(Op op) {
        if (mHead == null) {
            mHead = mTail = op;
        } else {
            op.prev = mTail;
            mTail.next = op;
            mTail = op;
        }
        op.enterAnim = mEnterAnim;
        op.exitAnim = mExitAnim;
        op.popEnterAnim = mPopEnterAnim;
        op.popExitAnim = mPopExitAnim;
        mNumOp++;
    }

The enter, exit, popEnter and popExit animations are overwritten with whatever is currently in the record, which during the restoration process these are 0 so the values which were saved in the ops is lost.

Change-Id: I095cc7ff4ae65581d728f34217fb873ad2f0c574
storage: Don't list removed volumes in storage list

 * Don't tell apps that USB storage or empty SD slots are available for
   use. This fixes errors about trying to create dirs in vold as well
   as the relevant CTS cases.

Change-Id: Ic763d40c19b0bb9f7497cc1515baf1661d76e9ee
[1/3] Base: Squashed commits for 4.4 active display

Add active display to ChameleonOS [1/2]
Change-Id: I51c17cec33b65dc60111a10c5ca2c449596ebe63

Correct active display settings naming
Change-Id: Ibfa2d41eed01d8987df52f013b111a0ce4e70739

Active display: Add options for date and am/pm [1/2]
Change-Id: Idc09772829cc6aa9bcfb064459fb3557c7b37f6b

Active display: Add sunlight mode. [1/2]
Change-Id: I541e74c5a1a7e6ce5028ab00cf998bba1d4fe0f9

Delay hiding systemui by 100ms
Change-Id: Iad432f75195983837d643fa38495e6beb54f3e22

Active display: make sure mNotificaiton is set correctly
Change-Id: I4111ca843e340cca4d6dac4b2c2922ce3039e487

Active display: register/unregister recievers and listeners when enabled/disabled
Change-Id: Ic73e63da2c9634bc864ab1a1387eb9145eb0b5b0

Active display: Unify (un)registering callbacks and add proper checks.
Change-Id: Ie4c4660a54d2c60831f7a3bcc66b3a9ca1d035f2

Active display: allow hiding low priority notifications. [1/2]
Change-Id: I4831d6864b509e62b449c25619c59f5d6760ec47

Active display: Enable proximity sensor only when screen is off
Change-Id: I70979b5931815adb74bd8bc42e32886a6d829a12

Active display: Use a default notificaiton icon.
Change-Id: I4087ef3e407cf976f7bfb2bb89f850641101bc73

Active display: Only fetch next notification if mNotification is null.
Change-Id: Ife8511d4a4b8c448bc7aa8997a250068bec5fae7

Active display: Don't show active display if call state is not idle.
Change-Id: I2cb79e097ae24dc6ad6c8a33be88eb19f7d8d235

Active display: Allow apps to be excluded from being displayed [1/2]
Change-Id: I5c334833b78325733ae076c07afccebb02758ead

4.4 implementation of active display

Settings: https://gerrit.omnirom.org/#/c/2586/
OmniGears: https://gerrit.omnirom.org/#/c/2584/
Change-Id: I08330a28d0880f82c09ccaec7e36844d9e6570d5

Conflicts:
	core/java/android/provider/Settings.java
	core/java/com/android/internal/widget/multiwaveview/GlowPadView.java
	core/res/res/values/custom_strings.xml
	core/res/res/values/dimens.xml
	packages/SystemUI/AndroidManifest.xml
	packages/SystemUI/res/values/dimens.xml
	packages/SystemUI/res/values/donottranslate.xml
	packages/SystemUI/res/values/styles.xml
	packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java

Conflicts:
	core/res/res/values/liquid_strings.xml
	core/res/res/values/liquid_symbols.xml

Active display: Ability to turn off the screen, when a not clearable notification is present

Removing the last clearable notification in AD turns of the screen. But if there is a not clearable notification, there is no ability to turn it off directly.
This patch adds a power target on place of the 'clear notification' target of AD.

Change-Id: I807cca4c293ed732b441cfdcca50957b427809fa

[1/2] Base: Pimp up ActiveDisplay

This is a squashed commit of the following:

- Active display: turn off display if device gets pocketed again
  https://github.com/CyanKang/android_frameworks_base/commit/3c139633e2cb341452320207e93fd10b480b65ed

- Active display: Option to change display timeout
  https://github.com/CyanKang/android_frameworks_base/commit/31a3c7dced93bda9501915ea87f28f8fd541b650

- Active display: Add some log output
  https://github.com/CyanKang/android_frameworks_base/commit/5be6bd59c27b0994b2459e4fe360d35c43349929

- Active display: Add threshold to proximity sensor
  https://github.com/CyanKang/android_frameworks_base/commit/fc4561bf1e78d656e37b6bc51340767e1ffa03f6

  Display will only be activated if the proximity sensor was covered for 5 seconds or more.

OmniGears part: https://gerrit.omnirom.org/#/c/2818/

Change-Id: Ib934157da195eb307c3c852de3d0549ad06bd004

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

[1/2] Base: Fix pimp up ActiveDisplay

This is a fix for the new features added with change: https://gerrit.omnirom.org/#/c/2819/

1. Fix the bug when Pocket mode is set to Notifications only and you
unlock your device with power key and if you put your hands over
proximity sensor the device will turn off (very annoying). The problem
was that mWakedByPocketMode it was put in wrong place.

2. Added an option in active display settings for "turn off display if
device gets pocketed again" (it's annoying for me, because i cover
the proximity very often).

3. Added an option in active display settings for proximity threshold.
I use this active display feature as an replacement for "sweep2wake",
and when my phone it's on the table, i just want to pass my hand over
it to show me the clock or notification (this was ok before the pimp up
commit), and now, you can choose how many seconds for proximity
threshold.

Practicaly, this commit fix one bug, and add settings for the
features added in 'pimp up' commit.

[2/2] part: https://gerrit.omnirom.org/#/c/3381/

Change-Id: I9e49ddb89002699714dcc3b3d2b1df87dc4bab4b

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

base: ActiveDisplay: fix for disappearing notification bar

What a derp
http://jira.omnirom.org/browse/OMNI-158
http://jira.omnirom.org/browse/OMNI-101

PS2
dont do it on secure lockscreens

PS4
check if lookscreen is enabled

Change-Id: Idf7fd7c15fcd87e2efb62f0a234e15f1df1921e8

Base: Fix ActiveDisplay problem

follow kitkat changes
fix ActiveDisplay never disabled after using turn off display option

Change-Id: I1d178875c2643e872da40cae9781313fca53a6a5

Conflicts:
	packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java

Base: Fix for fix ActiveDisplay (Emergency)

this an emergency fix for last patch was merger

using another logic to determine, when need to hide Statusbar and Navigationbar
we dont want systemui visibility reset if lockscreen still enable and ActiveDisplay force to Turn Off

Correct ActiveDisplay visibility when launch Ongoing Notifications

fix Back button navbar cant work on some conditions

since AD detect User Activity, we dont want to override UserActivity inside View, so do only if AD visibilty are Gone

also add patch to keyguard, do not reset if ActiveDisplay visibility Visible
taken from Lockscreen Notification by David L.-W <david.leppla.weber@gmail.com>

Change-Id: I9d4001870db28ee04bdd622fa7147543b658251f

Base: ActiveDisplay check for Immersive Mode Enable

As we know, Immersive Mode will force StatusBar and NavigationBar to Hide
while ActivieDisplay always setSystemUiVisibility flags for Both if enabled,
and will cause a conflict for that flags

// how to reproduce bug:
// set ImmersiveMode enable
// set ActiveDisplay enable
// Turn Off screen, swipe to sensor, ActiveDisplay showing
// Turn Off screen again (using Power button)
// Turn On screen (using Power button)
// pull Quicksettings, disable ImmersiveMode from ImmersiveTile
// Turn Off screen again, swipe to sensor, ActiveDisplay showing
// unlock via ActiveDisplay
// voila.... random flags will be set into setSystemUiVisibility
// (sometimes navbar or statusbar or both are gone)

lets make ActiveDisplay check for ImmersiveMode enable/disable,
so ActiveDisplay will not always setSystemUiVisibility flags
if ImmersiveMode enable

also workaround fix for unknown icon (?) sometimes appears
(if Show All Notification enabled)
(based from user report at XDA thread, why they always report there not in JIRA :/)

Change-Id: I550143864d387d7725c018f084e253c1e47cc3c0

Active display: Respect Quiet Hours

Credit: Der-Schubi

PS2: Use QuietHoursHelper

PS4: Fix PS3

Change-Id: Iba6f339e8073fa28ee6b96a6b889cd3faf724111

Base: more fix Active Display

fix http://jira.omnirom.org/browse/OMNI-352
fix http://jira.omnirom.org/browse/OMNI-357

Change-Id: Ibdd9617ce472213520261358bb6b77e9ff5eb523

Base: more fix Active Display (again)

maybe fix
http://jira.omnirom.org/browse/OMNI-313
http://jira.omnirom.org/browse/OMNI-421
http://jira.omnirom.org/browse/OMNI-401

Change-Id: Id947e18a9299200f1ccd41aa70e56534fdbb4b57

Base: Disable proximity sensor when screen goes on in ActiveDisplay/PocketMode.

Active Display (in Pocket Mode) currently only switches off the proximity sensor in some cases.
If the user switches on the screen itself, the sensor is left running. This change
stops the sensor as soon as the screen goes on. Active Display already started the sensor each
time the screen goes off.

PS2: In the mode that turns the screen off again when the device is pocketed,
the sensor stays on until you leave ActiveDisplay.

Change-Id: Id7afcd858f341ad929606d302c5741efa99a7c6f

[1/2] Base: ActiveDisplay (rework interface)

really fix AD buggy stuff
tested with Music play
tested with No lockscreen
tested with faster screen turn off
check all sensor going off if AD not Showing or Disabled
fix notification posted/removed
make AD using System Window so it will covered all screen
fix Navbar translucent if Lockscreen Blur merged :P
now using Rounded Image
also introduce new RoundedImageView widget
 courtesy of @vinc3m1 (thanks)
fix build
fix sometimes screen turn off after unlock because screen timeout (hopefully)
now using new parser to get Notification data (thanks @Achep for the parser)
rework lightsensor manager
add NotificationUtils
fix brightness sometimes not changing

add support applications privacy mode (will not show content message if enable on each app)
see http://jira.omnirom.org/browse/OMNI-600

allow bypass AD if no notification and lockscreen is secure
see http://jira.omnirom.org/browse/OMNI-594

fix proximity always enable after adding new feature allow bypass AD
fix parsing notification data from app with targetSDK < 17

fix excluded app value (no body notice this broken since AD merged into OmniRom xD )

add option to allow bypass AD
make AD multiuser support

Conflicts:
	packages/SystemUI/res/values/custom_dimens.xml
	packages/SystemUI/res/values/custom_styles.xml

Change-Id: I1fc3047496cce71cefc1718b8ef3f4c4fc1605eb

Conflicts:
	core/java/android/provider/Settings.java
	packages/SystemUI/res/values/custom_attrs.xml
	packages/SystemUI/res/values/custom_dimens.xml
	packages/SystemUI/res/values/custom_strings.xml
	packages/SystemUI/res/values/custom_styles.xml

Base: fix ClockView ActiveDisplay

why no body report this bug?

this happen since AD merger into omnirom for the first time
i found this bug after using 24 time format LOL

Change-Id: I85be84914cc8210d9b0612994a4c25a5c6bfdeb6

[1/2] Base: fix ActiveDisplay for WifiOnly Devices

fix http://jira.omnirom.org/browse/OMNI-637
also fix for devices with unsupported Proximity sensor and Light sensor

Change-Id: I346d4ed0ca02c6f8a6da1f3bf1de59ac9179d7b7

Conflicts:
	core/java/com/android/internal/util/liquid/DeviceUtils.java
	packages/SystemUI/res/layout-sw600dp/active_display_content.xml
	packages/SystemUI/src/com/android/systemui/statusbar/policy/activedisplay/ActiveDisplayView.java

ActiveDisplay: Fix for flo and other devices

The changes made to layout/active_display_content.xml were not
made to its layout-land and layout-sw600dp counterparts

Make them here too to stop flo from crashlooping in systemui.

These values may need to be tweaked later, but preventing crashloops
is top priority.

Change-Id: If137eaabad735539cc9d50c107a1733bef71538d

Conflicts:
	packages/SystemUI/res/layout-sw600dp/active_display_content.xml

Conflicts:
	core/res/res/values/liquid_strings.xml

Conflicts:
	core/java/com/android/internal/widget/multiwaveview/GlowPadView.java
	core/res/res/values/liquid_strings.xml

Conflicts:
	core/java/android/provider/Settings.java
	core/res/res/values/liquid_strings.xml

[1/2] Base: more improve Active Display

1. fix http://jira.omnirom.org/browse/OMNI-651
2. fix http://jira.omnirom.org/browse/OMNI-641
3. add http://jira.omnirom.org/browse/OMNI-652
4. Add option Double tap to sleep every where
5. Add option to show wallpaper blur behind active display
6. Allow to show numbers of notification on Handle (only show if notification count is enabled in bar settings)
7. minor improvements
8. add battery circle around handle (only show if battery circle around lockscreen handle enabled, see security settings)
9. fix http://jira.omnirom.org/browse/OMNI-665
10. fix whitespace

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

Change-Id: I1b28041c0245de80b7d09c684f6439b2f8f5bd40

Conflicts:
	core/java/android/provider/Settings.java
	packages/SystemUI/res/values/colors.xml
	packages/SystemUI/res/values/custom_dimens.xml

Conflicts:
	packages/SystemUI/res/values/colors.xml

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

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

Base: fix SystemUI because ActiveDisplay

fix http://jira.omnirom.org/browse/OMNI-708
fix http://paste.omnirom.org/view/e7039c0b
fix http://paste.omnirom.org/view/6977cb45

Change-Id: Id6688c721bd262df7824183a14fcd0aab145517e

Conflicts:
	packages/SystemUI/src/com/android/systemui/statusbar/policy/activedisplay/ActiveDisplayView.java

[1/2] Base: ActiveDisplay bugfixes

1. fix respect QuietHour changes
2. fix compute background bound for background image
3. fix http://jira.omnirom.org/browse/OMNI-724
4. fix http://jira.omnirom.org/browse/OMNI-722
5. fix http://jira.omnirom.org/browse/OMNI-709
6. remove useless layout
7. fix invalidation when sunlight mode disabled
8. fix fetch wallpaper
9. fix glowpad ring after configuration changes
10. disable wallpaper blur until we find fix for problem in OMNI-715
11. make sure when configuration changes, all view is rebuild, so there is double background window
    is showing
12. remove Wallpaper

Change-Id: I15fc9a6cb21e009f92952477ced34cfaf37b8f38

Conflicts:
	core/java/android/provider/Settings.java
	packages/SystemUI/Android.mk
	packages/SystemUI/res/layout-sw600dp/active_display_content.xml

[2/2] Base: Active Display add shake event

- use better sensor event listener
- added option to bypass Quiet Hours (default now is not , that is 'privacy is first' decision)
- added option to configure time between shakes
- added option to set disable timeout
- added option to run like "PA PEEK"

Change-Id: Iabd42517a4e9df82e9cf653359104303667e43be

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

Conflicts:
	core/res/res/values/liquid_strings.xml
	packages/SystemUI/res/values/liquid_strings.xml
Alarm: Add one more RTC alarm type for poweroff alarm.

Now we use type of RTC_WAKEUP for the poweroff alarm.
Actually lots of other applications also use this type.
But these applications never expect the device will
power on after it has been shut down. So we need to
add dedicated alarm type for the Deskclock or similar
applications.

Change-Id: I5df2465c46de8fe875d1581bdefe26021c8ffb33
[2/2] Frameworks: HALO

Forward port from jb.
PS1:  Initial port
      Fix conficts with notification LED
      Fix derp
      Major derp
      HALO Mods
      Rebase
      Fix blackist, code clean and added some TODOs
PS2:  Fix build
PS3:  Fix bubble sometimes doesn't respond on new notification
PS4:  Align halo icon
PS5:  Keep floating app in recents and disable transparent layer temporarily
PS6:  Fix conflict after recent merges
PS7:  Cosmetic fixes:
      Fix buttons layout in status bar.
      Status bar button holders show halo + qs switch on notification and qs edit mode + notification switch on qs.
      Update new margins size.
PS8:  Rebase
      Clean white spaces
      Toggle on/off from notification shade icon (remove red X)
      Standardize behavior (remove option to reverse tap/double tap)
PS9:  Remove references to LayerActivity
PS14: Rebase
PS15: update halo strings to prevent conflict with latest changes
PS16: Wrap all things!
      Modify halo behavior
PS17: Get the correct activity stack: this makes all windows in the same stack to get the floating mode
PS18: Stop pop-out on rotation
      Catch "silent" notifications
PS19: Rebase
PS20: Rebase, fix conflicts with recent merges
PS21: Fix missing commit messages from previous undefined patchset (19) and other conflicts

Change-Id: I3e79945433d61da090ca263f4e2989be9987f11d

Signed-off-by: anerikg <anerikgames@gmail.com>

Conflicts:
	core/java/android/provider/Settings.java
	packages/SystemUI/AndroidManifest.xml
	packages/SystemUI/res/layout/status_bar_expanded_header.xml
	packages/SystemUI/res/values/dimens.xml
	packages/SystemUI/res/values/pa_strings.xml
	packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
	services/java/com/android/server/NotificationManagerService.java
	services/java/com/android/server/am/ActivityStack.java

Conflicts:
	core/java/android/app/INotificationManager.aidl
	packages/SystemUI/AndroidManifest.xml
	packages/SystemUI/res/layout/status_bar_expanded_header.xml
	packages/SystemUI/res/values/dimens.xml
	packages/SystemUI/res/values/liquid_strings.xml
	packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
	services/java/com/android/server/NotificationManagerService.java
	services/java/com/android/server/am/ActivityStack.java

Conflicts:
	packages/SystemUI/res/layout/status_bar_expanded_header.xml
	packages/SystemUI/res/values/liquid_dimens.xml
	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
	services/java/com/android/server/NotificationManagerService.java
	services/java/com/android/server/am/ActivityStack.java
Download: add to support pause/resume download by manual

We add pause and resume API here so that application can
pause and resume downloads manually by DownloadManager.
This contains two points:
1. add pause and resume download APIs.
2. add another paused reason for this download status.

Change-Id: I606b48ca20f43bcc6c119683818c2ab6ff03bfe5
HALO: make windows moveable and scaleable [WIP]

Change-Id: I8c3118f6d548dc70f186454fb8d15a4bae9bbeb0
Signed-off-by: anerikg <anerikgames@gmail.com>

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

Conflicts:
	core/java/android/app/Activity.java
Bring floating window in line with ParanoidAndroid

Let's try to make this work with movable and scalable

Change-Id: Id39b454ce58ff6071d2bb739cca4bb012039b2d5
Signed-off-by: anerikg <anerikgames@gmail.com>

Conflicts:
	packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java

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

Conflicts:
	packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java

Conflicts:
	packages/SystemUI/src/com/android/systemui/recent/RecentsPanelView.java
Halo: allow choose notifications on floating window or not (1/2)

Change-Id: Ia94a00ed7648fea2984606cae50fa3ad684d40de

Conflicts:
	core/java/android/provider/Settings.java
[1/2] fb: Change density on the fly

Change-Id: I7ee16d32ee882fea22367f49f69f4da744f3aa45

Conflicts:
	core/java/android/view/IWindowManager.aidl
	services/java/com/android/server/wm/WindowManagerService.java

Conflicts:
	core/java/android/view/IWindowManager.aidl
	services/java/com/android/server/wm/WindowManagerService.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

Conflicts:
	core/res/res/values/liquid_strings.xml
	core/res/res/values/liquid_symbols.xml
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>
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