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
diff --git a/Settings/AndroidManifest.xml b/Settings/AndroidManifest.xml
index 92240e7..7aeb242 100644
--- a/Settings/AndroidManifest.xml
+++ b/Settings/AndroidManifest.xml
@@ -417,14 +417,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 6798f0d..b196997 100644
--- a/Settings/src/com/android/tv/settings/MainFragment.java
+++ b/Settings/src/com/android/tv/settings/MainFragment.java
@@ -97,6 +97,8 @@
         }
     };
 
+    private final BroadcastReceiver mBtConnectionReceiver = new BluetoothConnectionsManager();
+
     public static MainFragment newInstance() {
         return new MainFragment();
     }
@@ -159,6 +161,12 @@
         final IntentFilter filter =
                 new IntentFilter(BluetoothConnectionsManager.ACTION_BLUETOOTH_UPDATE);
         LocalBroadcastManager.getInstance(getContext()).registerReceiver(mBCMReceiver, filter);
+
+        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);
     }
 
     @Override
@@ -182,6 +190,7 @@
     public void onStop() {
         super.onStop();
         mAuthenticatorHelper.stopListeningToAccountUpdates();
+        LocalBroadcastManager.getInstance(getContext()).unregisterReceiver(mBtConnectionReceiver);
         LocalBroadcastManager.getInstance(getContext()).unregisterReceiver(mBCMReceiver);
     }