[Settings] Fix crashes caused by null bluetooth adapter and ethernet
manager Emulator system image doesn't support bluetooth and ethernet manager yet. BUG: 150408099 Signed-off-by: Weilun Du <wdu@google.com> Change-Id: Iab4f7b962f01755fe7d84956f9b54374f1e17408
This commit is contained in:
@@ -172,7 +172,7 @@ public class TetherSettings extends RestrictedSettingsFragment
|
|||||||
com.android.internal.R.string.config_ethernet_iface_regex);
|
com.android.internal.R.string.config_ethernet_iface_regex);
|
||||||
|
|
||||||
final boolean usbAvailable = mUsbRegexs.length != 0;
|
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);
|
final boolean ethernetAvailable = !TextUtils.isEmpty(mEthernetRegex);
|
||||||
|
|
||||||
if (!usbAvailable || Utils.isMonkeyRunning()) {
|
if (!usbAvailable || Utils.isMonkeyRunning()) {
|
||||||
@@ -326,7 +326,8 @@ public class TetherSettings extends RestrictedSettingsFragment
|
|||||||
if (intent != null) mTetherChangeReceiver.onReceive(activity, intent);
|
if (intent != null) mTetherChangeReceiver.onReceive(activity, intent);
|
||||||
|
|
||||||
mEthernetListener = new EthernetListener();
|
mEthernetListener = new EthernetListener();
|
||||||
mEm.addListener(mEthernetListener);
|
if (mEm != null)
|
||||||
|
mEm.addListener(mEthernetListener);
|
||||||
|
|
||||||
updateState();
|
updateState();
|
||||||
}
|
}
|
||||||
@@ -340,7 +341,8 @@ public class TetherSettings extends RestrictedSettingsFragment
|
|||||||
}
|
}
|
||||||
getActivity().unregisterReceiver(mTetherChangeReceiver);
|
getActivity().unregisterReceiver(mTetherChangeReceiver);
|
||||||
mTm.unregisterTetheringEventCallback(mTetheringEventCallback);
|
mTm.unregisterTetheringEventCallback(mTetheringEventCallback);
|
||||||
mEm.removeListener(mEthernetListener);
|
if (mEm != null)
|
||||||
|
mEm.removeListener(mEthernetListener);
|
||||||
mTetherChangeReceiver = null;
|
mTetherChangeReceiver = null;
|
||||||
mStartTetheringCallback = null;
|
mStartTetheringCallback = null;
|
||||||
mTetheringEventCallback = null;
|
mTetheringEventCallback = null;
|
||||||
@@ -438,7 +440,7 @@ public class TetherSettings extends RestrictedSettingsFragment
|
|||||||
if (isTethered) {
|
if (isTethered) {
|
||||||
mEthernetTether.setEnabled(!mDataSaverEnabled);
|
mEthernetTether.setEnabled(!mDataSaverEnabled);
|
||||||
mEthernetTether.setChecked(true);
|
mEthernetTether.setChecked(true);
|
||||||
} else if (isAvailable || mEm.isAvailable()) {
|
} else if (isAvailable || (mEm != null && mEm.isAvailable())) {
|
||||||
mEthernetTether.setEnabled(!mDataSaverEnabled);
|
mEthernetTether.setEnabled(!mDataSaverEnabled);
|
||||||
mEthernetTether.setChecked(false);
|
mEthernetTether.setChecked(false);
|
||||||
} else {
|
} else {
|
||||||
|
@@ -212,7 +212,8 @@ public class TetherEnabler implements SwitchWidgetController.OnSwitchChangeListe
|
|||||||
// Only check bluetooth tethering state if not stopped by user already.
|
// Only check bluetooth tethering state if not stopped by user already.
|
||||||
if (!mBluetoothTetheringStoppedByUser) {
|
if (!mBluetoothTetheringStoppedByUser) {
|
||||||
final BluetoothPan pan = mBluetoothPan.get();
|
final BluetoothPan pan = mBluetoothPan.get();
|
||||||
if (mBluetoothAdapter.getState() == BluetoothAdapter.STATE_ON
|
if (mBluetoothAdapter != null &&
|
||||||
|
mBluetoothAdapter.getState() == BluetoothAdapter.STATE_ON
|
||||||
&& pan != null && pan.isTetheringOn()) {
|
&& pan != null && pan.isTetheringOn()) {
|
||||||
tetherState |= TETHERING_BLUETOOTH_ON;
|
tetherState |= TETHERING_BLUETOOTH_ON;
|
||||||
}
|
}
|
||||||
@@ -279,7 +280,7 @@ public class TetherEnabler implements SwitchWidgetController.OnSwitchChangeListe
|
|||||||
|
|
||||||
if (choice == TETHERING_BLUETOOTH) {
|
if (choice == TETHERING_BLUETOOTH) {
|
||||||
mBluetoothTetheringStoppedByUser = false;
|
mBluetoothTetheringStoppedByUser = false;
|
||||||
if (isBluetoothTethering(state)) {
|
if (mBluetoothAdapter == null || isBluetoothTethering(state)) {
|
||||||
return;
|
return;
|
||||||
} else if (mBluetoothAdapter.getState() == BluetoothAdapter.STATE_OFF) {
|
} else if (mBluetoothAdapter.getState() == BluetoothAdapter.STATE_OFF) {
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
|
Reference in New Issue
Block a user