Previously the orientation was wrong after suspend and resume.
When the camera app is resumed behide the lock screen, it
orinteation is portrait. When users slide to unlock the screen,
surfaceChanged is called and the orientation is landscape.
The camera app stops the preview, sets the display orientation,
and starts the preview. Overlay should be destroyed if the
orientation has changed.
bug:3031640
Change-Id: I38b527f9ea78c91b538463292152c023383b4695
When a user action starts a new edge glow (on pull or absorb), cause
the edge glow on the opposite side to decay.
Fixes b/ star 3028395 Yellow color bar is displayed when user reaches the end of the message and keeps scrolling in Gmail.
Change-Id: Id06e00d1843b0467f6f9149c22b233e639fc55ac
The specific criteria for low-latency audio are defined in the CDD, but since
that hasn't yet been settled for Gingerbread, this change doesn't go into
details. We can do a docs change later once GB CDD is final.
Change-Id: Ic5ad9d04e8ecd78c81b6f09439affec6bf8cb9b2
Makes importer import contcats into an appropriate group.
Without this logic, all imported contacts are stored in
"Other Groups".
This logic is removed in my previous submit, while
it shouldn't be.
Bug: 3036599
Change-Id: Ic1dc7253d807fbde4352afe2082984c3b7227267
FileOutputStream writes data one byte at a time, so use the
BufferedOutputStream to wrap it and write once all the XML serialization
is done.
Change-Id: I419a6fcac2ac9a72a6cf41d4ca6e7ab6c7505618
Added null check in computeBitmapSize() to avoid unhandled
exception "java.lang.NullPointerException" at
android.graphics.Rect.<init>(Rect.java:72).
This problem was discovered in the wild.
Change-Id: I9d40629a052f1390e1811288af6209d8cc3f679b
When starting a broadcast, the ActivityManagerService posts a delayed
BROADCAST_TIMEOUT_MSG to handle timeouts. If a premature timeout occurs,
we post a new BROADCAST_TIMEOUT_MSG to extend the timeout time for the
current receiver. However, if the current receiver does timeout, the
message is consumed and no replacement is ever posted.
To fix the dropped timeouts, we track whether we have a pending broadcast
timeout message and setup a new one when we begin working on the next receiver.
As a last resort, performNextBroadcast contains code to detect whether
a broadcast appears to be hung (timeout handling failed). If so, it
calls broadcastTimeout to cause it to timeout immediately.
However, performNextBroadcast is holding on to the ActivityManagerService
lock while doing this but broadcastTimout expected to be called
while the lock was not held since after updating the broadcast record state,
it calls appNotResponding.
To fix the unintentended lock reentrance, changed broadcastTimeout to
assume the lock is already held (and the callers ensure this) then
added code to perform the ANR asynchronously.
Renamed a few methods to add "Locked" suffixes where appropriate and added
a few comments for tricky areas uncovered during review.
Change-Id: I3cb5b06d6b6a4a338f32c0998db721f6acf3b082
AudioEffect::command() should not interpret the status
returned in pReplyData unless the command is ENABLE or
DISABLE.
Also fixed:
- bug in Visualizer::getWAveForm() status reporting.
- wrong initialization value for capture buffer in visualizer engine.
Change-Id: I60fb0011f9dba96ee74661dec1e8ef441edcaf35
screenshots are taken using ISurfaceComposer::captureScreen() which returns
the size of the screenshot and an IMemoryHeap containing the data.
screenshots have limitations:
- they will always fail if a secure window is up on screen
- require GL_OES_framebuffer_object extension
- in some situation, video planes won't been captured
Change-Id: I741c68a2d2984fb139039301c3349e6780e2cd58
There is a problem in AudioEffect and Visualizer native_setup() methods
that causes a crash in the application after the mediaserver process
has crashed and restarted.
The problem is that the native AudioEffect/Visualizer constructor is
called while the JNI is in critical state after calling
GetPrimitiveArrayCritical(). As the mediaserver process just restarted, the
first call to AudioSystem will cause the binder IAudioflinger interface to
be reteived and a callback send to AudioSystem JNI to clear the mediaserver
error state. This will call env->FindClass() and crash due to the JNI being
in critical state.
Also fixed a similar problem in AudioTrack JNI
Change-Id: I4a9026a3e26c7f78d9b4b4bec1aac90fbee2ab62
- New feature to "am monitor" to have it automatically launch
gdbserv for you when a crash/ANR happens, and tell you how to
run the client.
- Update dumpstate to match new location of binder debug logs
- Various commented out logs that are being used to track down
issues.
Change-Id: Ia5dd0cd2df983a1fc6be697642a4590aa02a26a5
Don't be tricky when trying to set the seed for the secure
random number generator. Setting the seed manually eliminates
the internal randomization the SecureRandom class does automatically,
reducing randomness. Just use the default seed, which is designed
to be safe.
Change-Id: I5747c2b3a10cf04e33d2202195951ed5cb82b2fe
The new class provides static variables for creating an intent to broadcast to
applications implementing the alarm clock. A new permission has been added and
applications are recommended to require this permission if accepting the set
alarm broadcast.
Change-Id: I7b1014acdc54371cbda19bcf9b5c395b647aa413
Removed a cross deadlock condition between audioflinger and audio policy
service mutexes.
Audioflinger::createEffect() locks audioflinger mutex and then calls
AudioSystem::getOutputForEffect() which ends up in
AudioPolicyService::getOutputForEffect() which locks audio policy service
mutex. If at the same time, the command thread in audio policy service is
processing a command(set volume, set route...), the mutex is locked and the
command will call one audioflinger method which in turn will attempt to
lock audioflinger mutex.
The fix consists in releasing audioflinger mutex before calling
getOutputForEffect().
Change-Id: Id44e7feb36e0a295731f6aa97cf32d022edd34d0
Since we switched to seeking to the LFH to verify its existence instead
of a huge mmap of the file, we have to guarantee that another seek
doesn't happen before we finish our read on the LFH.
Change-Id: If8135d9cb6f2f5cc4db734eafa4f6b5f6269c62a