Merge commit '738b4c000bab8414fa2969db489d7abce20e0af6'
* commit '738b4c000bab8414fa2969db489d7abce20e0af6':
Only dismiss search on suggestion click in in-app search
We now distinguish between in-app search (pivoted in from GlobalSearch)
and real in-app search mode. Only the latter dismisses the search
dialog when a suggestion is clicked. Also, the drop-down
is now always visible except in real in-app search mode.
Fixes http://b/issue?id=2014626
Merge commit 'ef9fd18d90829ecbd37769cc05a8d5288aff821c'
* commit 'ef9fd18d90829ecbd37769cc05a8d5288aff821c':
Fiddle with default densities to try to sanitize the API.
Merge commit '6ddaa3497ce7af2c303771365449501e2be52511'
* commit '6ddaa3497ce7af2c303771365449501e2be52511':
Send max displayed position in search dialog click event
An issue with the density API is that bitmaps assumed the old default density,
so new programs would have to explicitly set the correct density for every bitmap
they create.
This is an attempt to fix that situation, by define the default density of bitmaps
to be the main screen's density, except for old apps where it is the original default
density.
Actually implementing this is not so great, though, because the Bitmap constructors
can't really know anything about who is calling them to know which density to use.
So at this level the compatibility mode is defined per-process -- meaning the initial
package loaded into a process defines the default bitmap density, and everyone else
loaded in later on has to live with that.
In practice this shouldn't be much of a problem, there shouldn't be much mixing of
old vs. new apps in a process. It does mean that, going forward, if a developer is
going to use shared user IDs for this, they will need to make sure either that all of
their apps are in the same compatibility mode, or that their code explicitly sets the
density of bitmaps it receives. This isn't all that great, but I think it is worth
the benefit of allowing people who write modern apps to not have to deal with bitmap
densities.
This change also does some cleanup of the density management (making sure to always
copy over bitmap densities, etc) and adds java docs to explain the various ways
density is set and used by the system.
Merge commit '11ea33471e1a14a8594f0b2cd012d86340dd3bd8'
* commit '11ea33471e1a14a8594f0b2cd012d86340dd3bd8':
Allow for screen density drawables in compatibility mode.
Merge commit '0a4730f8889bd98e272bd5e7e0fedb6a69d33f54'
* commit '0a4730f8889bd98e272bd5e7e0fedb6a69d33f54':
add some more defensiveness to SuggestionsAdapter to avoid system process crashes.
This change allows us to use drawables that match the current screen
density even when being loaded in compatibility mode. In this case,
the bitmap is loaded in the screen density, and the bitmap and
nine-patch drawables take care of accounting for the density difference.
This should be safe for existing applications, for the most part, since
they shouldn't really be pulling the bitmap out of the drawable. For
the small rare chance of them breaking, it worth getting the correct
graphics. Also this will only happen when there is actually a resource
of the matching density, and no existing apps should have resources for
anything besides the default density (though of course all of the
framework resources will be available in the native density).
As part of this, the bitmap density API has been changed to a single
integer provider the DPI unit density.
Bad Things(tm) happen if some of the lifecycle interfaces on IActivityThread are
oneway but others are not [notably, out-of-order method delivery, i.e.
catastrophe]. This change makes the methods added for backup-agent management
oneway like the rest of the API.
use by SearchDialog. SearchDialog wants to be able to say a dropdown should
not always be visible but still let it ignore outside touch when it does
show.
Fixes http://b/1997170
Merge commit '5e21a11f00e3e65f6d7681e2519677329f0a92b2'
* commit '5e21a11f00e3e65f6d7681e2519677329f0a92b2':
Work around StateListDrawable padding in search suggestions
Sometimes when searching, some of the suggestions had no left padding.
The left-hand side icons were flush with the left edge of the screen.
The problems was that setting a StateListDrawable as a background
will always set the padding of a View, because of a problem in
DrawableContainer.
DrawableContainer.DrawableContainerState.getConstantPadding()
will always return a Rect if mVariablePadding is false, which
makes DrawableContainer.getPadding() return true, which
causes View to change the padding.
As a workaround, we use setVariablePadding(true) on the background
that we create.
Fixes http://b/editIssue?id=1984813
Merge commit '7e71fb284d5997bff7e359edc8e1b19cbfb1c9ca'
* commit '7e71fb284d5997bff7e359edc8e1b19cbfb1c9ca':
Don't start search from a dialog if there is no activity associated with
the search manager at that point.
Still works:
- hitting search when a managed dialog of an app is showing will dismiss
the dialog and start in-app search (if it supports it), falling back
on global search
- hitting search when a dialog of an app (not managed by the activity) will
dismiss the dialog and start global search
- hitting search when a system dialog is showing will just dismiss the dialog.
Merge commit '2a1aa6acbba5a3a9142d3e8bd6fe6e19d5fae6be'
* commit '2a1aa6acbba5a3a9142d3e8bd6fe6e19d5fae6be':
Define a broadcast intent for the web search provider changing. Unhide
Merge commit '2acbec4918db4ab6eca32cf427ffd771c9efe35f'
* commit '2acbec4918db4ab6eca32cf427ffd771c9efe35f':
add comment to illuminate why we only dismiss the dialog when launching an intent for in app search
Merge commit '9ff71d38a060476ba19deacf12ddaeef3cbac00d'
* commit '9ff71d38a060476ba19deacf12ddaeef3cbac00d':
whoops, still need to dismiss when launching an intent for in-app search
Now that the search manager service handles hiding (not dismissing) and reshowing it
when the user hits back after launching a result, search manager can't cache
"mShowing". Also noticed a few other minor problems that was hosing the handling
of pause / resume to reshow the dialog, like moving some logic to onHide instead
of onDismiss.
Merge commit 'f32f746b83826303350417ff9937a6f9e5488f24'
* commit 'f32f746b83826303350417ff9937a6f9e5488f24':
Make the SearchDialog's AutoCompleteTextView dropdown respect the
Before, Drawables for cached icons were reused. This is not good,
since they can then share mutable state information. This change
copies all Drawables when getting them from the cache, storing
only the constant state in the cache.
Hopefully fixes http://b/issue?id=1984813
IME again when the user presses right or left from a query-jammed
suggestion to continue editing. Previously we required the user
to press on the text field again in order to get the IME to show.
We accomplish this by factoring out the code to 'ensureImeVisible'
into a separate method and calling that from SearchDialog.
Fixes http://b/1976338
Merge commit '9ce081aa2493dc163a42decfd4e1756b5c55a834'
* commit '9ce081aa2493dc163a42decfd4e1756b5c55a834':
Add ability to delay messages in Filter based on constraint. Use this to delay 500ms for delete keys in the search dialog.
Merge commit 'eb09c6a07abf58b4da2c4baf3800a1f96e3b0731'
* commit 'eb09c6a07abf58b4da2c4baf3800a1f96e3b0731':
Issue #1969025: need api for launching intent as if it were coming from another component