resolve merge conflicts of f7a5fb6d to stage-aosp-master

Test: I solemnly swear I tested this conflict resolution.
Change-Id: I8171d349653590a858a21f4811e74d1993d70122
diff --git a/Settings/src/com/android/tv/settings/MainFragment.java b/Settings/src/com/android/tv/settings/MainFragment.java
index ed2ff2a..b58578b 100644
--- a/Settings/src/com/android/tv/settings/MainFragment.java
+++ b/Settings/src/com/android/tv/settings/MainFragment.java
@@ -36,7 +36,6 @@
 import android.os.Bundle;
 import android.os.UserHandle;
 import android.support.v17.preference.LeanbackPreferenceFragment;
-import android.support.v4.content.LocalBroadcastManager;
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceGroup;
 import android.text.TextUtils;
@@ -46,7 +45,6 @@
 import com.android.settingslib.accounts.AuthenticatorHelper;
 import com.android.tv.settings.accessories.AccessoryUtils;
 import com.android.tv.settings.accessories.BluetoothAccessoryFragment;
-import com.android.tv.settings.accessories.BluetoothConnectionsManager;
 import com.android.tv.settings.accounts.AccountSyncFragment;
 import com.android.tv.settings.accounts.AddAccountWithTypeActivity;
 import com.android.tv.settings.connectivity.ConnectivityListener;
@@ -97,8 +95,6 @@
         }
     };
 
-    private final BroadcastReceiver mBtConnectionReceiver = new BluetoothConnectionsManager();
-
     public static MainFragment newInstance() {
         return new MainFragment();
     }
@@ -158,15 +154,12 @@
     public void onStart() {
         super.onStart();
         mAuthenticatorHelper.listenToAccountUpdates();
-        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);
+        getContext().registerReceiver(mBCMReceiver, btChangeFilter);
     }
 
     @Override
@@ -190,8 +183,7 @@
     public void onStop() {
         super.onStop();
         mAuthenticatorHelper.stopListeningToAccountUpdates();
-        LocalBroadcastManager.getInstance(getContext()).unregisterReceiver(mBtConnectionReceiver);
-        LocalBroadcastManager.getInstance(getContext()).unregisterReceiver(mBCMReceiver);
+        getContext().unregisterReceiver(mBCMReceiver);
     }
 
     private void hideIfIntentUnhandled(Preference preference) {
@@ -327,8 +319,6 @@
             return;
         }
 
-        final Set<String> connectedBluetoothAddresses =
-                BluetoothConnectionsManager.getConnectedSet(getContext());
         final Context themedContext = getPreferenceManager().getContext();
 
         final Set<String> touchedKeys = new ArraySet<>(bondedDevices.size() + 1);
@@ -343,6 +333,7 @@
                 continue;
             }
 
+            final String desc = device.isConnected() ? getString(R.string.accessory_connected) : null;
             final String key = "BluetoothDevice:" + deviceAddress;
             touchedKeys.add(key);
             Preference preference = mAccessoriesGroup.findPreference(key);
@@ -352,9 +343,6 @@
             }
             final String deviceName = device.getName();
             preference.setTitle(deviceName);
-            final String desc = connectedBluetoothAddresses.contains(deviceAddress)
-                    ? getString(R.string.accessory_connected)
-                    : null;
             preference.setSummary(desc);
             final int deviceImgId = AccessoryUtils.getImageIdForDevice(device);
             preference.setIcon(deviceImgId);
diff --git a/Settings/src/com/android/tv/settings/accessories/BluetoothConnectionsManager.java b/Settings/src/com/android/tv/settings/accessories/BluetoothConnectionsManager.java
deleted file mode 100644
index 1917a66..0000000
--- a/Settings/src/com/android/tv/settings/accessories/BluetoothConnectionsManager.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package com.android.tv.settings.accessories;
-
-import android.bluetooth.BluetoothAdapter;
-import android.bluetooth.BluetoothDevice;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import android.content.SharedPreferences;
-import android.support.v4.content.LocalBroadcastManager;
-import android.text.TextUtils;
-
-import com.android.tv.settings.MainSettings;
-
-import java.util.HashSet;
-import java.util.Set;
-
-public class BluetoothConnectionsManager extends BroadcastReceiver {
-    private static final String PREFS_NAME = "bt-connected-devs";
-    private static final String KEY_CONNECTED_SET = "conencted-set";
-    private static final String KEY_BT_STATE = "bt-state";
-
-    public static final String ACTION_BLUETOOTH_UPDATE =
-            "BluetoothConnectionsManager.BLUETOOTH_UPDATE";
-
-    public void onReceive(Context context, Intent intent) {
-        onConnectionChanged(context, intent);
-    }
-
-    public static void onConnectionChanged(Context context, Intent intent) {
-        final String action = intent.getAction();
-
-        final SharedPreferences prefs =
-                context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
-        Set<String> connected = prefs.getStringSet(KEY_CONNECTED_SET, new HashSet<String>());
-        int btState = prefs.getInt(KEY_BT_STATE, BluetoothAdapter.STATE_OFF);
-
-        boolean listChanged = false;
-        boolean btStateChanged = false;
-
-        if (TextUtils.equals(action, BluetoothAdapter.ACTION_STATE_CHANGED)) {
-            final int newBtState = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,
-                    BluetoothAdapter.ERROR);
-
-            if (btState != newBtState) {
-                // if BT was just turned off, we can't be connected to any devices.
-                // if BT was just turned on, we haven't had the time to connect to any devices yet.
-                if (newBtState == BluetoothAdapter.STATE_ON ||
-                        newBtState == BluetoothAdapter.STATE_OFF) {
-                    listChanged = true;
-                    connected.clear();
-                }
-
-                btStateChanged = true;
-                btState = newBtState;
-            }
-        } else if (intent.getExtras() != null) {
-            BluetoothDevice device = intent.getExtras().getParcelable(BluetoothDevice.EXTRA_DEVICE);
-            if (device != null) {
-                if (TextUtils.equals(action, BluetoothDevice.ACTION_ACL_CONNECTED)) {
-                    listChanged = connected.add(device.getAddress());
-                } else if (TextUtils.equals(action, BluetoothDevice.ACTION_ACL_DISCONNECTED)) {
-                    listChanged = connected.remove(device.getAddress());
-                }
-            }
-        }
-
-        if (btStateChanged || listChanged) {
-            SharedPreferences.Editor editor = prefs.edit();
-
-            if (btStateChanged) {
-                editor.putInt(KEY_BT_STATE, btState);
-            }
-            if (listChanged) {
-                editor.putStringSet(KEY_CONNECTED_SET, connected);
-            }
-
-            editor.apply();
-        }
-
-        if (listChanged) {
-            LocalBroadcastManager.getInstance(context)
-                    .sendBroadcast(new Intent(ACTION_BLUETOOTH_UPDATE));
-        }
-    }
-
-    public static Set<String> getConnectedSet(Context context) {
-        SharedPreferences prefs = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
-        return prefs.getStringSet(KEY_CONNECTED_SET, new HashSet<String>());
-    }
-}