Fix gray out previously connected device preference issue

Count the dock devices in previously connected device controller.

Change-Id: I08d82ec715698ecf894a4a7cd0631c5f1de0f591
Fix: 80227045
Test: m -j SettingsRoboTests RunSettingsRoboTests
This commit is contained in:
Ivan Chiang
2018-05-24 17:52:49 +08:00
parent 429c787168
commit c6d7191cb9
2 changed files with 21 additions and 2 deletions

View File

@@ -21,11 +21,13 @@ import android.content.pm.PackageManager;
import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
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;
@@ -35,10 +37,14 @@ public class PreviouslyConnectedDevicePreferenceController extends BasePreferenc
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
@@ -60,12 +66,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) {
@@ -90,6 +98,11 @@ public class PreviouslyConnectedDevicePreferenceController extends BasePreferenc
mBluetoothDeviceUpdater = bluetoothDeviceUpdater;
}
@VisibleForTesting
void setSavedDockUpdater(DockUpdater savedDockUpdater) {
mSavedDockUpdater = savedDockUpdater;
}
@VisibleForTesting
void setPreferenceSize(int size) {
mPreferenceSize = size;

View File

@@ -20,6 +20,7 @@ import android.content.pm.PackageManager;
import androidx.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;
@@ -45,6 +46,8 @@ public class PreviouslyConnectedDevicePreferenceControllerTest {
@Mock
private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
@Mock
private DockUpdater mDockUpdater;
@Mock
private PackageManager mPackageManager;
private Context mContext;
@@ -60,6 +63,7 @@ public class PreviouslyConnectedDevicePreferenceControllerTest {
mPreConnectedDeviceController =
new PreviouslyConnectedDevicePreferenceController(mContext, KEY);
mPreConnectedDeviceController.setBluetoothDeviceUpdater(mBluetoothDeviceUpdater);
mPreConnectedDeviceController.setSavedDockUpdater(mDockUpdater);
mPreference = new Preference(mContext);
mPreConnectedDeviceController.setPreference(mPreference);
@@ -70,10 +74,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