OSDN Git Service

Fix gray out previously connected device preference issue
authorIvan Chiang <chiangi@google.com>
Thu, 24 May 2018 09:52:49 +0000 (17:52 +0800)
committerIvan Chiang <chiangi@google.com>
Fri, 25 May 2018 08:51:30 +0000 (08:51 +0000)
Count the dock devices in previously connected device controller.

Fix: 80227045
Test: m -j SettingsRoboTests RunSettingsRoboTests
Change-Id: I08d82ec715698ecf894a4a7cd0631c5f1de0f591
Merged-In: I08d82ec715698ecf894a4a7cd0631c5f1de0f591

src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceController.java
tests/robotests/src/com/android/settings/connecteddevice/PreviouslyConnectedDevicePreferenceControllerTest.java

index ba3ee1f..73c95ab 100644 (file)
@@ -21,26 +21,29 @@ import android.support.annotation.VisibleForTesting;
 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
@@ -62,12 +65,14 @@ public class PreviouslyConnectedDevicePreferenceController extends BasePreferenc
     @Override
     public void onStart() {
         mBluetoothDeviceUpdater.registerCallback();
+        mSavedDockUpdater.registerCallback();
         updatePreferenceOnSizeChanged();
     }
 
     @Override
     public void onStop() {
         mBluetoothDeviceUpdater.unregisterCallback();
+        mSavedDockUpdater.unregisterCallback();
     }
 
     public void init(DashboardFragment fragment) {
@@ -93,6 +98,11 @@ public class PreviouslyConnectedDevicePreferenceController extends BasePreferenc
     }
 
     @VisibleForTesting
+    void setSavedDockUpdater(DockUpdater savedDockUpdater) {
+        mSavedDockUpdater = savedDockUpdater;
+    }
+
+    @VisibleForTesting
     void setPreferenceSize(int size) {
         mPreferenceSize = size;
     }
index 444728a..d04b206 100644 (file)
@@ -21,6 +21,7 @@ import android.content.pm.PackageManager;
 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;
 
@@ -46,6 +47,8 @@ public class PreviouslyConnectedDevicePreferenceControllerTest {
     @Mock
     private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
     @Mock
+    private DockUpdater mDockUpdater;
+    @Mock
     private PackageManager mPackageManager;
 
     private Context mContext;
@@ -61,6 +64,7 @@ public class PreviouslyConnectedDevicePreferenceControllerTest {
         mPreConnectedDeviceController =
                 new PreviouslyConnectedDevicePreferenceController(mContext, KEY);
         mPreConnectedDeviceController.setBluetoothDeviceUpdater(mBluetoothDeviceUpdater);
+        mPreConnectedDeviceController.setSavedDockUpdater(mDockUpdater);
 
         mPreference = new Preference(mContext);
         mPreConnectedDeviceController.setPreference(mPreference);
@@ -71,10 +75,12 @@ public class PreviouslyConnectedDevicePreferenceControllerTest {
         // 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