Improving pie control's user interaction

User feedback showed that it is sometimes difficult to interact
with pie controls. This commit adds some tweaks to how pie
controls react on user touch events.

This changes:
* Pie trigger on LEFT and RIGHT are now more forgiving in the
  initial phase of a swipe. (This should reduce problems when
  trying to activate the pie with a thumb.)
* Pie items are now more sloppy when it comes to focus.

Patch Set #2:
* Removed sloppy focus.

Change-Id: Ib21556ed7f7ff9c6cdbcd1760e94a17c8534706a
Fix DateUtils.formatElapsedTime.

More reuse of StringBuilders, less broken home-grown formatting code.

Long-term, we should hand this over to icu4c, but they're not ready yet.

Bug: http://code.google.com/p/android/issues/detail?id=41401
Bug: 7736688
Change-Id: Ib3c1e1aad05827df646aa18645cce19dffb7551f
Merge "Fix DateUtils.formatElapsedTime." into cm-10.1
Fix potential deadlock between LockScreen and WindowManagerService

If LockScreen is enhanced using SurfaceView/GLSurfaceView,
deadlock problem between LockScreen and WindowManagerService
can occur because of IWindow.resized() callback.
And it must lead to watchdog and reset.

IWindow.resized() callback is one-way function so calling resized()
callback of a remote IWindow object is never blocked.
However, calling resized() callback of a local IWindow object
(LockScreen is running on the same system_server process)
is always blocked until resized() callback returns.
Because resized() callback of SurfaceView/GLSurfaceView can lead to
WindowManagerService.relayoutWindow() call, deadlock can occur
between relayoutWindow() and performLayoutAndPlaceSurfacesLockedInner().
(Both functions need locking mWindowMap)

So this patch simulate one-way call when calling resized() callback
of a local IWindow object.

Change-Id: I2a6a5c74ed22d8e6b7a3bea3424ff2879d227105
Signed-off-by: Sangkyu Lee <sk82.lee@lge.com>
Merge "Improving pie control's user interaction" into cm-10.1
Translation - Separating AOSP and CM strings

Change-Id: I18b8456d2fe74181402c9fa9f6cab8e996434cfc
Changed USB page icon from Android to Cid

Change-Id: I57386c2d555723adad99cafe8ae6d2e8f6fe8cbd
Set QS panel opening to outer 15% of statusbar

Prevent accidental opening of QS panel in stead of notification bar

Change-Id: Ibe5f6504333af2ce124be1efbd463fb56a51c2dd
Option to enable gfx effects (Framework)

Based on original commit by kladd

Change-Id: Icf1ea2dc952ccb9c2e8fafd237e80a671bd467f7
Revert 3 clock related patches

Revert "SystemUI: fix delay in applying am/pm setting for notification clock"
Revert "4.2 Transition: Notification Header datetime click"
Revert "SystemUI: Forward port Statusbar Clock and Date actions"
4.2 Transition: Notification Header datetime click

- Fixes tiny clickable area for much smaller 4.2 date string
- remaps clock behavior:
  - click does open deskclock now - same as clicking clock widgets now does
  - long click jumps directly to alarm setup

Change-Id: Ic4e3f623ef7b6bf4116242b479c681f2866b4c9c
Fix status bar Clock events

Change-Id: I675d92d8f9bb497c9299867f62873d309def4fc4
Add clock styles and Clock color picker

This commit is a combination of CM, AOKP and SlimROMs work

features:

- Clock and date enable/disable
- Clock and date position
- AM/PM styles multilang support
- Fully customizable date in style and format
- Fully dynamic settings
- Fix update am/pm style on statusbar
- Fix statusbar clock click and longclick events
[Framework] Port BatteryBar (2/2)

- Adds Battery bar with following features
- location set
- color
- aligment
- thickness
- animation

- dynamic slim settings

Change-Id: Iacb3e38505b0ab30bb3f9df54231aeb2c79c20f1
framework: add RAM Bar to Recents

Updated version with improvements in calculations and translation
SystemUI: Option to display Quick Settings when there are no ongoing notificaions

Added member function hasClearableNotifications to class
PhoneStatusBar. This function returns true when clearable
notifications are present on the status bar. Also, onTouchEvent in
NotificaionPanelView now flips to Quick Settings if there are no
ongoing notifications, and the QS_QUICK_PULLDOWN is set accordingly.

Change-Id: Ia77f90b19c7b408b7fc9376b6914e3173b734655
Fix Battery bar 2dp and 3dp graphics glitch

and a bit codestlye

cheers

Change-Id: I7e01c351fdfc3e3f5adfaab9eba870a4b022cb47
Frameworks: Optimize more and fixes

Batterybar this time

- unregister observe
- fix another old old glitch in center mode
- code cleanup

cheers

Change-Id: Icddcfe7664b24dfb54ea45c34ce1b179fc368ef2
Pie controls: Introducing a pie delivery service

To make pie controls more reliable, it is neccessary to detect
trigger actions directly from the input stream.
This commit introduces a new system service, that filters all
input events in front of the input dispatcher to detect pie activations.

This commit introduces:
* A new system server local API in the input manager service to register
  secondary input filters. These filters are behind the default
  accessibility filter but before the input event dispatching of
  the android framework.
* A new system service, that binds to the new API to listen for pie
  activation gestures.
* A non-public manager class providing access to the newly created pie
  service.

The service manager name of the service is "pieservice". The non-public
AIDL interface of the service is IPieService.aidl. To register a new
pie activation listener the INJECT_INPUT permission is needed. The
service state can be dumped by the "dumpsys pieservice" command.

Note: This commit only introduces the pie service. There is another
commit, that binds the actual pie controls to the pie service.

Patch Set #1:
* The pie service is currently disabled by default and needs to be
  enabled by device overlays (see config.xml / config_allowPieService).
Patch Set #2:
* Activation fixes
* Debug dump improvements

Change-Id: I6a4a4635bed420e800a3230457ee690131116a11
Pie controls: A new way of activation

Based on "Pie controls: Introducing a pie delivery service" this
commit binds the pie controls to the newly created pie service.

Patch Set #2:
* Fixed glitch when displaying the search panel at the lock
  screen.

Change-Id: I352f198068807694d95699618597d0927da3f324