Fixed Bluetooth availability test in Settings

Added similar test for WiFi to be consistent.

Added null tests in BluetoothEnabler.

Change-Id: Ia6e7b150a1bc060c7ce0b4db12ab3f6c958af104
This commit is contained in:
Gilles Debunne
2011-06-21 16:16:06 -07:00
parent e78c187905
commit 2454f49c93
2 changed files with 16 additions and 9 deletions

View File

@@ -16,7 +16,6 @@
package com.android.settings;
import android.bluetooth.BluetoothAdapter;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
@@ -24,7 +23,6 @@ import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Bundle;
import android.os.ServiceManager;
import android.preference.PreferenceActivity;
import android.text.TextUtils;
import android.util.Log;
@@ -313,9 +311,14 @@ public class Settings extends PreferenceActivity implements ButtonBarHandler {
} else if (id == R.id.call_settings) {
if (!Utils.isVoiceCapable(this))
target.remove(header);
} else if (id == R.id.wifi_settings) {
// Remove WiFi Settings if WiFi service is not available.
if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_WIFI)) {
target.remove(header);
}
} else if (id == R.id.bluetooth_settings) {
// Remove Bluetooth Settings if Bluetooth service is not available.
if (ServiceManager.getService(BluetoothAdapter.BLUETOOTH_SERVICE) == null) {
if (!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH)) {
target.remove(header);
}
}

View File

@@ -66,6 +66,7 @@ public final class BluetoothEnabler implements CompoundButton.OnCheckedChangeLis
public void resume() {
if (mLocalAdapter == null) {
mSwitch.setEnabled(false);
return;
}
@@ -91,11 +92,12 @@ public final class BluetoothEnabler implements CompoundButton.OnCheckedChangeLis
mSwitch = switch_;
mSwitch.setOnCheckedChangeListener(this);
final int bluetoothState = mLocalAdapter.getBluetoothState();
boolean isEnabled = bluetoothState == BluetoothAdapter.STATE_ON;
boolean isDisabled = bluetoothState == BluetoothAdapter.STATE_OFF;
mSwitch.setChecked(isEnabled);
mSwitch.setEnabled(isEnabled || isDisabled);
int bluetoothState = BluetoothAdapter.STATE_OFF;
if (mLocalAdapter != null) bluetoothState = mLocalAdapter.getBluetoothState();
boolean isOn = bluetoothState == BluetoothAdapter.STATE_ON;
boolean isOff = bluetoothState == BluetoothAdapter.STATE_OFF;
mSwitch.setChecked(isOn);
mSwitch.setEnabled(isOn || isOff);
}
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
@@ -107,7 +109,9 @@ public final class BluetoothEnabler implements CompoundButton.OnCheckedChangeLis
buttonView.setChecked(false);
}
if (mLocalAdapter != null) {
mLocalAdapter.setBluetoothEnabled(isChecked);
}
mSwitch.setEnabled(false);
}