Revert "Join HandlerThread if BLE is not supported"

context.getSystemService() cannot be called until boot phase
PHASE_SYSTEM_SERVICES_READY. Given that L2capNetworkProvider is
initialized inside ConnectivityService's constructor, this will not
work.

This reverts commit 7a5ba567eaca2a2087092d9c2db5e68f63494cfb.

Test: TH
Change-Id: Ife30ce17d62eb408eea6d7625bd7e2f402963b0d
diff --git a/service/src/com/android/server/L2capNetworkProvider.java b/service/src/com/android/server/L2capNetworkProvider.java
index d0b0603..e3becd6 100644
--- a/service/src/com/android/server/L2capNetworkProvider.java
+++ b/service/src/com/android/server/L2capNetworkProvider.java
@@ -95,8 +95,9 @@
     private final BlanketReservationOffer mBlanketOffer;
     private final Set<ReservedServerOffer> mReservedServerOffers = new ArraySet<>();
     private final ClientOffer mClientOffer;
-    private final BluetoothManager mBluetoothManager;
-    private final boolean mIsSupported;
+    // mBluetoothManager guaranteed non-null when read on handler thread after start() is called
+    @Nullable
+    private BluetoothManager mBluetoothManager;
 
     // Note: IFNAMSIZ is 16.
     private static final String TUN_IFNAME = "l2cap-tun";
@@ -680,8 +681,6 @@
         mProvider = mDeps.getNetworkProvider(context, mHandlerThread.getLooper());
         mBlanketOffer = new BlanketReservationOffer();
         mClientOffer = new ClientOffer();
-        mBluetoothManager = context.getSystemService(BluetoothManager.class);
-        mIsSupported = mContext.getPackageManager().hasSystemFeature(FEATURE_BLUETOOTH_LE);
     }
 
     /**
@@ -690,19 +689,17 @@
      * Called on CS Handler thread.
      */
     public void start() {
-        if (!mIsSupported) {
-            // In order to make mHandler final, the HandlerThread needs to be started before
-            // HandlerThread.getLooper() is called during the construction of the Handler.
-            mHandlerThread.quitSafely();
-            try {
-                mHandlerThread.join();
-            } catch (InterruptedException e) {
-                // join() interrupted. Do nothing.
-            }
-            return;
-        }
-
         mHandler.post(() -> {
+            final PackageManager pm = mContext.getPackageManager();
+            if (!pm.hasSystemFeature(FEATURE_BLUETOOTH_LE)) {
+                return;
+            }
+            mBluetoothManager = mContext.getSystemService(BluetoothManager.class);
+            if (mBluetoothManager == null) {
+                // Can this ever happen?
+                Log.wtf(TAG, "BluetoothManager not found");
+                return;
+            }
             mContext.getSystemService(ConnectivityManager.class).registerNetworkProvider(mProvider);
             mProvider.registerNetworkOffer(BlanketReservationOffer.SCORE,
                     BlanketReservationOffer.CAPABILITIES, mHandler::post, mBlanketOffer);