It is not safe to call into vold with a lock held on mVolumeStates
since we will receive events back from vold on a different thread.
So in the boot completed handler we make a copy of the volume list and
then call vold to mount volumes after releasing the lock
Change-Id: Iaadfb1b8be5567c8e228a8fbc69d4d483c8dc987
Signed-off-by: Mike Lockwood <lockwood@android.com>
* commit '75c664582c5ce5d94826f37cb725b447a4d62c50':
Backporting I57c58c4083bd59f45095c184d6ca5a302f79ff6e to HC-MR1. New change since file was renamed, making cherry-pick impossible.
* commit '8325c3a89197e47cfc2eeb4117c927fb8cb91630':
Backporting I57c58c4083bd59f45095c184d6ca5a302f79ff6e to HC-MR1. New change since file was renamed, making cherry-pick impossible.
Sometimes the virtual keyboard was not hidden when switching between
applications. An example of this was when launching the browser from
the Google Search widget:
1) Tap the Google Search widget and enter some text, e.g. "google"
2) Select one search items, e.g. "google maps"
3) Browser opens. Press back button.
4) Select an item again, e.g. "google maps" - Keyboard does not
close.
When switching application, the virtual keyboard needs to find a new
Z position (window index) among the other windows. Normally it is
placed on top of the first window that is visible and can get focus
(canBeImeTarget()).
With a new application being launched, there is
an exception: a special "starting window" is placed on top of the
Activity window while the application is starting up. Since this
window should not get input, we need to look below that window.
When doing this, the previous implementation assumed that the
first window below always was focusable. If it wasn't, the
input method was placed above the "starting window", which
caused confusion that led to the keyboard not being closed
automatically.
In the case of the Browser, it sometimes has a "fake TitleBar"
window that can not get focus and that is placed above the
Activity window.
With this fix, we now keep looking through the windows below
the "starting window" until we find a window that can receive
input.
Change-Id: I1117846eb0f57603e64329bd955e28182f98f226
A race condition when mounting a container in PackageHelper may cause
the system_server to crash (uncaught exception). Calling methods are
prepared to handle null, so return null instead.
Change-Id: I852ee21a2d847e37d81c1b900c27ddf94ef24fcb
When user uncheck "Data Enabled" check box, WiMAX goes
into "disconnected" state.
Change-Id: I3b9bdbc16cc4ddbf7a1aac0c984cad8994c4e9f2
Signed-off-by: TK MUN <tk.mun@samsung.com>
Handle the case where the kernel driver is in accessory mode but we failed
to initialize it at the framework level. On disconnnect, check to see if the
accessory kernel driver is enabled rather than checking mCurrentAccessory.
That way we will restore the USB state in the kernel even if mCurrentAccessory
is null.
Change-Id: I2c4f6edb34aae2064f4b62ec0461d1fdd8770541
Signed-off-by: Mike Lockwood <lockwood@android.com>
Handle the case where the kernel driver is in accessory mode but we failed
to initialize it at the framework level. On disconnnect, check to see if the
accessory kernel driver is enabled rather than checking mCurrentAccessory.
That way we will restore the USB state in the kernel even if mCurrentAccessory
is null.
Change-Id: I35d458f21a8b21611946da523d0f53723cab0540
Signed-off-by: Mike Lockwood <lockwood@android.com>
If original refuses to tear down, tear down new one. It's better
to have none (which will try to launch them all again) than two.
Really people shouldn't refuse the teardown request.
bug:4183397
Change-Id: I54ea1bf0d2cd2ef16fcf2eafc69895ad2fe33ffd