diff --git a/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceController.java b/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceController.java
index 73c95ab..ba3ee1f 100644
--- a/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceController.java
+++ b/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceController.java
@@ -21,29 +21,26 @@
 import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceScreen;
 
+import android.util.Log;
 import com.android.settings.bluetooth.BluetoothDeviceUpdater;
 import com.android.settings.bluetooth.SavedBluetoothDeviceUpdater;
-import com.android.settings.connecteddevice.dock.DockUpdater;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.dashboard.DashboardFragment;
-import com.android.settings.overlay.FeatureFactory;
+
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
 import com.android.settingslib.core.lifecycle.events.OnStart;
 import com.android.settingslib.core.lifecycle.events.OnStop;
+import com.android.settingslib.utils.ThreadUtils;
 
 public class PreviouslyConnectedDevicePreferenceController extends BasePreferenceController
         implements LifecycleObserver, OnStart, OnStop, DevicePreferenceCallback {
 
     private Preference mPreference;
     private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
-    private DockUpdater mSavedDockUpdater;
     private int mPreferenceSize;
 
     public PreviouslyConnectedDevicePreferenceController(Context context, String preferenceKey) {
         super(context, preferenceKey);
-
-        mSavedDockUpdater = FeatureFactory.getFactory(
-                context).getDockUpdaterFeatureProvider().getSavedDockUpdater(context, this);
     }
 
     @Override
@@ -65,14 +62,12 @@
     @Override
     public void onStart() {
         mBluetoothDeviceUpdater.registerCallback();
-        mSavedDockUpdater.registerCallback();
         updatePreferenceOnSizeChanged();
     }
 
     @Override
     public void onStop() {
         mBluetoothDeviceUpdater.unregisterCallback();
-        mSavedDockUpdater.unregisterCallback();
     }
 
     public void init(DashboardFragment fragment) {
@@ -98,11 +93,6 @@
     }
 
     @VisibleForTesting
-    void setSavedDockUpdater(DockUpdater savedDockUpdater) {
-        mSavedDockUpdater = savedDockUpdater;
-    }
-
-    @VisibleForTesting
     void setPreferenceSize(int size) {
         mPreferenceSize = size;
     }
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceControllerTest.java
index d04b206..444728a 100644
--- a/tests/robotests/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceControllerTest.java
@@ -21,7 +21,6 @@
 import android.support.v7.preference.Preference;
 
 import com.android.settings.bluetooth.BluetoothDeviceUpdater;
-import com.android.settings.connecteddevice.dock.DockUpdater;
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
 
@@ -47,8 +46,6 @@
     @Mock
     private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
     @Mock
-    private DockUpdater mDockUpdater;
-    @Mock
     private PackageManager mPackageManager;
 
     private Context mContext;
@@ -64,7 +61,6 @@
         mPreConnectedDeviceController =
                 new PreviouslyConnectedDevicePreferenceController(mContext, KEY);
         mPreConnectedDeviceController.setBluetoothDeviceUpdater(mBluetoothDeviceUpdater);
-        mPreConnectedDeviceController.setSavedDockUpdater(mDockUpdater);
 
         mPreference = new Preference(mContext);
         mPreConnectedDeviceController.setPreference(mPreference);
@@ -75,12 +71,10 @@
         // register the callback in onStart()
         mPreConnectedDeviceController.onStart();
         verify(mBluetoothDeviceUpdater).registerCallback();
-        verify(mDockUpdater).registerCallback();
 
         // unregister the callback in onStop()
         mPreConnectedDeviceController.onStop();
         verify(mBluetoothDeviceUpdater).unregisterCallback();
-        verify(mDockUpdater).unregisterCallback();
     }
 
     @Test
