On insert(), check to see if the value is redundant by checking if
it's the same value already in our cache (but without faulting it in
to check). If so, avoid hitting sqlite or spamming all the
notification listeners with such uselessness.
This reportedly is happening a fair bit.
Change-Id: If58feb3ff1d00027dd927e0900087388cbcd72ae
This loosens our restriction on many manifest attributes requiring
literal string values, to allow various ones to use values from
resources. This is only allowed if the resource value does not change
from configuration changes, and the restriction is still in place
for attributes that are core to security (requesting permissions) or
market operation (used libraries and features etc).
Change-Id: I4da02f6a5196cb6a7dbcff9ac25403904c42c2c8
When query() uses bulkQuery() and we know we're going to need some
metadata right afterwards (number of rows and column index of _id, if
present), just asked for it in the initial binder transaction instead
of immediately fetching it again.
Also, this defers loading column names until the client asks for them.
This gets down the simpler (and very common) use cases of
ContentProvider.query() down to 3 binder calls:
QUERY_TRANSACTION to android.content.ContentProvider$Transport
GET_CURSOR_WINDOW_TRANSACTION to android.database.CursorToBulkCursorAdaptor
CLOSE_TRANSACTION to android.database.CursorToBulkCursorAdaptor
More can still be done, but this is a good bite-sized first piece.
Change-Id: I7ad45949f53e0097ff18c2478d659f0f36929693
Use new observer before rebooting and shutting down.
Add some unit tests for unmount and shutdown code paths
Fix registering/unregistering part in MountService
Use ShutdownThread in PowerManager.reboot()
Add reboot support to ShutdownThread.
Remove MountService code from PowerManagerService.java and Power.java.
Clean shutdown/reboot is handled exclusively by ShutdownThread now.
Change-Id: Iefb157451d3d9c426cb431707b870a873c09123d
Part 1 of the fix: when the user doesn't elect to use the car dock
for music and media, the APM was not aware of the device being
docked.
This is fixed by dissociating the notification for the APM of
the docking to the dock from the sink state change of the A2DP
device.
Also missing was forcing the volumes to be reevaluated whenever
the device is docked or undocked, as volumes for docks may
differ, even when the same output device is being used.
Change-Id: If5314e27821a71adbd6df6fdf887c45208241d96
When a page is loaded, Flash won't be the touch target.
This is ensured by another CL in external/webkit. When
user taps or uses nav key to make the Flash to be the
document focused node, it will take all the touch
events without time out. If Flash didn't call prevent
default, these touch events will be reprocessed by
the Browser. For double tap and long press, Browser
needs to detect and generate them for Flash.
While Flash is in full screen mode, it will take all
the touch events. If Flash doesn't consume them, they
won't be reprocessed by the Browser. Browser does need
to detect and generate the special events like double
tap and long press for full screen Flash.
Here are changes made for JavaScript touch events.
1. preventDefault on touchMove works now. If the author
calls preventDefault on touchStart, UI will not handle
this touch sequence. If the author didn't call preventDefault
on touchStart, it can call preventDefault on the first
touchMove to prevent UI from panning the page. We
currently do not support alternating preventDefault
during touchMove.
2. The first touchMove is only sent when the movement
is more than the system slop. There was a bug introduced by
https://android-git.corp.google.com/g/#change,42848
where the touch events are not sent to WebCore if
preventDefault is called. This is fixed now.
3. Move sending TOUCH_EVENT to WebCore into each state.
So if user stops a fling and continue drag, it won't
send the touch_down as we are in drag mode.
4. Remove event time as Adobe doesn't need it any more
Fix http://b/issue?id=2438503
Fix http://b/issue?id=2478701
Fix http://b/issue?id=2390587