Settings: use foreground receiver for BT connect

Background intents don't work anymore, so we need to listen for these
intents in the running app instead.

Test: pair remote, let remote sleep (~30s), use remote again
Bug: 35301292
Change-Id: I1fd5394187c7a05b58621ae111814a427ca6ba38
(cherry picked from commit 2dbe436a43c79f8479deb5a911b3dc1a5acfb981)
diff --git a/Settings/AndroidManifest.xml b/Settings/AndroidManifest.xml
index f739f5d..f0a882b 100644
--- a/Settings/AndroidManifest.xml
+++ b/Settings/AndroidManifest.xml
@@ -418,14 +418,6 @@
             </intent-filter>
         </activity>
 
-        <receiver android:name=".accessories.BluetoothConnectionsManager" >
-            <intent-filter>
-                <action android:name="android.bluetooth.device.action.ACL_CONNECTED" />
-                <action android:name="android.bluetooth.device.action.ACL_DISCONNECTED" />
-                <action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
-            </intent-filter>
-        </receiver>
-
         <receiver android:name=".accessories.BluetoothPairingRequest" >
             <intent-filter>
                 <action android:name="android.bluetooth.device.action.PAIRING_REQUEST" />
diff --git a/Settings/src/com/android/tv/settings/MainFragment.java b/Settings/src/com/android/tv/settings/MainFragment.java
index c2ca9c5..3af07d5 100644
--- a/Settings/src/com/android/tv/settings/MainFragment.java
+++ b/Settings/src/com/android/tv/settings/MainFragment.java
@@ -98,6 +98,8 @@
         }
     };
 
+    private final BroadcastReceiver mBtConnectionReceiver = new BluetoothConnectionsManager();
+
     public static MainFragment newInstance() {
         return new MainFragment();
     }
@@ -160,7 +162,12 @@
         final IntentFilter filter =
                 new IntentFilter(BluetoothConnectionsManager.ACTION_BLUETOOTH_UPDATE);
         LocalBroadcastManager.getInstance(getContext()).registerReceiver(mBCMReceiver, filter);
-        mConnectivityListener.start();
+        IntentFilter btChangeFilter = new IntentFilter();
+        btChangeFilter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED);
+        btChangeFilter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED);
+        btChangeFilter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
+        LocalBroadcastManager.getInstance(getContext()).registerReceiver(mBtConnectionReceiver, btChangeFilter);
+	mConnectivityListener.start();
     }
 
     @Override
@@ -184,6 +191,7 @@
     public void onStop() {
         super.onStop();
         mAuthenticatorHelper.stopListeningToAccountUpdates();
+        LocalBroadcastManager.getInstance(getContext()).unregisterReceiver(mBtConnectionReceiver);
         LocalBroadcastManager.getInstance(getContext()).unregisterReceiver(mBCMReceiver);
         mConnectivityListener.stop();
     }