Commit Graph

200 Commits

Author SHA1 Message Date
Mike LeBeau
d4760d77e7 Add new hidden API setForceIgnoreOutsideTouch to AutoCompleteTextView for
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
2009-07-22 15:19:59 -07:00
Android (Google) Code Review
0b1a255f73 Merge change 8228 into donut
* changes:
  Remove background padding workaround from SuggestionsAdapter
2009-07-22 13:31:20 -07:00
Bjorn Bringert
6aaeba20d2 Remove background padding workaround from SuggestionsAdapter
Romain has checked in a framework fix,
https://android-git.corp.google.com/g/8218
so the workaround added in
https://android-git.corp.google.com/g/8209
is no longer needed.

Fixes http://b/issue?id=1996635
2009-07-22 21:26:29 +01:00
Android (Google) Code Review
e94b28773d Merge change 8186 into donut
* changes:
  Move global search intent launching to search dialog
2009-07-22 12:14:58 -07:00
Bjorn Bringert
8051172a28 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
2009-07-22 19:13:39 +01:00
Bjorn Bringert
4899e386ff Move global search intent launching to search dialog
Fixes http://b/issue?id=1969032
2009-07-22 18:36:22 +01:00
Karl Rosaen
ec0a12cf19 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.
2009-07-21 16:21:32 -07:00
Mike LeBeau
d4fb7a0d90 Define a broadcast intent for the web search provider changing. Unhide
the broadcast intent for searchables changing.
2009-07-20 17:37:38 -07:00
Mike LeBeau
131234c6f1 Unhide new SearchManager APIs for Donut. 2009-07-20 17:14:16 -07:00
Karl Rosaen
5d22f9bbee add comment to illuminate why we only dismiss the dialog when launching an intent for in app search 2009-07-20 14:34:16 -07:00
Karl Rosaen
876627d8c5 whoops, still need to dismiss when launching an intent for in-app search 2009-07-20 14:30:55 -07:00
Karl Rosaen
ea52d29bc4 Fix back key handling for search dialog.
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.
2009-07-20 14:08:24 -07:00
Dianne Hackborn
a53b828635 Add "nodpi" density, and expose a bunch of density-related APIs.
Also update the DpiTest app to use nodpi images, and try to have a mode
where it turns off compatibility though it's not quite working.
2009-07-17 16:59:08 -07:00
Bjorn Bringert
dfefa3e915 Copy cached drawables in search dialog.
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
2009-07-17 17:22:44 +01:00
Mike LeBeau
ffe3ecf2b1 Make the SearchDialog's AutoCompleteTextView dropdown respect the
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
2009-07-16 19:51:48 -07:00
Android (Google) Code Review
9ce081aa24 Merge change 7551 into donut
* changes:
  Add ability to delay messages in Filter based on constraint.  Use this to delay 500ms for delete keys in the search dialog.
2009-07-16 14:41:10 -07:00
Karl Rosaen
8bf92e003d Add ability to delay messages in Filter based on constraint. Use this to delay 500ms for delete keys in the search dialog.
Holding down delete is nice and zippy in the browser now :)
2009-07-16 14:14:08 -07:00
Dianne Hackborn
2d91af0608 Issue #1969025: need api for launching intent as if it were coming from another component
And now there is.
2009-07-16 13:34:33 -07:00
Android (Google) Code Review
8e3c3f6461 Merge change 7514 into donut
* changes:
  Only parse search suggestions that look like HTML
2009-07-16 06:32:52 -07:00
Bjorn Bringert
84ee74335f Only parse search suggestions that look like HTML
HTML parsing of search suggestions is still a major
CPU hog in the search dialog. This change first
checks if the text contains any HTML markup
(by looking for < and &) before bothering to
treat it as HTML.
2009-07-16 14:31:00 +01:00
Android (Google) Code Review
5380aa2947 Merge change 7512 into donut
* changes:
  Get rid of drawing hacks for search dialog suggestions
2009-07-16 06:08:59 -07:00
Bjorn Bringert
391eaa3ba8 Get rid of drawing hacks for search dialog suggestions
Before, SuggestionsAdapter parsed every HTML formatted
string three times, to support state-dependent colors
in <font> tags. Now that there is support in Html
for color resources (added in
https://android-git.corp.google.com/g/7441),
we can get rid of this code.

Also, SuggestionsAdapter had a special purpose view
for drawing background colors when suggestion items
were not selected or pressed. This change replaces that
code with a StateListDrawable of ColorDrawables.

Before this change, HTML parsing used ~17% (uncontrolled benchmark,
just did some random searching) of the system_process CPU.
This change should reduce that by 2/3, i.e. about ~11% total
system_process reduction.
2009-07-16 13:57:20 +01:00
Bjorn Bringert
ee716fa2b0 Make sure SearchDialog.mSearchable != null in key handlers
This change adds checking that the searchdialog is initialized
properly to a few key event listeners where it was missing
before.

Also makes sure that the search dialog is not shown if the
global search is requested but the global search provider
cannot be found.

Should fix http://b/issue?id=1982128
"Device rebooting after search results"
where SearchDialog.onKeyDown() threw an NPE
2009-07-16 09:15:37 +01:00
Mike LeBeau
260dfb5716 Include 'calling_package' extra for uses of in-app voice search so that
the server can tailor recognition to an individual app.
2009-07-15 15:20:14 -07:00
Mike LeBeau
1fffbd97fa Fix keyboard not showing for global search on Dream. Rather than trying to
call the hidden showSoftInputUnchecked method to show the IME in SearchDialog#show(),
override onWindowFocusChanged in our subclass of AutoCompleteTextView so that whenever
it gets focus, we call the public showSoftInput method, passing in the ACTV, which is
the correct way to do this.

This fixes http://b/1930989.
2009-07-14 17:05:24 -07:00
Karl Rosaen
53d24af774 Respect onSearchRequested in Dialog and actually launch search. Also dismiss self. 2009-07-14 15:52:58 -07:00
Android (Google) Code Review
83a066c6d8 Merge change 7135 into donut
* changes:
  Fixes lock on Home. Adds a new API on Dialog to get a callback when the dialog shows.
2009-07-14 14:51:06 -07:00
Romain Guy
045163ac16 Fixes lock on Home. Adds a new API on Dialog to get a callback when the dialog
shows.
2009-07-14 14:50:31 -07:00
Dianne Hackborn
b06ea70653 Add reporting of activity movement for search manager.
This adds a new API with the activity manager to find out about movement between
activities.  For my sanity, the old IActivityWatcher is now renamed to
IActivityController, and the new activity movement interface is named
IActivityWatcher.

This changes the search manager itself to use the new API to manage its state.
Note that there are still problems when going back to the search dialog after
it was hidden -- the suggestions window no longer appears until you explicitly
dismiss and re-show it.
2009-07-14 11:37:11 -07:00
Bjorn Bringert
c1d82e68eb Use activity icon when search suggestion icon is missing
New left-hand side icon fallback logic in search dialog:

1. If the search dialog gets no icon column, it shows no
   icon (like before). This would handle the case of in-app
   search where the provider does not include icons.
2. If the icon column is empty, or there is an error converting
   the icon id or URI to a drawable, the search dialog identifies
   the suggestion source by looking at the
   SUGGEST_COLUMN_INTENT_COMPONENT_NAME.
3. If SUGGEST_COLUMN_INTENT_COMPONENT_NAME is empty or not set,
   the current searchable activity is considered the suggestion source.
4. Try to get the activity icon of the suggestion source.
5. Fall back to the application icon of the suggestion source
   if there is no activity icon.
6. Fall back to some generic icon if there is no application icon.

Fixes http://b/issue?id=1905757
2009-07-14 13:52:01 +01:00
Mitsuru Oshima
ba3ba57921 * Use cached resources for widgets 2009-07-11 21:50:16 -07:00
Satish Sampath
b1665f2e15 Fix regression in handling the 'Go' button
This was introduced in CL https://android-git.corp.google.com/g/6460.
Bug: http://b/issue?id=1970776
2009-07-10 22:35:48 +01:00
Bjorn Bringert
0e01ea41b2 Deprecate DialogInterface methods in SearchManager
android.app.SearchManager implements
DialogInterface.OnDismissListener and DialogInterface.OnCancelListener
and thus exposes the methods onCancel(DialogInterface dialog) and
onDismiss(DialogInterface dialog). This was used by the SearchManager
to register itself as a listener on the search dialog, but is no
longer used.

This was an implementation detail that leaked into the public
API. Removing them would change the API, so they are deprecated instead.

Fixes http://b/issue?id=1962203
2009-07-10 07:16:47 +01:00
Christopher Tate
d1475e0375 Don't crash the app when restore agent bringup throws
Restore runs during the SetupWizard, before the phone is usable per se, so we
want to avoid presenting the usual "Application whatever has crashed..." dialog
to the user in the middle of that process.  This change modifies the exception
handling around agent bringup so that agent-originated exceptions are caught and
a null agent binder reported to the backup manager.

There are three points during this code sequence at which an exception can be
thrown due to application-code error:

+ the app's manifest can name a nonexistent or malformed BackupAgent class,
incurring a VM-level exception like ClassNotFound or BadCast.
- the agent's onCreate() method could crash/throw.
- the agent's onBind() method could crash/throw.

The new code arrangement here puts a try/catch around all of these possible
failure points.  When the code is invoked for backup, any caught exception is
merely rethrown.  During restore, however, execution is allowed to proceed
through reporting the app's agent binder back to the activity manager.  If any
exception was thrown, this reported binder will be null, i.e. a clean failure
notification to the backup manager.

What this code does *not* do at present is tear down the app when an exception
has been thrown.  This is happens if the exception is allowed to propagate.
Doing so cleanly is problematic, however, in circumstances where mutiple apps
and agents share a process.  Leaving the background process around until it is
torn down by the usual policies is probably the safer course at present.
2009-07-09 15:36:17 -07:00
Satish Sampath
313ea433d1 Make suggestion text color change based on the item state.
We support a ColorStateList reference now as a valid font color value
in the given html and manage html strings for all supported states
which we dynamically set while drawing the items.

This will get checked in along with changes to GlobalSearch,
EnhancedGoogleSearchProvider and Browser to make them use the new
model.

Bug: http://b/issue?id=1865037
2009-07-09 16:48:16 +01:00
Android (Google) Code Review
f9b7faee88 Merge change 6503 into donut
* changes:
  Hide soft keyboard in SearchDialog.dismiss()
2009-07-09 00:29:38 -07:00
Romain Guy
6de4aed1c6 Fixes #1933428. Call onPrepareDialog() on managed dialogs after their onCreate() is finished. 2009-07-08 13:56:28 -07:00
Bjorn Bringert
ec8ee34e06 Hide soft keyboard in SearchDialog.dismiss()
Before it was hidden in cancel(), which does not get
called when the search dialog is dismissed by clicking
on a suggestion.

Fixes http://b/issue?id=1967633
2009-07-08 21:49:42 +01:00
Bjorn Bringert
444c727e0e Run search UI on its own thread.
Details:

- Add a new SearchDialogWrapper class that makes sure
  all access to the SearchDialog is run one a single thread
  other than the main ServerThread.
- Don't save/restore seach dialog state in Activity.
  This resulted in lots of calls to the SearchManager
  throughout the life cycle of all activities, for
  the questionable benefit of restoring the search dialog
  in a few cases.
- Remove search UI state save/restore, and the isVisible()
  method from SearchManagerService. They are no longer used,
  and were tricky to implement since they return values from
  the search UI thread to the service.
- Handle configuration changes in searchDialogWrapper instead
  of calling through from Activity.

Fixes http://b/issue?id=1938101

TODO:
- Activity.performPause() calls stopSearch(). This call may not happen
  until the new activity has been started. If the new activity starts a
  search immediately, this search could be cancelled by the old activity's
  call top stopSearch().
2009-07-08 17:43:49 +01:00
Satish Sampath
d21572cd44 NEW_API: Expose autoUrlDetect searchable attribute.
If provided and true, URLs entered in the search dialog while searching within this activity would be detected and treated as URLs (show a 'go' button in the keyboard and invoke the browser directly when user launches the URL instead of passing the URL to the activity). If set to false any URLs entered are treated as normal query text.
The default value is false. This is an optional attribute.
2009-07-08 15:09:08 +01:00
Mitsuru Oshima
569076c9f6 widgets scaling fix. Use container's compatibility info and display metrics when container and widgets disagree. 2009-07-06 21:13:39 -07:00
Romain Guy
870e09fcd2 Fixes #1963229. Introduces Context#isRestricted().
A restricted Context is a special type of Context that prevents specific features
from being used. For instance, android:onClick, used by View, can be dangerous when
used from within apps widgets. By using a restricted Context to inflate apps widgets,
widgets providers are prevented from using android:onClick.
2009-07-06 16:45:17 -07:00
Mike LeBeau
617202a53a Fix a bug where clicking the "more results" suggestion with the trackball
did not seem to expand to show the corpus selectors. (http://b/1906643)

It turns out that when the trackball was used to select this item, onItemClick
was getting called on the listener twice in AutoCompleteTextView#onKeyUp:
once when we call onKeyUp on the DropDownListView, and once a little further
down when we call performCompletion(). In our case, performCompletion() is
useless since it was intended for normal AutoCompleteTextViews which populate
text into the TextView when an item in the list is clicked, but we do not
rely on this. So the easiest fix is just to make performCompletion() do nothing
in our SearchAutoComplete subclass.
2009-07-06 14:29:25 -07:00
Android (Google) Code Review
54af78a3f7 Merge change 5950 into donut
* changes:
  Fix memory leaks in system_server unlink DeathRecipients in a whole bunch of places to avoid memory leaks
2009-07-01 12:52:39 -07:00
Suchi Amalapurapu
fff2fda019 Fix memory leaks in system_server
unlink DeathRecipients in a whole bunch of places to avoid memory leaks
2009-07-01 12:55:30 -07:00
Satish Sampath
fef8d3e4d8 Make search UI open up quicker to the user.
On invoking the search UI, the drop down list box with past queries and shortcut items
appears after a few hundreds of milliseconds on screen. This was because we were
displaying the drop down within the onFilterCompleted callback after the list box filtered
the items based on the given query text. While that code path is necessary, for the first
invocation of the search dialog with an empty query we can show the list box before the
text stuff happens. This change does that, issuing an async request to show the drop
down after pending events have been processed.

Without this change, on an average it took 350ms for the code to show the drop down.
With this change, on an average it takes 150ms.
2009-07-01 17:55:31 +01:00
Romain Guy
b5537c4522 Replace indeterminate progress animated asset with new ones 2009-06-30 12:39:18 -07:00
Romain Guy
f4f7046183 Update spinner's drawables. Clean up resources, pave the way for new animation. 2009-06-26 19:21:54 -07:00
Joe Onorato
4ababd922e Make the BackupHelperDispatcher properly handle multiple helpers. 2009-06-25 20:36:09 -04:00
Suchi Amalapurapu
c984329d30 Invoke getSystem.updateConfiguration when binding an application to
update config changes in Resources.mSystem
Since Resources is preloaded in the zygote, system resources in Resources
need to be updated with config changes every time an application is started
2009-06-25 11:43:53 -07:00