Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f8757b71 authored by Weilun Du's avatar Weilun Du Committed by Zhen Zhang
Browse files

[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: default avatarWeilun Du <wdu@google.com>
Change-Id: Iab4f7b962f01755fe7d84956f9b54374f1e17408
(cherry picked from commit 08e95d0d)
parent ff8b7934
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -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,6 +326,7 @@ public class TetherSettings extends RestrictedSettingsFragment
        if (intent != null) mTetherChangeReceiver.onReceive(activity, intent);

        mEthernetListener = new EthernetListener();
        if (mEm != null)
            mEm.addListener(mEthernetListener);

        updateState();
@@ -340,6 +341,7 @@ public class TetherSettings extends RestrictedSettingsFragment
        }
        getActivity().unregisterReceiver(mTetherChangeReceiver);
        mTm.unregisterTetheringEventCallback(mTetheringEventCallback);
        if (mEm != null)
            mEm.removeListener(mEthernetListener);
        mTetherChangeReceiver = null;
        mStartTetheringCallback = 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 {
+3 −2
Original line number Diff line number Diff line
@@ -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) {