Fix for "volume buttons change two volume steps per click" bug

This bug happens on all devices since CM9 or CM10 times.

To reproduce:
1) disable Settings/Buttons/Playback control
2) start music playback
3) turn off display
4) click on the volume buttons

When "Playback control" is enabled, the volume changes on the button up
event of short clicks only. When it is disabled, it changes on both
button down and up events. This fix cleans up the code and makes the
volume change only on button down when "Playback control" is disabled.

JIRA: CYAN-3202
Change-Id: If97218e35a8204ef602155f22b7eaaa5e13fb93c
Signed-off-by: Chet Kener <Cl3Kener@gmail.com>

Conflicts:
	policy/src/com/android/internal/policy/impl/PhoneWindowManager.java

Signed-off-by: Chet Kener <Cl3Kener@gmail.com>
Remove hard-coded DrawSelectorOnTop on ListFragment's default ListView.

When using the default layout of a ListFragment, the
returned ListView has its DrawSelectorOnTop property
hard-coded to false.
There is no reason for this, as this property is themable.
This change removes the hard-coded attribute.

Change-Id: Idc90fd04680c19d3731b30d84764858a28783864
Signed-off-by: Benoit Lubek <bodlulu@gmail.com>
Signed-off-by: Chet Kener <Cl3Kener@gmail.com>
Ensure to add Persistent Apps to LruProcess List on app restart

This change will ensure to add Persistent Apps to mLruProcesses
if not already present while restarting.Previously, on some
occasions, the process was not getting added to the list
resulting in SecurityException as this process was not found
in the mLruProcesses.

Change-Id: I26813a794e01aae316dffd3cf2bb38ab66ac69a9
Signed-off-by: Chet Kener <Cl3Kener@gmail.com>
[ActivityManager] Prevent coredump file may not complete for testing.

Sympton:
During testing, skip kill native crash process manually because it will continue to die by default.

Root Cause:
Large process may take some time to do coredump.In auto test, crash process will be killed immediately that results incomplete coredump file.

Solution:
If the tester (IActivityController) will handle app crash event,
Do not kill native crashed process if the rom is debuggable.

Change-Id: Ia360af147d694125d440e5ba2f958c4759a50494
Signed-off-by: Chet Kener <Cl3Kener@gmail.com>
Fix a bug that the RecentTask list of other’s may show up to non-primary users.

When switching to a newly created user, the user may face this bug when he opens the RecentTask screen.
A possible bug scenario is described as follows:
A user id of a removed user may be recycled when created a new user.
However, mRecentTasks is not correctly controlled so that old information may still remain and be possibly mapped to wrong user.
This patch prevents this bug by explicitly removing old information in mRecentTasks when removing existing user.

Change-Id: I1874dbd604598a5d740ae1e034981e21214c15c6
Signed-off-by: Eunae Kim <eunae.kim@lge.com>
Signed-off-by: Chet Kener <Cl3Kener@gmail.com>
[View] Clear Hardware-Layers before system destroys HardwareRenderer​.

Symptom: Sometimes HardwareLayer display is corrupted.

Root Cause: In some cases, ViewRootImpl destroys HardwareRenderer​ without
clearing HardwareLayers in the view hirarchy. If the system trims memory fully
and kill the glContext at the same time, HardwareLayer may corrupt.

Solution: Clear Hardware-Layers before system destroys HardwareRenderer​.

Reproduce steps: Modify the cache's trim memory mechanism to make it easier to
trim fully, HardwareLayers implemented in app will easily be corrupted.
Modification of the cache is not required but make it easier to reproduce.

Change-Id: If57c802cdacf8dc37cbbcc199e74f9482834f981
Signed-off-by: Chet Kener <Cl3Kener@gmail.com>
IndexOutOfBoundsException observed in ProcessStats

Sometime, IndexOutOfBoundsException is observed in ProcessStats
while allocating longs array. This could be due to synchronization.
This fix will return if array index is >= size.

Change-Id: Icd81d84607ca28c5f1b0f9a05e255037252239fd
CRs-Fixed: 638977
Signed-off-by: Chet Kener <Cl3Kener@gmail.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
Signed-off-by: Chet Kener <Cl3Kener@gmail.com>
Allow subclasses to override bindPreferences().

Allows them to modify adapter behaviour.

Change-Id: I6767e3988740b674fbdf40a903cd2ef3949ca7db
Signed-off-by: Chet Kener <Cl3Kener@gmail.com>
MountService: Check for null pointer when looking for vold code

* There is actually no code path that will set an event into
  NativeDaemonConnectorException, so any reference to the event code
  will result in a null pointer exception, taking down MountService and
  the rest of the system with it.

Change-Id: Id62f724953aacc363b3455584c6a3ad1381c6138
Signed-off-by: Chet Kener <Cl3Kener@gmail.com>
MtpDatabase JNI: Fixed a memory-leak in getObjectPropertyValue().

The jstring "stringValue" was not never freed.
In the case where "str" was NULL the whole cleanup part (see "goto out")
was even skipped.
This patch makes getObjectPropertyValue() behave like
getObjectPropertyList().

Change-Id: I5a7ec3611036f5253a054b00064999bcd1d1c29e
Signed-off-by: Chet Kener <Cl3Kener@gmail.com>
AppWidget: Make widget update quickly

Can't display the Power control widget after power on DUT for
3 mins. Because of the  update intent is received after power
on DUT for 3 mins.

Set the intent to foregound

CRs-Fixed: 707605

Change-Id: I5418c84a7dc79466be7a30bb3672ea41976badb0
Signed-off-by: Chet Kener <Cl3Kener@gmail.com>
Fixing memory leak in RenderBufferCache

In our devices with higher resolution we have observed a memory
leak in the HWUI code. When there is GC or tree modification
and buffer size is greater than the default size, we make sure
buffer is deleted.

Change-Id: Idf7052ccaf43c8a784ce0e7bdab336dca29bffd8
Signed-off-by: Samsung <aosp@samsung.com>
Signed-off-by: Chet Kener <Cl3Kener@gmail.com>
frameworks/base: Fix delay in sending AUDIO_BECOMING_NOISY intent

AUDIO_BECOMING_NOISY intent is sent as background intent which causes
delay in receiving pause event. This delay caused audio leak. By
marking the event as FLAG_RECEIVER_FOREGROUND, this intent is
received sooner by Application.

Change-Id: Ib978cf8322dcddbc01f59824f95fa7800f9c35af
CRs-Fixed: 652549
Signed-off-by: Chet Kener <Cl3Kener@gmail.com>
AudioService: Fix monitorRotation for landscape applications

Current implmntation only sends rotation updates on orientation
changes, so does not handle direct 0<->180 or 90<->270 transitions.

Update rotation based on an OrientationEventListener instead of
Intent.ACTION_CONFIGURATION_CHANGED

Bug 17606902

Change-Id: I01dfcd1c587f5b2e8a96365c2389782ad77936ef
Signed-off-by: Chet Kener <Cl3Kener@gmail.com>