Merge commit 'ba223760895e62ad2fcb85476984cb29018860c9' into eclair
* commit 'ba223760895e62ad2fcb85476984cb29018860c9':
Close suggestion cursors that arrive after adapter is closed
Before, after using the Browser, memory-hungry apps could
become very sluggish. This was because the search dialog in the
system process had the BrowserProvider open, which in turn had
EnhancedGoogleSearch open. Since EhancedGoogleSearch runs in acore,
the system would keep both the Browser process and acore to stay
around forever.
The cause (or at least one common cause) for this was that
if the user types quickly, and clicks on a suggestion before
the displayed suggestions have caught up, some suggestion cursors
are not be closed.
This change solves this problem by adding a close() method to
SuggestionsAdapter. SuggestionsAdapter now closes any cursors
that are passed to it after close() is called.
Fixes http://b/issue?id=2078226
"global search holding reference to browser: system -> browser -> acore = :("
One of the problems I have been noticing is background services
sitting around running and using resources. Some times this is
due to the app developer doing this when they shouldn't, but there
are also a number of issues with the current Service interaction
model that make it very difficult (or impossible) to avoid
getting services stuck in the started state. This is a
change/enhancement to the Service API to try to address this.
The main change is that Service.onStart() has been deprecated,
replaced with a new Service.onStartCommand() that allows the
service to better control how the system should manage it. The
key part here is a new result code returned by the function, telling
the system what it should do with the service afterwards:
- START_STICKY is basically the same as the previous behavior,
where we usually leave the service running. The only difference
is that it if it gets restarted because its process is killed,
onStartCommand() will be called on the new service with a null
Intent instead of not being called at all.
- START_NOT_STICKY says that, upon returning to the system, if
its process is killed with no remaining start commands to
deliver, then the service will be stopped instead of restarted.
This makes a lot more sense for services that are intended to
only run while executing commands sent to them.
- START_REDELIVER_INTENT is like START_NOT_STICKY, except if
the service's process is killed before it calls stopSelf()
for a given intent, that intent will be re-delivered to it
until it completes (unless after 4 or more tries it still
can't complete, at which point we give up).
Change-Id: I978f5ca420d70023d1b5e7f97de639d09381f8ad
- @hides relevant APIs
- removes relevant javadoc
- enforces that only system apps can participate
note: general support is still there, will be easy to reenable when we are ready.
This API is becoming seriously abused, so now it is deprecated and has
become a no-op.
As an alternative, there is now a new API that allows you to make a service
be in the foreground but requires providing a persistent notification to
go along with this state, allowing the user to know about and control it.
Merge commit 'cfa419b754332e12f8cd45244c2f3bee9d6a74bb' into eclair
* commit 'cfa419b754332e12f8cd45244c2f3bee9d6a74bb':
Correct comments for startSearch in Activity and SearchManager to explain
This is pretty much the same thing as startSearch, except it also launches the
query. We enforce that this can only be done for the package of the app that is
associated with the search mananger (e.g you can't trigger a contacts search
from anywhere).
Split BluetoothDevice into BluetoothDevice and BluetoothAdapter.
BluetoothAdapter: Represents the local BT adapter. Operations on the local
adapter (start a scan, etc).
BluetoothDevice: Represents a remote BT device. Operations on remote devices
(pair, connect, etc).
IBluetoothDevice.aidl -> Bluetooth.aidl
BluetoothDeviceService.java -> BluetoothDeviceService.java
TODO:
Javadoc
- Do better about figuring out when to stop them and other related window
management.
- Fix problem where we were not redrawing the surface when the orientation
changed. This was the cause of the device hang.
Merge commit 'b3fa1084ba31698fa5c58150a713d7abbadb1cd2'
* commit 'b3fa1084ba31698fa5c58150a713d7abbadb1cd2':
Docs only change: finish documentation of Android Quick Search Box related information in SearchManager.
Merge commit '021fa3fa6fe88c33ad11a3139ebcd3a5be8eb953'
* commit '021fa3fa6fe88c33ad11a3139ebcd3a5be8eb953':
First update of SearchManager docs to reflect the new Donut Quick Search Box feature.
Includes:
- an overview section on including search suggestions in quick search box
- additional table of searchable metadata attributes related to quick search box
- additional column descriptions that we've added for quick search box.
- description of how to expose your content provider's search suggestions to
the search infrastructure if you have permissions guarding your content provider.
This currently only works for a wallpaper that is larger than the
screen. Set the scroll position with the new wallpaper API. Right
now only does jump scrolls.
This is all of the basic pieces:
- The WallpaperService now creates a surface with the window manager for its
contents.
- There is a simple service that displays a bitmap.
- The wallpaper manager takes care of starting and stopping the service.
- The window manager knows about wallpaper windows and how to layer them with
the windows that want to be shown on top of wallpaper.
Lots and lots of issues remain, but at this point you can actually write a
wallpaper service, select it in the UI, and see it behind an activity.
Merge commit 'a7a3b6ef0fdaf6b17993642b76baf90a03ae0077'
* commit 'a7a3b6ef0fdaf6b17993642b76baf90a03ae0077':
Dismiss both the soft keyboard and the search dialog on back if there is no text entered and no shortcuts are being obscured by the soft keyboard.
Merge commit 'e303d2cf94da6bb7f0569fbddd6dfd5b85ed8295'
* commit 'e303d2cf94da6bb7f0569fbddd6dfd5b85ed8295':
Send a special respond to the cursor in SuggestionsAdapter to tell it to
close itself directly because it may not happen correctly for some cursors
currently. This fixes http://b/2036290, which is being caused by
http://b/2015069 which we are not fixing for Donut, so this is a hack around
that for the time being.
This is mostly refactoring, adding a new WallpaperManager class that takes care
of the old wallpaper APIs on Context, so we don't need to pollute Context with
various new wallpaper APIs as they are needed. Also adds the first little
definition of a wallpaper service, which is not yet used or useful.
Merge commit 'd4543c519b7724841eb77bb57ff360e6c40cd69a'
* commit 'd4543c519b7724841eb77bb57ff360e6c40cd69a':
Guard against remote process dying when retrieving column from cursor.
Merge commit '6942330251cd778f85169c6265c584648b42428d'
* commit '6942330251cd778f85169c6265c584648b42428d':
Remove the menu from the search dialog since there are a couple of issues with it we don't have time to fix for donut.
Merge commit 'cd540294db39d6dd2b2c228ac190684c3970fe0a'
* commit 'cd540294db39d6dd2b2c228ac190684c3970fe0a':
Close the search dialog before starting voice search in all cases, i.e.,
Merge commit 'c2e06072051e319bc609df66f4c72b77716f4fa4'
* commit 'c2e06072051e319bc609df66f4c72b77716f4fa4':
Tell the SearchManager to stopSearch before starting an in-app voice
search. Without this, because of the recent changes to how the search
dialog hides and resumes, we end up re-showing the search dialog after
returning to the app from voice search, obscuring the new voice search
results behind.
Fixes http://b/2025364
Merge commit 'b91e2b0292f9f4f76175a18e6e3cf392f3967ae8'
* commit 'b91e2b0292f9f4f76175a18e6e3cf392f3967ae8':
Special-case search within the browser to not show the app icon
When the suggstion provider is in a different package from the searchable
activity, the icons stored for shortcuts used the package of the
activity instead of the provider.
Fixes http://b/issue?id=2023993
to the left of the search field. Also, because this removes context
about whether you're in browser search or global search, we make
sure to clear any entered text if you jump out to global search from
within browser search.
This is a really ugly hack, but was required by the UI team. We will
find a better way to reconcile in Eclair.
Merge commit '0869f7ef1efa9fe2e26b20e525952ad611d379aa'
* commit '0869f7ef1efa9fe2e26b20e525952ad611d379aa':
Log uid and package name when launching intents from search