App sidebar from ChameleonOS [1/2]

Summary:
This is a squashed commit of app sidebar support from ChameleonOS (github.com/ChameleonOS). All of this app sidebar work was done by 0xD34D.
All commits included are as follows:
Remove collecting usage stats for apps.

Add user defined transparency to app sidebar [1/2]

Change-Id: I8ed6d96e5e4d3e93dea37ac3d6f1c25186e1034c

Optimizations

Change-Id: Ia177e7b22fcc7e2096d947c7f15bf176e1d82ebd

Add user selectable size for sidebar [1/2]

Change-Id: I24d997c5b91da049c6ad84756bc544d143e2c00a

Decrease trigger width by 2 dp for default config

Change-Id: I8236e2ae67516bc6c6eb1808be84323e671ead04

Set mSnapTrigger to false on ACTION_DOWN to prevent snapping if the user touches the bar before scrolling finished

Change-Id: I4ef2d7c3586c897de510de21008b844161955ea4

Show text bubble when the sidebar is first being displayed and when the user touches on an item while the view is still scrolling.

Change-Id: I6c575d53dfdc65360aadb0be0cbcb93192450b28

Prevent sidebar from opening an application if the user immediately lifts their finger upon opening the sidebar.

Change-Id: I6fd9cd6d94aee49098cf1deb9ecde2e5f2f79deb

Add ability to exclude apps from the sidebar [1/2]

Change-Id: Ia4d9b2590a228fd1b8ad95a68919cfd3b062213b

Add a receiver to listen for packages being added and removed so the sidebar can reflect those changes.

Change-Id: I336734060f3064fcc3f60d9f48d4a33308a3f20e

Avoid NPE when mExcludedList is null

Patch Set 2:
  Correct logic

Change-Id: Ibaf9ff6996b514284e52a8adcfb5578f9d072eb0

Make sure mScrollView is not null when calling layoutItems from content observer.

Change-Id: I34e5be733af3166b3a88150bb5c4574f962be436

Use SCROLLBARS_INSIDE_OVERLAY to reduce excess width of sidebar

Change-Id: I07df99f67ee8ad0443e7e471a6f3c7c2f34293de

Delay hiding app sidebar by 500 milliseconds when an app is launched to prevent sidebar from not being visible but still receiving input.

Change-Id: I12f075537b77311158841183eb1df8a8805f87eb

Launch activity using component name so the correct activity gets launched for applications that have multiple activities that can be launched.

Change-Id: Ifb38cd4c7d8d8ba0db709a5e8bd310a7ac8fa16a

Cancel the auto hide timer when mScrollView receives MotionEvent.ACTION_DOWN

Change-Id: Ief41d298b71329eb5d19ac3d4aa1a07920308110

Disregard case when comparing app names for sorting.

Change-Id: Iecd6b295f5fb8f89fb0e4d3e539796199c7089f3

Use a Collator when comparing app names to account for differences based on the user locale.

Change-Id: Ic93ca46140ff21555cb374f1dad1240774567858

New app sidebar with support for folders, custom ordering and support for left/right side [1/2]

Patch Set 4:
  Move sidebar to left side if configured for the right and the device
  is in landscape orientation with the navbar on the right.

Patch Set 5:
  Added option for displaying a visibla tab that will slide out the
  sidebar when the user touches it.

Patch Set 6:
  Check both package and class name when checking for duplicates in
  folders.

Change-Id: Ic77487651a1bcf441260f022053438ccd4d8997d

Adjust @ppbar layout parameters so that it can receive key events when it is visible and intercept the back key to hide the @ppbar when it is pressed.  When the @ppbar is hidden the layout parameters will be restored so that it no longer receives key events.

Change-Id: I0a30f68aea03428bc9580f56fcff469134b30c8d

Add adjustable trigger area for the @ppbar.  Users can define the width, height and Y position of the trigger area.  Only this area will receive touch events. [1/2]

Patch Set 2:
  Make enableKeyEvents and disableKeyEvents return the flags used and
  use reduceToTriggerRegion and expandFromTriggerRegion.

Patch Set 3:
  Use a nicer looking shape drawable for the trigger region when
  visible.

Change-Id: Idcd27bc70d95841ebcbef178a986c77098adfb09

Only add an item if it's container is the @ppbar or a folder id.

Change-Id: I0303657ea1d52926a4d8c937d36d473ee9b1c325

Change container of item removed from folder to CONTAINER_SIDEBAR.

Change-Id: I78ef3dfc1be85d556bdeba2d12880c82cb6724fb

Test Plan: Use app sidebar at different resolutions. Launch apps and shit

Reviewers: michyprima, rlasalle15, randall.rushing, Mustaavalkosta

Differential Revision: http://review.codefirex.com/D87

Conflicts:
	core/java/android/provider/Settings.java
	packages/SystemUI/AndroidManifest.xml
	packages/SystemUI/res/values/config.xml
	packages/SystemUI/res/values/strings.xml
	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java

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

Conflicts:

	packages/SystemUI/res/values/cm_strings.xml
	packages/SystemUI/res/values/colors.xml
	packages/SystemUI/res/values/dimens.xml
	packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
Check that the @ppbar is in the OPENED state when the back button is pressed to prevent starting the closing animation repeatedly.

Change-Id: I0ae801ca9371e8c63dd9b1a8ea642cfab9b7f3d5
Get the window height when laying out the bar so the height of the items can be calculated to best fit that height.

Change-Id: I3c6d4a9859d6a8da8c006006c4d2a5fc7d20e393
AppSidebar: remove view, before recreating it

Change-Id: I212795e428b4f23516c53a0a2eaa860eba371508