Fix NPE when entering Settings app in the SDK (and for devices without
Bluetooth). Also remove the "Bluetooth settings" item in addition to
the Bluetooth toggle item from Wireless settings when BT is missing.
Bug: 4149307
Change-Id: Iecc5960a193cf88664d3217b4d7bdbc2276dabc0
Major refactoring of Bluetooth settings classes.
- Moved all functionality from LocalBluetoothManager into new
LocalBluetoothAdapter and LocalBluetoothPreferences, and into
existing classes.
- Refactored functionality from BluetoothEventRedirector into new
BluetoothEventManager class, deleting the original version. New
version uses a HashMap from action Strings to implementers of the
BluetoothEventManager.Handler interface.
- Created new BluetoothDiscoveryReceiver to update shared preferences
timestamp for Bluetooth discovery start/finish. This is the only event
handling we need to do when the settings app is not visible, so it has
its own receiver entry in AndroidManifest.xml. Edits are written using
QueuedWork.singleThreadExecutor(), which BroadcastReceiver knows about
and will wait for completion, eliminating the need for PendingResult.
- Miscellaneous cleanups to code style and logic for readability.
- Pulled some large switch statement code blocks into new methods.
- Changed all Bluetooth state references to the new BluetoothProfile
constants.
- Changed use of deprecated Notification constructor in
BluetoothPairingRequest to use Notification.Builder.
- Moved Utf8ByteLengthFilter helper function from BluetoothNamePreference
into its own class, and moved test cases into the same package.
- Moved all LocalBluetoothProfileManager functionality related to
specific profiles into new top-level classes (A2dpProfile, etc.), all
implementing the LocalBluetoothProfile interface.
- Moved all UI-related methods from CachedBluetoothDevice into the class
that uses the method, or into the static Utils class for shared methods.
Change-Id: I6d49b7f4ae0c7d7dcf62551ee40b51ecb5fe4f47
We don't have support in the media code so rather than confuse the users
with some apps using proxies and some not we'll just turn it off for all
for now.
bug:3283883
Change-Id: If29bb34fce04eab5adc9b5180b70dbfd718cc709
Merge commit 'fb515337c2c8ceefe47b7387ebffa2b3185ef2ba'
* commit 'fb515337c2c8ceefe47b7387ebffa2b3185ef2ba':
Use NfcAdapter.getDefaultAdapter() to check for NFC prescence.
Based on Trusted_NFC_Device_Host_AA03.01e02_google.zip code drop (23-Sep-2010)
Heavily modified to remove dead code.
Change-Id: I9e5f0bf2d32105feff4d68f03adebe87d2e9d900
Added a base class SettingsPreferenceFragment from which the settings activities should
be derived so that they can behave like fragments. It contains some commonly called
utility methods and dialog conversion to DialogFragment.
Some of the top-level activities can be launched directly without the left pane.
Settings.java acts as a proxy activity that contains just that settings fragment without
the left pane.
There are still a lot of second and third level activities that need to be fragmentized.
This is just the first pass to test the 2-pane layout.
If tethering is disabled (build var or a gservices property) for the device,
don't show any of the tethering options. If Usb Tethering is disabled (config.xml) don't show
Usb Options. If Wifi Tethering is disabled (config.xml) don't show Wifi Options.
This mainly changes the way both enablers react to the airplane mode. Now
enablers show a toast message instead of disabling the check box directly. This
avoids the inconsistent state introduced by WirelessSettings which controls the
check box using layout dependency.
Related bug: 2053751
Settings.System.AIRPLANE_MODE_TOGGLEABLE_RADIOS is a list of
radios that can be toggled while in airplane mode. This CL
changes BluetoothEnabler to respect this.
It parallels the logic in WifiEnabler, which enables OEMs
to allow Wifi changes when in airplane mode.
Most existing devices don't include "bluetooth" in the
toggleable list, which means bluetooth will continue to be
disabled when in airplane mode for those devices.
Fixes http://b/2297314
When user tries to change Airplane Mode between ON & OFF
in ECM mode, a notice should be shown to indicate it's in ECM mode,
and ask if user wants to exit ECM, if yes, then the Airplane Mode
is changed after ECM mode exit. If not, Airplane Mode should not be
changed.
If the new system settings value for AIRPLANE_MODE_TOGGLEABLE_RADIOS
contains RADIO_WIFI, then the user will be allowed to enable Wifi
while in airplane mode.
Turning on airplane mode will still disable Wifi, but the user will
be free to reenable it in the Settings app.
We also allow access to the VPN settings under the same circumstances.
Signed-off-by: Mike Lockwood <lockwood@android.com>