+ The mDone flag is now a pair of flags: mShouldExit and mExited. The
problem with mDone was that it meant "had been asked to exit", but was
being used by some observers as "had exited". Using two variables means
that observers can observe either "had been asked to exit" or "had exited",
as they prefer.
+ Simplyify where we check for mShouldExit. We now check for it at the
top of our innermost guardedRun while loop.
+ requestExitAndWait now waits for mExited to be set to true to know
that a thread has exited, rather than using join(). This means we can use
wait() for the check, which releases the sGLThreadManager
monitor, avoiding a potential deadlock.
+ move the event queue into the sGLThreadManager monitor. This avoids
having to acquire two locks in order to enque/deque events, which also
avoids the potential for lock ordering deadlocks.
+ Simplify the event dequeueing code. We now deque one event each time
through the main GLSurfaceView loop. Events still have priority over
rendering, so there isn't any semantic change, it just cleans up the code.
+ Avoid trying to acquire an egl Surface if we're paused.
+ To simplify reasoning about the code, call sGLThreadManager.notifyAll()
in every case where we modify one of the variables that's protected by
the sGLThreadManager monitor. It would be slightly more efficient to only
notify when we change variables that could cause a thread to wait(), but
then we would have to redo our analysis every time we change any code.
+ Clean up the logic for creating the EGL surface and then calling the
renderer's onSurfaceCreated / onSurfaceChanged methods.
+ Implement work-around for bug 2263168 "Need to draw twice after
screen rotation..."
Merge commit '59450740c72c8642c25e2fa757754dc32252d1a2' into eclair
* commit '59450740c72c8642c25e2fa757754dc32252d1a2':
docs: update the publishing guide to revise the updating section
Added translation animation where tab "flies" when you release.
Added translation animation where pressing and releasing one tab will hide/show the other
Added alpha animation to make target appear gradually
Added margin around swipe area to allow easier unlocking.
Removed unused handler.
* changes:
Fix a race condition that resulted in the screen coming on without the brightness set to the correct value.
PowerManagerService: Hold a wakelock while mProximityTask is queued
Do not cancel screen brightness animation in forceUserActivityLocked unless screen is turning off.
Also not turn the screen on if PowerManager.preventScreenOn(false) is called while proximity sensor is active.
Fixes b/2254818 (dim display) where due to a race condition the screen is stuck in a dim state.
Change-Id: If6f805609c8d463631b9e22805e5242714ce34c0
Signed-off-by: Mike Lockwood <lockwood@android.com>
This prevents the device from sleeping while a deferred proximity sensor
event is pending.
Fixes b/2260005 (Proximity sensor can fail due to missing wakelock)
Change-Id: Ia4825f548b5b7d8a0b184f720b32c2f21b77b96e
Signed-off-by: Mike Lockwood <lockwood@android.com>
2206097: Broken suggestions while composing message
2166583: Color artifacts with MDP dithering
2261119: Passion transition animations are rough
2216759: Screen flicker when dropdown list in background window shows or hides
This is part of enabling GPU composition instead of using the MDP. This change
is dependent on another change in the vendor project.
Specifically this change disables the use of EGLImageKHR for s/w buffers
for cache coherency reasons. memcpy is used instead.
Surface::validate() could sometimes dereference a null pointer before checking it wasn't null.
This will prevent the application to crash when given bad parameters or used incorrectly.
However, the bug above probably has another cause.
Needed for the fix for b/2260437 (device wakes itself back up when camera is last application running)
Change-Id: I0e419fcf05542df203eb3f127dde7a888416e86d
Signed-off-by: Mike Lockwood <lockwood@android.com>
Add check in getOwnerPhoneNumberVcard(). If the incoming phonenumber is empty,
do not add "TEL" to vcard data.
Original Change by: Yue Lixin
DrNo: Eastham
Bug: 2247067
Merge commit 'dbc7e27ef10349f11ac940d59ff4f812319fce51' into eclair
* commit 'dbc7e27ef10349f11ac940d59ff4f812319fce51':
docs: document the 'showSearchIconAsBadge" flag and
* changes:
Modify the binder to request 1M - 2 pages instead of 1M. The backing store in the kernel requires a guard page, so 1M allocations fragment memory very badly. Subtracting a couple of pages so that they fit in a power of two allows the kernel to make more efficient use of its virtual address space.