Background:
mlebeau said: "Cole had complained that the vertical alignment of the
text fields in search_dropdown_item_icons_2line.xml was a little
off. Specifically, when both lines are visible he wanted to see line1
pushed down 2-4 pixels (while keeping line2 in the same position as
now), and when only line1 is visible, he said it needed to be pushed
up 2-4 pixels from current."
Here's how the layout worked before (note that text2 and text1
are in this order in the layout file):
- If text2 is present, it is put at the bottom, with height set by
layout_height (currently 29dip) . - The line2 text is put at the top
of text2 (gravity=top).
- I think the paddingBottom=4dip in text2 has no effect, since the
text is top-aligned anyway.
- text1 is put at the top of the list item. If text2 is present, it
will have height 29dip (58 dip - 29 dip height of text2). It's a bit
weird, layout_height of text1 is completely ignored, but it has to be
set to something. If text2 is missing, it will fill the entire list
item height (58 dip).
- The line1 text is placed 4dip below the vertical center of text1
(4dip because of paddingTop).
Now, instead, text1 has height=wrap_content, and is placed right above
text2, if that's present. If text2 is absent, text1 is centered
vertically in the list item. This should have the desired effect.
If we want to tweak the positioning further in the case where text2
is visible, we can adjust the padding of text1.
* changes:
Add a new API to ListView: setGestures(int). This allows developers to enable gestures to jump inside the list or filter it. This change also introduces a new XML attribute to control this API. It also adds the ability to theme the GestureOverlayView from the gestures library. Finally, this adds a new VERSION header to the binary format used to store the letters for the recognizer.
This adds a new window type that is a surface that sits between the
current media type and the application window, in theory allowing you
to have two surface views in your hierarchy and control their
Z-ordering. There is also another hidden API on SurfaceView to set
the type of your window.
All a big hack, but for the good of the commonwealth!
SQLLite limit is not only used to limit the returned number of data.
It can be used to do an offset query.
For example, "SELECT * FROM table LIMIT 100, 10", will return the
data of index in the range of [100, 100 + 10).
This change set enable this kind of useage.
This is also more efficient than use "cursor.moveToPosition()".
In my experiment, I query 1000 items in batch mode, i.e.,
get 20 items out of 1000 each time.
Time of using LIMIT clause: 626ms
Time of useing "cursor.moveToPosition()": 2062ms
* changes:
Fixes external http://code.google.com/p/android/issues/detail?id=2732. ExpandableListView is wrongly assuming that the saved state if of the correct type. A similar bug fix was made in TextView.onRestoreInstanceState() a while ago. This fix simply ensures that the state received is of the right type.
* changes:
Trigger the LocationManager whenever the SearchDialog is shown (and stop when the SearchDialog is stopped). This way we get a network-based location quickly so that by the time any location- based suggestion provider wants to do suggestions, it's likely to have a good fresh location.
When we moved the media recorder to the media server process, we lost
the permission check that was done at the process boundary in the
AudioRecord binder interface because the AudioRecord object is created
in the same process. This change adds a permission check in the
MediaRecorderClient:setAudioSource() method.
BUG=1868334
Automated import of CL 149136
Some debugging code was added to camera service. Later it was #ifdef'd
out, but this change also removed the camera permission check. This
change puts the permission check back in.
BUG=1869264
Automated import of CL 149133
This change replaces ILocationCollector with a more general mechanism that
passes locations received from a provider to all other providers.
The network location provider now uses this to implement the location collector.
In the future, this could be used to inject network locations to the GPS
as aiding data.
This change also removes the now obsolete permission INSTALL_LOCATION_COLLECTOR.
Signed-off-by: Mike Lockwood <lockwood@android.com>
* changes:
Fix permission hole in camera service. Some debugging code was added to CameraService::onTransact() method during development. Later on the entire onTransact() method was #ifdef'd out, which inadvertently omitted the permissions check code. This change restores the code.
* changes:
Add support to SuggestionsAdapter to query the 'working' status of its underlying cursor and update a spinner in the search dialog accordingly.
(and stop when the SearchDialog is stopped). This way we get a
network-based location quickly so that by the time any location-
based suggestion provider wants to do suggestions, it's likely
to have a good fresh location.
to CameraService::onTransact() method during development. Later on
the entire onTransact() method was #ifdef'd out, which inadvertently
omitted the permissions check code. This change restores the code.
* changes:
Fix permission hole for RECORD_AUDIO created when we moved the MediaRecorder implementation to the mediaserver process. The permission check was previously enforced only at the AudioRecord binder interface for clients not in the same process. This change adds an additional check when the client tries to set the audio source. Bug 1868334
implementation to the mediaserver process. The permission check was previously
enforced only at the AudioRecord binder interface for clients not in the same
process. This change adds an additional check when the client tries to set
the audio source.
Bug 1868334