On-The-Spot: Add clear all recents button to user preferences.

PS3: Add proper drawable thanks to / by Dani Rosenkamp @DaNi--
     Fix wrong change id (from abandoned commit)
PS4: More logic drawable

Signed-off-by: Carlo Savignano <stevewatersy@gmail.com>
Change-Id: I632730bee6b409072689e07fb1084ceaca5b1d49
AudioService: Fix absolute volume for AVRCP

Avrcp.java uses max volume obtained by getStreamMaxVolume() when
converting to AVRCP levels and it returns non-scaled volume index.
For this reason volume index needs to be dispatched to Avrcp before
scaling as otherwise Avrcp will convert volume level incorrectly,
i.e. max volume index for music stream is 15 and any volume index
>1 (>10 after scaling) will result in setting *MAXIMUM* volume level
on headset which is not safe for listener.

Change-Id: Ia799eec578ed2326ec18b69f2ee4f2a60c664514
SystemUI: Fix Quick Settings appear when disabled

If you tap the clock on the status bar, then the next time you pull down the status bar on the
right side it will show the quick settings. Even if the user disabled quick pulldown.

Bug: https://paranoidandroid.atlassian.net/browse/AOSPA-59

PS2: fixed spacing

Change-Id: Ibb2efd27a96898ff11640c7a58c0686e2fefc75f
Signed-off-by: Parthipan Ramesh <parthipan.ramesh@gmail.com>
Volumes in Settings/Sound is slow to start

There is a delay after pressing volume menu item
there is a delay until the Volume popup is shown.

The reason for this is that the initialization of
the different seekbars is slow and run in the main
thread. More specifically the call to get the
ringtone from the RingtoneManager is causing this
delay.

Moving the call to the ringtone manager to the
handler thread used to play ringtones to make
the launch of the volume dialog a bit snappier.

Change-Id: I76da0226592468debd542d67164b37b2b59897c7
PIE: Disable orientation sensor when we don't need it

Orientation sensor always enabled causing some device keep awake and
battery drain. This commit fix this issue.

  * Disable/Enable orientation listener when screen turn off/on if PIE
is enabled.
  * If PIE is disabled, recycle it.

Change-Id: I6bda168b3fd62d9f7047ffc3a3c6bfd08e655543
SystemUI: Fix Removed USB Storage Notification

If you have connected a OTG USB Storage to your device an disconnect it
the Notification "Removed USB Storage" appears. But you can't swipe it
off, because the Notification intent is set with FLAG_ONGOING_EVENT and
not with FLAG_AUTO_CANCEL!
In my fix I changed the boolean function variable 'dismissable' from
"false" to "true" and so the Notofication will gets the flag
FLAG_AUTO_CANCEL, now the Notification can be swiped off.

Bug: https://paranoidandroid.atlassian.net/browse/AOSPA-191

Change-Id: I01713dbcbc025d0dd2df3e6d4359507e0e31a23f
Signed-off-by: Matthias Freund <matthias88freund@gmail.com>
Merge "On-The-Spot: Add clear all recents button to user preferences." into kitkat
[TEMP] PIE: fix a freezing bug

How to reproduce:
- Enable PIE;
- Toggle between on/of;
- Without close expanded status bar click any tile that use one of this methods -> private void startSettingsActivity(String action) or private void startSettingsActivity(Intent intent);
- System will freez for some seconds and soft reboot;

Solution:
- When deteced PIE mode enabled use a runnable with a less time possible to give time to system colapse panels and perform needed actions

Change-Id: Idc5f112873aa7a31993e7a3c82a1760bb45f8b9b
Merge "[TEMP] PIE: fix a freezing bug" into kitkat
Merge "SystemUI: Fix Removed USB Storage Notification" into kitkat
Merge "SystemUI: Fix Quick Settings appear when disabled" into kitkat
Parallel shutdown

Decrease shutdown time by doing some shutdown tasks in parallel.

There are two threads executing during the shut down: the ShutdownThread
and a separate thread for the radio shutdown. However, the execution is
done in serial, as the ShutdownThread immediately joins on the radio
thread.

This commit will move the shutdown of the radio to the beginning of
shutdown and execute it in parallel to the shutdown of the rest of the
system.

The flow of the two threads during shutdown is now:

Radio Thread
  * Start shutdown of the radio
  * Wait for radio off or time out
  * Notify that the radio is done
ShutdownThread
  * Broadcast ACTION_SHUTDOWN as a parallel broadcast. (The receivers
    will get as much time to handle onReceive as it takes execute the
    rest of the tasks in the shut down flow. If they are not done in
    that time, we don't care.)
  * Shutdown ActivityManager
  * Shutdown MountService
  * Wait for MountService and radio to notify done
  * Vibrate
  * Low level shutdown

Change-Id: Ifdd8a9c75337fd9d00148a0d2b9917e10fa60634
fix WRITE_SETTINGS to be "dangerous"

(see http://www.fireeye.com/blog/technical/2014/04/occupy_your_icons_silently_on_android.html for an explanation why this is dangerous)

Change-Id: I8f938dc4f528aa2ccbca3d4cec235feb0299c0bd
Fix very long app_name crash.

http://ibrahimbalic.com/2014/android-os-memory-corruption-bug/ found an stack overflow bug.
The very long app_name make libandroid_runtime allocate a very large array on stack, the stack may overflow to other data areas in this situation.
This patch allocate large array on heap instead of on stack to avoid segment fault when doing memcpy.

Change-Id: I99999569b852d43a9c7a6eb1fa80e9f1a1f4e2b2
Fix setSurfaceTexture to handle surface caching

Changed the TextureView.setSurfaceTexture to apply the
existing listener to the surface provided in the method.
This is done to allow surface caching to work.
Whenever a new SurfaceTexture gets created, its listener is
created as well, so when the setSurfaceTexture is called
we should be attaching the listener to the new surface.

Change-Id: I4c1a704c587e977ab7a6b1fe3a7d3e0d20d00218
CRs-Fixed: 639136
Merge "PIE: Disable orientation sensor when we don't need it" into kitkat
Merge "fix WRITE_SETTINGS to be "dangerous"" into kitkat
Merge "Fix very long app_name crash." into kitkat
update zh-rCN translation

Change-Id: Ibf7276adf35687d736746298e464a10d7532b1fc
[1/2] Add to support pause/resume download

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.

PS2/3:
* Fix code.

Signed-off-by: Carlo Savignano <stevewatersy@gmail.com>
Change-Id: I606b48ca20f43bcc6c119683818c2ab6ff03bfe5