Commit Graph

52 Commits

Author SHA1 Message Date
Karl Rosaen
1c07ebb651 Proactively set mVisible attribute in startSearch and stopSearch (not just in message handler).
This way someone can call searchManger.startSearch() and immediately have searchManger.isVisible() reflect
the correct value.

Fixes failing tests and bug 1993675
2009-07-22 10:11:00 -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
Karl Rosaen
957eb1d975 Run the search dialog at THREAD_PRIORITY_DEFAULT instead of THREAD_PRIORITY_FOREGROUND.
When running at forground priority, the search dialog seems to starve the soft keyboard, leading
to unresponsiveness.
2009-07-14 16:02:38 -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
Android (Google) Code Review
5c04841ee3 Merge change 6912 into donut
* changes:
  JavaDoc for SearchableInfo.getActivityMetaData()
2009-07-13 09:04:25 -07:00
Bjorn Bringert
13b24b7904 JavaDoc for SearchableInfo.getActivityMetaData()
See http://b/editIssue?id=1968025
2009-07-13 15:29:59 +01:00
Bjorn Bringert
9bc75cb9c2 Initialize searchmanager on demand
The initialization of SearchManagerService is delayed, which caused
problems when other services (e.g. GlobalSearch) start up.
This change makes the SearchManagerService components
initialize when they are first needed, or when the server thread
is done with its other processing, whichever comes first.

Fixes http://b/issue?id=1970975
2009-07-13 13:23:23 +01:00
Mike LeBeau
f4422ce829 Check if a searchable is null before adding it to the list of searchables
for web search. If getActivityMetaData returned null for a web search
searchable, previously, this null would get added to the list of searchables
for web search, which was causing GlobalSearch's SearchSettings to crash
with an NPE (which I've guarded against in change 6602).
2009-07-09 14:17:12 -07: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
Mike LeBeau
735b333bf6 Represent new searchSettingsDescription attribute on searchables in
SearchableInfo.
2009-06-30 18:27:40 -07:00
Satish Sampath
41282a3556 EnhancedGoogleSearch overrides GoogleSearch if present.
This is to fix bug http://b/issue?id=1929993. If user had GoogleSearch
earlier and that was the default, it will get overridden by
EnhancedGoogleSearch when the user installs the latter from the market.
2009-06-23 22:15:09 +01:00
Nick Pelly
6c901db72d Add getBatteryUsageHint() to BluetoothHeadset for power monitoring.
This is a monotonically increasing integer. Wraps to 0 at
Integer.MAX_INT, and at boot.
Current implementation returns the number of AT commands handled since
boot. This is a good indicator for spammy headset/handsfree units that
can keep the device awake by polling for cellular status updates. As a
rule of thumb, each AT command prevents the CPU from sleeping for 500 ms
2009-06-19 10:08:09 -07:00
Karl Rosaen
3ed6a3342b protect starting of search dialog behind 'dev.disablesearchdialog' system property.
this will help the stress test runs find out the effect of search.
2009-06-15 12:22:47 -07:00
Bjorn Bringert
8d17f3f24b Run search dialog in the system process.
Fixes http://b/issue?id=1905863

This is needed to address two security issues with global search:
http://b/issue?id=1871088 (Apps can read content providers through GlobalSearch)
http://b/issue?id=1819627 (Apps can use GlobalSearch to launch arbirtrary intents)

This also fixes http://b/issue?id=1693153 (SearchManager.OnDismissListener
never gets called)

To fix the security issues, GlobalSearch also needs to require
a non-app permission to access its content provider and launch intents.
2009-06-15 09:05:26 +01:00
Satish Sampath
35379abd46 Added attribute queryAfterZeroResults to searchables.
As of now we are just reading it from the xml and not acting upon it, that would come in a subsequent change.
2009-06-11 16:27:29 +01:00
Daisuke Miyakawa
5c43f735d9 Check AirplaneMode when enabling Bluetooth has finished.
This is part of manual merge from cupcake_dcm to donut.
Should be reviewed by mchan and takaoka.
Original internal CL: 149471-p9
2009-06-08 12:57:55 +09:00
Satish Sampath
f9acde2748 Include web search providers in Searchables.
- Along with ACTION_SEARCH we now enumate ACTION_WEB_SEARCH as well so web search providers are covered in the searchables list. This fixes a broken unit test.
- Moved get/setPreferredWebSearchActivity and get-all-web-search-providers implementation to this module when the searchables list gets updated, so that it happens on boot and on package add/remove events and remains up to date. The duplicate code in WebSearchProvider will be removed in a separate change.
- Also made Searchables broadcast an intent when the searchables list got rebuilt, so components such as GlobalSearch/SuggestionSources no longer need to do this on their own.
2009-06-05 10:34:53 +01:00
Mike LeBeau
0f7e914e87 Turn off verbose logging in SearchableInfo, which seems to have been
left on by accident.
2009-06-04 15:07:44 +01:00
Bjorn Bringert
a48a5af931 Update searchables list in getSearchablesInGlobalSearch().
Should fix http://b/issue?id=1866432
2009-05-20 17:58:39 +01:00
Satish Sampath
cbd8a246f8 Additional logging in buildSearchableList().
It is useful to know when the system could not find a unique global search provider, either due to clash of priority values or other reasons.
2009-05-15 22:00:07 +01:00
Bjorn Bringert
a92041306e Refactor SearchableInfo.
- Removes the mSearchable field which was only
  for communication between the constructor and
  getActivityMetaData().
- Removes the badge and query rewriting fields,
  since their values can be efficiently computed
  on the fly.
- Makes all the other public fields private and adds getters
  for them.
- Makes all fields final, except mActionKeys.
- Removes the DBG_INHIBIT_SUGGESTIONS_CONSTANT.
  I don't see why we would every want that, and it
  complicated making the fields final.
- Makes all fields in ActionKeyInfo final.
- Makes all fields in ActionKeyInfo private and adds getters.
- Removes the use of ActioKeyInfo.mKeyCode for failure
  signalling. Uses IllegalArgumentException instead.
- Replaces the ad hoc linked list for looking up
  action keys by a HashMap. This is needed to
  make the fields in ActionkeyInfo final, and also avoids O(N)
  lookup in the (unlikely) case that an activity
  has lots of action keys.
- Don't throw exceptions when reading searchable
  meta-data, since that could crash SearchManagerService.
- Adds debug logging.
2009-05-06 13:54:42 +01:00
Bjorn Bringert
6d72e029cb Add 'includeInGlobalSearch' attribute to searchable meta-data.
The attribute is not yet public.
Also adds a SearchManager method for listing all
searchables that can be included in global search.
This is the framework part of http://b/issue?id=1819651
2009-04-29 20:23:04 +01:00
Bjorn Bringert
203464af96 Add searchSuggestThreshold to searchable meta-data.
This lets the searchable activity specify the number of
characters needed to trigger suggestions. Before, this was
hard-coded at 0. This caused unnecessary querying of the
suggestion provider in cases where the provider does not
return suggestions for empty or short queries.

The attribute is not yet public, pending API council approval.
2009-04-29 13:02:54 +01:00
Bjorn Bringert
74708bbdf8 Add GLOBAL_SEARCH intent for finding global search provider. 2009-04-28 12:15:56 +01:00
Karl Rosaen
875d50a4b9 AI 147564: Merge back from search branch to donut. Notes:
- all public apis and framework changes have been reviewed by relevant folks in our branch (e.g romainguy)
  - all new public apis are @hidden; they will still get reviewed by api council once we're in git
  - other than that, it's mostly GlobalSearch and search dialog stuff, a new apps provider, and some tweaks
  to the contacts provider that was reviewed by jham

Automated import of CL 147564
2009-04-23 19:00:21 -07:00
Robert Greenwalt
d30b2568cd AI 144241: Stop polling dbus.
BUG=1244263

Automated import of CL 144241
2009-04-02 09:53:35 -07:00
Nick Pelly
ea600ccfb7 AI 143788: am: CL 143740 Don't clear supported profiles in settings app if getRemoteClass returns error.
Also clean up the error codes returned by the framework, so that the settings app can properly detect an error.
  Original author: npelly
  Merged from: //branches/cupcake/...

Automated import of CL 143788
2009-03-31 14:56:26 -07:00
Nick Pelly
f9204e5589 Automated import from //branches/donutburger/...@141979,141979 2009-03-24 21:15:00 -07:00
Mike Lockwood
98594c73bf Automated import from //branches/donutburger/...@141909,141909 2009-03-24 21:04:47 -07:00
Nick Pelly
997c7612a8 Automated import from //branches/donutburger/...@141696,141696 2009-03-24 20:44:48 -07:00
Nick Pelly
19a5fed21c Automated import from //branches/donutburger/...@140890,140890 2009-03-24 18:51:06 -07:00
Jaikumar Ganesh
66359e3d2d Automated import from //branches/donutburger/...@140880,140880 2009-03-24 18:48:24 -07:00
The Android Open Source Project
105925376f auto import from //branches/cupcake_rel/...@140373 2009-03-18 17:39:46 -07:00
The Android Open Source Project
ba87e3e6c9 auto import from //branches/cupcake_rel/...@138607 2009-03-13 13:04:22 -07:00
The Android Open Source Project
c39a6e0c51 auto import from //branches/cupcake/...@137873 2009-03-11 12:11:56 -07:00
The Android Open Source Project
b2a3dd88a5 auto import from //branches/cupcake/...@137197 2009-03-09 11:52:12 -07:00
The Android Open Source Project
f5b4b98fad auto import from //depot/cupcake/@136745 2009-03-05 20:00:43 -08:00
The Android Open Source Project
9066cfe988 auto import from //depot/cupcake/@135843 2009-03-03 19:31:44 -08:00
The Android Open Source Project
d83a98f4ce auto import from //depot/cupcake/@135843 2009-03-03 18:28:45 -08:00
The Android Open Source Project
076357b856 auto import from //depot/cupcake/@132589 2009-03-03 14:04:24 -08:00
The Android Open Source Project
3dec7d563a auto import from //depot/cupcake/@137055 2009-03-02 22:54:33 -08:00
The Android Open Source Project
15ab3eae2e auto import from //branches/cupcake/...@132569 2009-02-20 07:38:31 -08:00
The Android Open Source Project
3001a03543 auto import from //branches/cupcake/...@132276 2009-02-19 10:57:31 -08:00
The Android Open Source Project
da996f390e auto import from //branches/cupcake/...@131421 2009-02-13 12:57:50 -08:00
The Android Open Source Project
d24b8183b9 auto import from //branches/cupcake/...@130745 2009-02-10 15:44:00 -08:00
The Android Open Source Project
f1e484acb5 auto import from //branches/cupcake/...@127436 2009-01-22 00:13:42 -08:00
The Android Open Source Project
22f7dfd234 auto import from //branches/cupcake/...@127101 2009-01-20 14:03:58 -08:00
The Android Open Source Project
9266c558bf auto import from //branches/cupcake/...@126645 2009-01-15 16:12:10 -08:00
The Android Open Source Project
b798689749 auto import from //branches/cupcake/...@125939 2009-01-09 17:51:23 -08:00