[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
(cherry picked from commit 08e95d0db0ee336a6a6681a5d820b28c6d7db67a)
diff --git a/src/com/android/settings/TetherSettings.java b/src/com/android/settings/TetherSettings.java
index c61e573..ac758dc 100644
--- a/src/com/android/settings/TetherSettings.java
+++ b/src/com/android/settings/TetherSettings.java
@@ -172,7 +172,7 @@
                 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 @@
         if (intent != null) mTetherChangeReceiver.onReceive(activity, intent);
 
         mEthernetListener = new EthernetListener();
-        mEm.addListener(mEthernetListener);
+        if (mEm != null)
+            mEm.addListener(mEthernetListener);
 
         updateState();
     }
@@ -340,7 +341,8 @@
         }
         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 @@
         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 {