Several functions operate on variables to which access needs to be
synchronized. However, it happens that the functions in question
are only ever called from places which have already synchronized.
Therefore, nothing is really wrong, but the functions ought to
have 'Locked' appended to their names, to indicate that it is the
caller's responsibility to synchronize before calling them.
Change-Id: I44e7dc0dff6da9436677cb10908dce41ffeba195
There exists a race condition when starting a process that recently has died.
If the ActivityManager receives the death notification for the died process
after the new process has been started but before an application thread has
been attached to the new process will the newly created process be removed
during the cleanup of the died process. If this happens when sending a broadcast
could it result in an ANR.
This is solved by doing the clean up before starting a new process that uses
the same process record.
Fixes a memory leak when input methods are switched. Uses a variety of methods
to avoid holding a reference to the InputMethodService which created the binders,
which was leaking those InputMethodServices.
See http://code.google.com/p/android/issues/detail?id=6661 for reproduction steps.
This is a new implementation of TTY support.
Previous implementation in commit aead64def1fe58c95c086a0ca00cf0b13fa32ef1 is reverted.
The new method does not rely any more on the kernel headset driver to send a UEvent containing
current TTY mode.
when injecting a Key, Pointer and Trackball events into the UI across
applications, the corresponding methods throw SecurityException with
incorrect permission message.
INJECT EVENT permission should be INJECT_EVENTS
Merge commit '08be55b8ea917a5273c135a7bdc73e41c8524c05' into eclair-plus-aosp
* commit '08be55b8ea917a5273c135a7bdc73e41c8524c05':
Add null checks when scanning a package.
Handle TTY mode change events received by HeadsetObserver and send information down to AudioHardware with AudioManager.setParameters()
Use setting "tty_mode_uses_heaset_events" in core config.xml to indicate if the product uses this particular
method of indicating the TTY mode change.
Merge commit 'cc4b4016e4b86db012f94bb889e5ca61ff362171' into eclair-plus-aosp
* commit 'cc4b4016e4b86db012f94bb889e5ca61ff362171':
Fix the reporting of NO_CONNECTIVITY.
A refactoring of handleDisconnect instroduced a bug - we were reporting
NO_CONNECTIVITY after any non-primary network (supl, mms, hipri) was lost.
bug:2395006
Change-Id: Ifa9e008872ec646981a35f2c316120cb9685a6a4
Merge commit '5381e4ef4ef1a05b25fa39ff942f4a95e0ae4750' into eclair-plus-aosp
* commit '5381e4ef4ef1a05b25fa39ff942f4a95e0ae4750':
Refine fix I53e91db7 to apply only to wifi network
The original fix eliminated duplicate wifi connectivity changes stemming from
location provder scan's for APs. These would generate two DISCONNECTED broadcasts every
two minutes and many apps mis-interpreted them.
The fix was to ignore notifications where the major state was the same as the previous one
for each network. Unfortunately the state of per-apn notifications on cellular is hacky
and so the wifi fix was breaking mms (mms when you're on cellular with a common default+mms apn does
not generate a disconnect notification (apn still connected) so subsequent connect notifications
get dropped as duplicates).
This change refines the previous change so that it only applies to wifi networks.
bug:2392061
Change-Id: I05d8a46a4b55f8d28df8af12e05284e5e68bfc02
drno: ryanpc
Merge commit 'a59551bade6a7b0c916c277f044de79c6af1bd22' into eclair-plus-aosp
* commit 'a59551bade6a7b0c916c277f044de79c6af1bd22':
Fix issue 2388215: Audio not routed to 3.5mm Headset after removal/insertion.
The problem occurs if the delay between the headset removal and insertion is less than one second.
In this case, as the headset disconnection intent is broadcast with a 1 second delay to allow music to pause
before updating the route, the connection intent is broadcast before and is ignored, leaving the system
in a state where the headset is considered disconnected.
The fix consists in inserting a delay before broadcasting the connection intent if a disconnection
intent is pending broadcast.
Merge commit '9fdf82e080ea20086378e751ace245a4a1b022dc' into eclair-plus-aosp
* commit '9fdf82e080ea20086378e751ace245a4a1b022dc':
Try to switch to another default net on connection failure.
This shouldn't be required, but there seems to be something odd going on
in wifi and it doesn't hurt to try other available options. Makes a
connection failure case work like a disconnected case.
bug: 2378462
Merge commit '48ef378d01b3ace349cbb6ba564276b854d872c9' into eclair-plus-aosp
* commit '48ef378d01b3ace349cbb6ba564276b854d872c9':
DO NOT MERGE Avoid wifi disable in a UNKNOWN state
Merge commit '1a337547d5377c57dbb10a24d4d73ad6bda829ea' into eclair-plus-aosp
* commit '1a337547d5377c57dbb10a24d4d73ad6bda829ea':
Add bugreport info about network feature use. DO NOT MERGE
Backported from master change Ib9285359.
We've had a couple bug reports showing the effects of a left-live feature request.
We need a bit more bugreport-time logging.
bug: 2323226
bug: 2377507
change-id: I296b2887101c260aea678bf6db91144535cbad7e
Merge commit 'b1c4a2a3b37fccf68e6a9563cccf1685df2bf3e7' into eclair-plus-aosp
* commit 'b1c4a2a3b37fccf68e6a9563cccf1685df2bf3e7':
Fix issue #2364506: Phone locked up while listening to music and attempting to download an update
Backport of MR2 change 421c72b6.
Removes entries sooner. A bug.
Doesn't add one for phone process at all. This was intended to be removed long ago.
bug: 2329900
bug: 2377507
Prevents sending out ConnectivityManager broadcasts when the connection
is repeating the same major state. This means continued wifi scanning
does not generate CM broadcasts (though wifi state broadcasts continue).
bug: 2265222
Dr No approval: jsh
Merge commit 'c93c70c4b849d31ff1b5e5cf2fb9462fd60e5da0' into eclair-plus-aosp
* commit 'c93c70c4b849d31ff1b5e5cf2fb9462fd60e5da0':
framework: storage: Ensure that filesystems are unmounted before shutdown/reboot
Merge commit '3fb4ee4e03351078ceadf3d8dd05789ae152e8dd' into eclair-plus-aosp
* commit '3fb4ee4e03351078ceadf3d8dd05789ae152e8dd':
Immediately close the shade when the status bar is disabled. (DO NOT MERGE)
This provides a quick fix for http://b/2298803 (if the
in-call UI comes up while the user is holding the
windowshade, the shade sticks in place and the display
becomes unresponsive).
Merged from master (I92a824fe).
TODO: safely restore code to animate the shade closed rather
than simply causing it to disappear.
Change-Id: I53dc76fdfe86636f30f37a223a88d27a5766d3eb
Merge commit '558947c9899627067d632e8a6365f77a35f433e1' into eclair-plus-aosp
* commit '558947c9899627067d632e8a6365f77a35f433e1':
Issue #2335763: Cant dial emergency number on my device
This may fix the issue, but we have no repro steps so no way to
make sure.
What appeared to be going on was that the emergency dialer was
created, but still had the starting preview window above it. We
were stuck in this state because the preview window didn't have
the "hide lock screen" flag set, so the lock screen would never
be removed, and thus we would never take care of finishing the
show of the emergency dialer (because it was not visible) and
thus not remove the starting window.
The solution here is to simply propagate the lock flags up to the
starting window.
Change-Id: I6da9f6494537f0661d9d230664ebf745c293ea7d
The problem is due to spurious headset connection indications received from event observer when a 3.5mm headset w/o mic is connected.
In this particular case, The HeadsetObserver first received a valid indication of headset with mic connection, followed by a headset with mic disconnection and finally a headset w/o mic connection.
The HeadsetObserver delays the headset disconnection intent to leave time to music app to pause music before the output path is switched.
As the last headset w/o mic connection indication is received from the event observer before the intent corresponding to the spurious headset with mic disconnection is broadcast, the later is discarded. Results a state where the headset with mic is always considered as connected.
The fix consists in not canceling pending intents when a new headset state is received and carrying the HeadsetObserver state with the delayed message triggering the broacast of the disconnection intent.
Merge commit '9b52a2184e99565bcd7f77effb321c95a2a4837e' into eclair-plus-aosp
* commit '9b52a2184e99565bcd7f77effb321c95a2a4837e':
Fix#2269582 Sometimes camera preview screen is truncated
There were a few places in the window manager where we wouldn't cause
a layout after making a window visible. This would leave it using
whatever size and position it last have since we don't layout windows
when they are not visible.
Also includes a little part I missed in the security issue that
allowed wallpapers to see input on the lock screen.
Change-Id: Icd7e037ad9a67ac936bc7039d87ed68f49502d73
Make sure the application is always given the most recent configuration
when launcher. Use the current configuration, instead of whatever happens
to be set by the app, for reporting what it was launched with.
Change-Id: I2ffe306f56cc9092b640546dd0a28d2c29b9c0b3