diff --git a/src/com/android/settings/TetherSettings.java b/src/com/android/settings/TetherSettings.java index c61e5739948..ac758dccc35 100644 --- a/src/com/android/settings/TetherSettings.java +++ b/src/com/android/settings/TetherSettings.java @@ -172,7 +172,7 @@ public class TetherSettings extends RestrictedSettingsFragment com.android.internal.R.string.config_ethernet_iface_regex); final boolean usbAvailable = mUsbRegexs.length != 0; - final boolean bluetoothAvailable = mBluetoothRegexs.length != 0; + final boolean bluetoothAvailable = adapter != null && mBluetoothRegexs.length != 0; final boolean ethernetAvailable = !TextUtils.isEmpty(mEthernetRegex); if (!usbAvailable || Utils.isMonkeyRunning()) { @@ -326,7 +326,8 @@ public class TetherSettings extends RestrictedSettingsFragment if (intent != null) mTetherChangeReceiver.onReceive(activity, intent); mEthernetListener = new EthernetListener(); - mEm.addListener(mEthernetListener); + if (mEm != null) + mEm.addListener(mEthernetListener); updateState(); } @@ -340,7 +341,8 @@ public class TetherSettings extends RestrictedSettingsFragment } getActivity().unregisterReceiver(mTetherChangeReceiver); mTm.unregisterTetheringEventCallback(mTetheringEventCallback); - mEm.removeListener(mEthernetListener); + if (mEm != null) + mEm.removeListener(mEthernetListener); mTetherChangeReceiver = null; mStartTetheringCallback = null; mTetheringEventCallback = null; @@ -438,7 +440,7 @@ public class TetherSettings extends RestrictedSettingsFragment if (isTethered) { mEthernetTether.setEnabled(!mDataSaverEnabled); mEthernetTether.setChecked(true); - } else if (isAvailable || mEm.isAvailable()) { + } else if (isAvailable || (mEm != null && mEm.isAvailable())) { mEthernetTether.setEnabled(!mDataSaverEnabled); mEthernetTether.setChecked(false); } else { diff --git a/src/com/android/settings/network/TetherEnabler.java b/src/com/android/settings/network/TetherEnabler.java index c4b36d32c9d..87832d99817 100644 --- a/src/com/android/settings/network/TetherEnabler.java +++ b/src/com/android/settings/network/TetherEnabler.java @@ -212,7 +212,8 @@ public class TetherEnabler implements SwitchWidgetController.OnSwitchChangeListe // Only check bluetooth tethering state if not stopped by user already. if (!mBluetoothTetheringStoppedByUser) { final BluetoothPan pan = mBluetoothPan.get(); - if (mBluetoothAdapter.getState() == BluetoothAdapter.STATE_ON + if (mBluetoothAdapter != null && + mBluetoothAdapter.getState() == BluetoothAdapter.STATE_ON && pan != null && pan.isTetheringOn()) { tetherState |= TETHERING_BLUETOOTH_ON; } @@ -279,7 +280,7 @@ public class TetherEnabler implements SwitchWidgetController.OnSwitchChangeListe if (choice == TETHERING_BLUETOOTH) { mBluetoothTetheringStoppedByUser = false; - if (isBluetoothTethering(state)) { + if (mBluetoothAdapter == null || isBluetoothTethering(state)) { return; } else if (mBluetoothAdapter.getState() == BluetoothAdapter.STATE_OFF) { if (DEBUG) {