This fixes one probable case of A2DP profile connection state hanging
in connecting state. When the device is unpaired and repaired,
before the drivers are up on the bluez side, settings app / auto-connect
code can try to connect.
This should reduce the number of updates to the searchables
list if multiple packages change at the same time.
Fixes http://b/issue?id=2270711
Change-Id: Ieb930022866aa2872f8df1af677e3ea1645349bf
This removes the '*' value for android.app.searchable and
android.app.default_searchable that was previously used by apps to say
that they want global search as their search. I think the only
activity that this will affect is the wallpaper chooser in the
launcher, which doesn't seem like it matters. It could mean that some
third party code will stop invoking global search, but all they would
need to do is call startSearch() with globalSearch=true instead.
Fixes http://b/issue?id=2377433 and http://b/issue?id=2377429
Change-Id: I0252952b44ae85dab31221b598ed79cc24e2b580
Add new broadcasts ACTION_MEDIA_RESOURCES_AVAILABLE and
ACTION_MEDIA_RESOURCES_UNAVAILABLE that get broadcast by
PackageManagerService when sdcard gets mounted/unmounted
by MountService so that packages on sdcard get recognized by
various system services as being installed/available or
removed/unavailable by the system.
The broadcasts are sent before the actual package cleanup which includes
mounting/unmounting the packages and we force a gc right after so
that any lingering file references to resources on sdcard get
released.
SearchManager now manages the SearchDialog, in-process.
Nuked SearchDialogWrapper
SearchManagerService now just holds the Searchables information.
Hitting Search when in the local Search dialog will launch the QSB.
Move reset of A2DP suspend state from handleSinkStateChange() in BluetoothA2dpService to
BluetoothA2dp.ACTION_SINK_STATE_CHANGED intent receiver in AudioService.
Previous implementation could cause a false reset of suspend state if a new sink attempted to
connect while A2DP was suspended.
New implementation only resets A2DP suspend state when a new sink is actually connected.
Settings.System.AIRPLANE_MODE_TOGGLEABLE_RADIOS is a list of
radios that can be toggled while in airplane mode. This
change adds logic to BluetoothService to allow enabling
when Settings.System.RADIO_BLUETOOTH appears in that list.
Fixes http://b/2297314
Merge commit '1aa2559797d49fa0c6cf7885c9fed5797e42231f'
* commit '1aa2559797d49fa0c6cf7885c9fed5797e42231f':
Accept incoming connections if no other sink is in NonDisconnecting state.
Bluez sends SINK_STATE_CHANGE before onAgentAuthorize, so
we may be already in CONNECTING state. This will happen with
some A2DP kits which don't like us connecting and thus we will
never be able to connect to them.
Bug:2335345
Dr No: Hiroshi
This takes care of the conditions where the bluez audio drivers
are not up and we try to make the call to connect the sink.
This would get rid of the hack in Settings app.
Use this in various places where it should serve no purpose to deliver
both broadcasts. This is intended to reduce somewhat the flurry of
broadcasts that we churn through during boot.
(CrashData was a custom-marshalled crash-info class used for a server crash
reporting system I am deprecating). Use ApplicationErrorReport.CrashInfo
instead to report crash details (mostly the stack trace) from RuntimeInfo to
ActivityManagerService, since we're likely to need the crash information in
that form anyway.
Remove the (long-disabled) flags and support for the "Debug" button
in the crash dialog.
Further gut the ICheckinService interface by removing the crash-reporting
APIs (and everything that calls them), plus the synchronous checkin()
method (which has been stubbed out for a while now).
A new dropbox-based crash reporting system is in the works, but not part
of this change.
For the docks, we can set if a device is preferred or not
before pairing process. This was getting overridden when we pair.
This problem doesn't happen with normal headsets.
Dr No: Eastham
Bug: 2318290
Merge commit 'f6e32e72a902d9a309410bc5306a539ea850159f' into eclair-mr2
* commit 'f6e32e72a902d9a309410bc5306a539ea850159f':
Maintain a list of all Bluetooth docks.
With this change, isBluetoothDock API can be used anytime and is not in tied
to dock state. The Dock State is a sticky intent so users
can query for the dock state.
Dr No: Eastham
Bug: 2133530
Merge commit 'ae88e2d130a4d69bdf7ddc58f6ae512ea63087ff' into eclair-mr2
* commit 'ae88e2d130a4d69bdf7ddc58f6ae512ea63087ff':
Add API to get Active Sinks.
We need to expose SearchableInfo in the SDK in order to unbundle
Quick Search Box. Since the android.server.search package is
hidden, I'm moving SearchableInfo to android.app, where
SearchManager lives.
This change doesn't actually expose SearchableInfo. I'll do
that in a separate change to keep the change that
api-council needs to review small.
This is part of the fix for: http://b/issue?id=2270838
Change-Id: I9589f9c2c11d36c958beedff8245fe0c3319c6ba
1. PRIORITY_OFF is when user unchecks A2DP connection profile box.
2. By default, when you bond, it will be PRIORITY_ON.
3. When the profile gets connected, the priority gets set to
PRIORITY_AUTO_CONNECT. This means that we will connect
automatically to this profile.
4. When the user disconnects, we downgrade the priority to PRIORITY_ON,
which means we won't reconnect automatically.
a) We need to make a similar change to Handsfree profile.
b) We need to rework the profile management design and code which
will fix the 6 second timer that we have for A2DP reconnection.
Add AUTO_CONNECT priority for Headset profile.
Also, don't set priority to ON while disconnecting.
This logic has been pushed up to the Settings app.
Dr No: Eastham
Bug: 2133530
There is a delay between registering the two profiles,
and handsfree profile is a superset of the headset profile.
So some devices do an SDP and get the headset profile record
before we have registered the handsfree profile.
a) We can reject all incoming connections till all profiles are
registered, but then this would mean we connect later in some cases.
Registering profiles in this order seems fine to me.
Note: There is a also the need to fix forking sdptool to register
profiles, which would obliviate the need to wait 500 msecs between
profile registrations.
Bug: 2293792
Dr No: Eastham
There is a delay between registering the two profiles,
and handsfree profile is a superset of the headset profile.
So some devices do an SDP and get the headset profile record
before we have registered the handsfree profile.
a) We can reject all incoming connections till all profiles are
registered, but then this would mean we connect later in some cases.
Registering profiles in this order seems fine to me.
Note: There is a also the need to fix forking sdptool to register
profiles, which would obliviate the need to wait 500 msecs between
profile registrations.
1. PRIORITY_OFF is when user unchecks A2DP connection profile box.
2. By default, when you bond, it will be PRIORITY_ON.
3. When the profile gets connected, the priority gets set to
PRIORITY_AUTO_CONNECT. This means that we will connect
automatically to this profile.
4. When the user disconnects, we downgrade the priority to PRIORITY_ON,
which means we won't reconnect automatically.
a) We need to make a similar change to Handsfree profile.
b) We need to rework the profile management design and code which
will fix the 6 second timer that we have for A2DP reconnection.
Merge commit 'ad431ad8631d8b19b04193ff1f89a955a7643c60' into eclair-mr2
* commit 'ad431ad8631d8b19b04193ff1f89a955a7643c60':
Fix pairings lost on reboot.
Merge commit '660282dc3e81784224945be0787a9e2d4276de8c' into eclair-mr2
* commit '660282dc3e81784224945be0787a9e2d4276de8c':
Check if Bluetooth is enabled before making any calls down.
Merge commit '3c58d279abed1da56b0ece74ded5854c509a42a4' into eclair-mr2
* commit '3c58d279abed1da56b0ece74ded5854c509a42a4':
Fix BMW and Audi auto pairing lists.
Merge commit '013b0e531a4318b3e78c9bd0e077d3632fce2280' into eclair-mr2
* commit '013b0e531a4318b3e78c9bd0e077d3632fce2280':
Add BMW and Audi to Auto Pairing black list.
Merge commit '8de4e0ad8ff39d9a397cd80de5155d4c09ef98fd' into eclair-mr2
* commit '8de4e0ad8ff39d9a397cd80de5155d4c09ef98fd':
Add BMW kits made by Motorola PCS to autoblack list for Bluetooth.
Bluetooth A2DP suspend-resume improvements.
This change will reduce the occurence rate of A2DP sink suspend resume failures observed in issues 2184627, 2181005 and possibly 2189628.
More robust suspend/resume logic.
Use only the suspend request to audio hardware to avoid having two concurent suspend resume control paths.