1585 Commits

Author SHA1 Message Date
Jean-Baptiste Queru
1314bdb2b2 am e88fa50b: Merge from open-source gingerbread
* commit 'e88fa50be8d6709ef58b7aeb01c5efa059bcac2e':
  fix failing thread object run
2011-01-30 16:19:59 -08:00
Jean-Baptiste Queru
e88fa50be8 Merge from open-source gingerbread
Change-Id: I56f2ed37187796807fbf0de15274a85164f9432c
2011-01-30 15:30:03 -08:00
Dianne Hackborn
a1f5e82f37 am a30063d8: am 25eb0464: Merge "Normalize output from aapt d"
* commit 'a30063d80c08434ac3c7316f338c6d54110449ab':
  Normalize output from aapt d
2011-01-29 23:04:50 -08:00
Dianne Hackborn
25eb04642c Merge "Normalize output from aapt d" 2011-01-29 22:53:20 -08:00
Ritu Srivastava
2d9299b39d fix failing thread object run
A previously exited Thread object refuses to run again, if the
thread-id of the caller, conincides with the thread-id it previously
used in the worker thread. Hence reset the previously used worker
thread-id to -1 when it exits.

 Signed-off-by: Ritu Srivastava <rsrivast@sta.samsung.com>

Change-Id: I873925c312a43ec8a16392b98cc959042ff6bfd2

Signed-off-by: Madan Ankapura <mankapur@sta.samsung.com>
2011-01-25 21:48:54 -08:00
Mathias Agopian
df8368925a am 239fd805: Merge "fix [3361121] hang in glClear() - device unresponsive, OTA fails (DO NOT MERGE)" into gingerbread
* commit '239fd805ef7c0e4116b0a89e20caaf287e91f017':
  fix [3361121] hang in glClear() - device unresponsive, OTA fails (DO NOT MERGE)
2011-01-25 14:46:40 -08:00
Mathias Agopian
af4fa5d83d am 1955a5c9: Merge "partially fix [3306150] HTML5 video with H/W acceleration blackout (DO NOT MERGE)" into gingerbread
* commit '1955a5c9da421dc89bb1a1dd3d3193159192cde9':
  partially fix [3306150] HTML5 video with H/W acceleration blackout (DO NOT MERGE)
2011-01-25 14:46:35 -08:00
Mathias Agopian
88bccab35c am d3fcd0a1: Merge "minor clean-up. SurfaceFlinger doesn\'t need libpixelflinger.so. (DO NOT MERGE)" into gingerbread
* commit 'd3fcd0a1c923498921107bb44fbc8b24582a170a':
  minor clean-up. SurfaceFlinger doesn't need libpixelflinger.so. (DO NOT MERGE)
2011-01-25 14:46:22 -08:00
Mathias Agopian
21956040a7 fix [3361121] hang in glClear() - device unresponsive, OTA fails (DO NOT MERGE)
Generally we never want to lock a buffer for write access if it is at
the "head" on the surfaceflinger side. The only exception (1) is when
the buffer is not currently in use AND there is at least one queued
buffer -- in which case, SurfaceFlinger will never use said buffer
anymore, because on the next composition around, it will be able to
retire the first queued buffer.

The logic above relies on SurfaceFlinger always retiring
and locking a buffer before composition -- unfortunately this
didn't happen during a screenshot.

This could leave us in a situation where a buffer is locked by the
application for write, and used by SurfaceFlinger for texturing,
causing a hang.

Here, we fix this issue by never assuming the exception (1), it was
intended as an optimization allowing ANativeWindow::lockBuffer() to
return sooner and was justified when most of SF composition was
done in software. The actual buffer locking is now ensured by
gralloc. We could have handled screenshots in a similar way to
a regular composition, but it could have caused glitches on screen,
essentially, taking a screenshot could cause to skip a frame.

now that we removed the notion of a "inUse" buffer in surfaceflinger
a lot of code can be simplified / removed.

noteworthy, the whole concept of "unlockClient" wrt. "compositionComplete"
is also gone.
2011-01-25 14:19:13 -08:00
Mathias Agopian
68d3478860 partially fix [3306150] HTML5 video with H/W acceleration blackout (DO NOT MERGE)
We used to guarantee that a layer in SurfaceFlinger would never be
destroyed before all references (to its ISurface) on the client
side would be released. At some point, this guarantee got
relaxed to allow to free gralloc resources sooner. This last
change was incorrect, because:
- in implementations with reference-counting the gralloc resources
wouldn't be released anyways, until all the mapping were gone
- in implementations without ref counting, the client side
would most likely crash or do something bad
- it also caused the SharedBufferStack slot to be reallocated
to another surface, which could be problematic if the client
continued to use the surface after the window manager destroyed it.

So, we essentially reinstate the guarantee that layers won't be
destroyed until after all references to their ISurface are
released.

NOTE: This doesn't entirely fix 3306150 because there is another
problem there where the Browser continues to use a surface after it
has been destroyed.

also improve SurfaceFlinger 'dumpsys' log

list the purgatory, which shows windows that have been closed,
but for which the client still has references.
2011-01-25 14:19:13 -08:00
Mathias Agopian
728d849fc9 minor clean-up. SurfaceFlinger doesn't need libpixelflinger.so. (DO NOT MERGE)
Change-Id: I1ddbbbec4fa5b2521ef3787bc28efe1bc90d0060
2011-01-25 14:18:15 -08:00
Jeff Brown
c3563eb9e7 am 265cf2e7: Merge "Fix getSwitchState."
* commit '265cf2e76bef9ee369a7d43d567a22a0c39355ef':
  Fix getSwitchState.
2011-01-22 21:32:58 -08:00
Jeff Brown
3d822cda1e Fix getSwitchState.
InputReader::getSwitchState always returns AKEY_STATE_UNKNOWN
because SwitchInputMapper::getSources() returns 0 which cannot
match any source mask including AINPUT_SOURCE_ANY.  As a result
initial lid switch detection is broken.

This change adds a new source constant AINPUT_SOURCE_SWITCH
that indicates that the source has switches.

Change-Id: I5321ecf0ce84f1c2b4535f6c163d3f4dcf9b7a9b
2011-01-19 20:35:47 -08:00
Mathias Agopian
48d1432e27 am a0bafb47: Merge "Use EGL_NATIVE_VISUAL_ID to select EGLConfig" into gingerbread
* commit 'a0bafb471385767f7c9c91efe7fd828b069b2e97':
  Use EGL_NATIVE_VISUAL_ID to select EGLConfig
2011-01-19 11:33:36 -08:00
Mathias Agopian
a0bafb4713 Merge "Use EGL_NATIVE_VISUAL_ID to select EGLConfig" into gingerbread 2011-01-19 11:31:07 -08:00
Jeff Brown
b26c516c03 am 41395459: Merge "Filter virtual keys after touches. (DO NOT MERGE)" into gingerbread
* commit '41395459e676cf9ab4059e08446656f145662c2d':
  Filter virtual keys after touches.  (DO NOT MERGE)
2011-01-18 14:38:27 -08:00
Jeff Brown
41395459e6 Merge "Filter virtual keys after touches. (DO NOT MERGE)" into gingerbread 2011-01-18 14:31:31 -08:00
Mathias Agopian
4707dc73e2 am 72abf01a: Merge "Fix the ISurfaceComposer onTransact switch." into gingerbread
* commit '72abf01a8b6958ac1f86d36302a8462c4f51fd9d':
  Fix the ISurfaceComposer onTransact switch.
2011-01-18 11:26:51 -08:00
Mathias Agopian
22a666a80b Use EGL_NATIVE_VISUAL_ID to select EGLConfig
EGLUtils::selectConfigForPixelFormat() now uses EGL_NATIVE_VISUAL_ID
to select a config with the proper format. this is more robust and
future proof.

Change-Id: Ib85e0974160945d838956b50a3cac4de78618957
2011-01-16 17:57:20 -08:00
Jamie Gennis
58bac9e797 Fix the ISurfaceComposer onTransact switch.
Two of the cases in the ISurfaceComposer onTransact switch statement
were missing 'break' statements at the end, and would fall through to
the next case block. This change adds those break statements.

Change-Id: I6dcc84263d3ea03d94612c667103283846b3dee1
2011-01-16 17:34:07 -08:00
Eric Laurent
48f400c376 am bec4abaa: Merge "Fix issue 3302649." into gingerbread
* commit 'bec4abaa12bf6759f354b54119c5524cf9339e7b':
  Fix issue 3302649.
2011-01-12 13:52:42 -08:00
Jeff Brown
6f71d0fedb Filter virtual keys after touches. (DO NOT MERGE)
Adds a new virtualKeyQuietTimeMillis configuration resource that sets
the duration for which virtual keys will be dropped after recent touches
on screen.  The default value is 0; it is intended to be overridden
per device using a resource overlay.

This change is designed to help in two cases:

1. Swipes from touchscreen into virtual key area.
2. Accidental taps in virtual key area while using on-screen keyboard.

Bug: 3089163
Change-Id: Id6733c83c2e2bc8d9553aa0e5c1fd74b741bec6e
2011-01-11 20:56:04 -08:00
Eric Laurent
730ba19bc8 Fix issue 3302649.
The cause of the problem is that AudioTrack::start() can fail if it is called from a newly created
thread that has the same ID as the AudioTrack callback thread that has just been stopped and not yet exited.
This is possible as the thread ID used by the Thread class is not the TID.

The fix consists in clearing the thread ID before exiting the thread loop.

Change-Id: I66e679665c384403cb3ba2c31746f5de72d5836d
2011-01-04 11:58:04 -08:00
Shachar Shemesh
9872bf4a2d Normalize output from aapt d
Make the output from aapt dump --values resources and aapt dump xmltree normalized, so that it is unambigously displayed
regardless of the content of the strings.

Change-Id: Ia3bff36c4ee1e9a44f474534e154830948beabdf
2011-01-04 20:52:08 +02:00
Jean-Baptiste Queru
6637e30749 am bfb5f596: Merge "Fix for writing empty strings to Parcel::writeString8()"
* commit 'bfb5f5966b36c4960b56f6de10ba261332208db9':
  Fix for writing empty strings to Parcel::writeString8()
2010-12-28 11:39:21 -08:00
Jeff Brown
fa93584a4f am c6f2b3b3: Merge "Fix policy issues when screen is off. (DO NOT MERGE)" into gingerbread
* commit 'c6f2b3b302c06b8b7b81ec7e3a43a7df1813d0e0':
  Fix policy issues when screen is off. (DO NOT MERGE)
2010-12-23 12:43:48 -08:00
Jeff Brown
eb9f7a01b0 Fix policy issues when screen is off. (DO NOT MERGE)
Rewrote interceptKeyBeforeQueueing to make the handling more systematic.
Behavior should be identical except:
- We never pass keys to applications when the screen is off and the keyguard
  is not showing (the proximity sensor turned off the screen).
  Previously we passed all non-wake keys through in this case which
  caused a bug on Crespo where the screen would come back on if a soft key
  was held at the time of power off because the resulting key up event
  would sneak in just before the keyguard was shown.  It would then be
  passed through to the dispatcher which would poke user activity and
  wake up the screen.
- We propagate the key flags when broadcasting media keys which
  ensures that recipients can tell when the key is canceled.
- We ignore endcall or power if canceled (shouldn't happen anyways).

Changed the input dispatcher to not poke user activity for canceled
events since they are synthetic and should not wake the device.

Changed the lock screen so that it does not poke the wake lock when the
grab handle is released.  This fixes a bug where the screen would come
back on immediately if the power went off while the user was holding
one of the grab handles because the sliding tab would receive an up
event after screen turned off and release the grab handles.

Bug: 3144874
Change-Id: Iebb91e10592b4ef2de4b1dd3a2e1e4254aacb697
2010-12-22 16:00:21 -08:00
Pravat Dalbehera
b803c04cda Fix for writing empty strings to Parcel::writeString8()
If writeString8 is called with the following sequence:

 writeString8(String8(""));
 writeString8(String8("TempString"));

Then in the readString8, the 2nd String i.e. "TempString" is not read,
instead an empty string is read.

The bug comes because of the write call for String8("") where there are
no String bytes present. In the write Statement, an extra ‘\0’ is
written. During the Marshalling, Following bytes are written:

1        2         3        4       5   ...
0x0      0x0       0xB      ‘T’     ‘e’  ...

The readString8 function has a check that, if String length is 0, don’t
read anything. So the first byte is read as the length for the first
string. The second byte i.e. ‘\0’ is read as the length for the second
string and hence the second string becomes empty too.

Change-Id: Id7acc0c80ae16e77be4331f1ddf69ea87e758420
2010-12-22 12:57:31 +01:00
Simon Wilson
490db31b85 am 0c8ad64d: Merge "fix [3127755] Launcher is missing anti-aliasing" into gingerbread
* commit '0c8ad64d64b23e2bdd62bc217e327c7e0583784b':
  fix [3127755] Launcher is missing anti-aliasing
2010-12-20 14:11:46 -08:00
Mathias Agopian
f9954c7eab fix [3127755] Launcher is missing anti-aliasing
Enable limited forms of mipmaping when possible.

Change-Id: I39ad90becaa4048844fdbbbcb187333e7d59fc6a
2010-12-15 16:59:55 -08:00
Mathias Agopian
4e345ab7df am a2977c38: Merge changes Ie03796ae,Ide3e980a into gingerbread
* commit 'a2977c383d363e1e88a5b36230b1fa4c312807d2':
  [3171580] SurfaceFlinger Bypass mode. (DO NOT MERGE)
  [3171580] Add transform field to native buffers. (DO NOT MERGE)
2010-12-07 14:22:56 -08:00
Mathias Agopian
48f42f8c3f am 4153bf3a: Merge "[3171580] don\'t automatically log GraphicBuffer allocation failures" into gingerbread
* commit '4153bf3a259624a2f2dc497b77b225a1fb517abc':
  [3171580] don't automatically log GraphicBuffer allocation failures
2010-12-07 14:20:09 -08:00
Mathias Agopian
a2977c383d Merge changes Ie03796ae,Ide3e980a into gingerbread
* changes:
  [3171580] SurfaceFlinger Bypass mode. (DO NOT MERGE)
  [3171580] Add transform field to native buffers. (DO NOT MERGE)
2010-12-07 14:18:56 -08:00
Mathias Agopian
4153bf3a25 Merge "[3171580] don't automatically log GraphicBuffer allocation failures" into gingerbread 2010-12-07 14:17:47 -08:00
James Dong
23b791cd0f am d57fbe88: Fixed a race condition where some recording frames may not be released
* commit 'd57fbe887fabd027e644caeaa2139c863143a786':
  Fixed a race condition where some recording frames may not be released
2010-12-06 15:36:04 -08:00
James Dong
d57fbe887f Fixed a race condition where some recording frames may not be released
bug - 3258924

Change-Id: I4f30d04a713676f5da40e6a7dd861510cc041f9b
2010-12-06 15:05:06 -08:00
Mathias Agopian
48e723a0ee [3171580] Add transform field to native buffers. (DO NOT MERGE)
This field indicate how the content of the buffer
needs to be transformed.

Change-Id: Ide3e980a90599e931406135693231276626adbbb
2010-12-03 17:35:07 -08:00
Mathias Agopian
e869aee382 [3171580] don't automatically log GraphicBuffer allocation failures
some of these failures are not fatal and even expected in some cases
so they should not emit a dump in the log in those cases.

Change-Id: Idcfa252e3bfa9d74e27fe4ad8f8623aa01aa9c5e
2010-12-03 17:33:09 -08:00
Jean-Baptiste Queru
9df7f31359 am f0f6c54b: Merge "frameworks/base: Destroy the overlay even if there is an error"
* commit 'f0f6c54b13831b11bd7a3bd7a01dc49b7505e56e':
  frameworks/base: Destroy the overlay even if there is an error
2010-11-23 11:14:57 -08:00
Naomi Luis
637e3fd523 frameworks/base: Destroy the overlay even if there is an error
Allow the overlay object to be destroyed whenever the destroy is
invoked. Currently the destroy call returns if there is an error
encountered, which results in open data and control channels.

Change-Id: I1f2ef4ebb5fb1dcabf05ab50b5bbf6e5e240a63a
2010-11-22 14:03:18 -08:00
Jeff Brown
bed67e9925 am b27b8c0c: Fix a key repeating bug. (DO NOT MERGE)
* commit 'b27b8c0caf8ff23d10eea655085769f314050427':
  Fix a key repeating bug. (DO NOT MERGE)
2010-11-18 12:36:59 -08:00
Jeff Brown
a4846be127 am bfc1cc2d: Fix stuck keys when released out of order. (DO NOT MERGE)
* commit 'bfc1cc2d1ea85cc754e63b422eb8cef8ae6a3667':
  Fix stuck keys when released out of order. (DO NOT MERGE)
2010-11-18 12:36:50 -08:00
Jeff Brown
b27b8c0caf Fix a key repeating bug. (DO NOT MERGE)
This change fixes a bug in the dispatcher where the window manager
policy would incorrectly receive a key repeat count of 0 in the case
where the key repeat was generated by the hardware or driver.
Long-press on HOME was broken as a result.

Repeating keys could also get stuck down.

Bug: 3159581
Bug: 3208156
Change-Id: I1145487cfcc41a7850dba4cafc63c4a5951ace5b
2010-11-17 19:42:04 -08:00
Jeff Brown
bfc1cc2d1e Fix stuck keys when released out of order. (DO NOT MERGE)
Bug: 3208156
Change-Id: I14e4d54f4912de5e2fabcd8638120623aa2d16e0
2010-11-17 19:17:54 -08:00
Jean-Baptiste Queru
5e0690745a am a15e4886: Merge "Framebuffer: Support variable number of framebuffers in the UI"
* commit 'a15e4886de8f75f3cb137f51743d330414c910e8':
  Framebuffer: Support variable number of framebuffers in the UI
2010-11-17 17:29:48 -08:00
Mathias Agopian
2ab777483c am fe40e9e0: Merge "fix [3148312] Region can access data out of bounds" into gingerbread
* commit 'fe40e9e0ce7b5536be9f9ff0596714a0eb921b1e':
  fix [3148312] Region can access data out of bounds
2010-11-08 13:44:00 -08:00
Mathias Agopian
fe40e9e0ce Merge "fix [3148312] Region can access data out of bounds" into gingerbread 2010-11-08 13:40:40 -08:00
Rodrigo Obregon
84043438cf Framebuffer: Support variable number of framebuffers in the UI
This change defines a macro NUM_FRAME_BUFFERS to set
the desired number of framebuffers to be used by the UI,
instead of hard-coding 2 framebuffers.

Aditional logic has been  added to handle the initialization
and destruction of NUM_FRAME_BUFFERS buffers.

Change-Id: I3a4bfec3e0f453432f2ffebf084c00f574d3be46
Signed-off-by: Rodrigo Obregon <robregon@ti.com>
2010-11-03 15:16:18 -05:00
Jeff Brown
7ab5d2d951 am a87ea46c: Fix bugs related to cheek event suppression.
* commit 'a87ea46cb023763e0a9b0222da20b0a354f79d8d':
  Fix bugs related to cheek event suppression.
2010-11-01 21:02:05 -07:00
Jeff Brown
a87ea46cb0 Fix bugs related to cheek event suppression.
Two issues:

1. First, due to an inverted conditional in the input dispatcher, we were
   reporting touches as long touches and vice-versa to the power manager.

2. Power manager user activity cheek event suppression also suppresses touch
   events (but not long touch or up events).  As a result, if cheek event
   suppression was enabled, touches would not poke the user activity timer.
   However due to the above logic inversion, this actually affected long
   touches.  Net result, if cheek suppression was enabled in the power manager
   and you held your thumb on the screen long enough, the phone would
   go to sleep!

Cheek event suppression is commonly turned on when making a phone call.
Interestingly, it does not seem to get turned off afterward...

This change fixes the logic inversion and exempts touches from the cheek
suppression.  The reason we do the latter is because the old behavior
was actually harmful in other ways too: a touch down would be suppressed
but not a long touch or the touch up.  This would cause bizarre behavior
if you touched the screen while it was dimmed.  Instead of brightening
immediately, it would brighten either when you lifted your finger or
300ms later, whichever came first.

Bug: 3154895
Change-Id: Ied9ccec6718fbe86506322ff47a4e3eb58f81834
2010-11-01 20:51:58 -07:00