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:
@@ -21,11 +21,13 @@ import android.content.pm.PackageManager;
|
|||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
|
|
||||||
import com.android.settings.bluetooth.BluetoothDeviceUpdater;
|
import com.android.settings.bluetooth.BluetoothDeviceUpdater;
|
||||||
import com.android.settings.bluetooth.SavedBluetoothDeviceUpdater;
|
import com.android.settings.bluetooth.SavedBluetoothDeviceUpdater;
|
||||||
|
import com.android.settings.connecteddevice.dock.DockUpdater;
|
||||||
import com.android.settings.core.BasePreferenceController;
|
import com.android.settings.core.BasePreferenceController;
|
||||||
import com.android.settings.dashboard.DashboardFragment;
|
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.LifecycleObserver;
|
||||||
import com.android.settingslib.core.lifecycle.events.OnStart;
|
import com.android.settingslib.core.lifecycle.events.OnStart;
|
||||||
import com.android.settingslib.core.lifecycle.events.OnStop;
|
import com.android.settingslib.core.lifecycle.events.OnStop;
|
||||||
@@ -35,10 +37,14 @@ public class PreviouslyConnectedDevicePreferenceController extends BasePreferenc
|
|||||||
|
|
||||||
private Preference mPreference;
|
private Preference mPreference;
|
||||||
private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
|
private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
|
||||||
|
private DockUpdater mSavedDockUpdater;
|
||||||
private int mPreferenceSize;
|
private int mPreferenceSize;
|
||||||
|
|
||||||
public PreviouslyConnectedDevicePreferenceController(Context context, String preferenceKey) {
|
public PreviouslyConnectedDevicePreferenceController(Context context, String preferenceKey) {
|
||||||
super(context, preferenceKey);
|
super(context, preferenceKey);
|
||||||
|
|
||||||
|
mSavedDockUpdater = FeatureFactory.getFactory(
|
||||||
|
context).getDockUpdaterFeatureProvider().getSavedDockUpdater(context, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -60,12 +66,14 @@ public class PreviouslyConnectedDevicePreferenceController extends BasePreferenc
|
|||||||
@Override
|
@Override
|
||||||
public void onStart() {
|
public void onStart() {
|
||||||
mBluetoothDeviceUpdater.registerCallback();
|
mBluetoothDeviceUpdater.registerCallback();
|
||||||
|
mSavedDockUpdater.registerCallback();
|
||||||
updatePreferenceOnSizeChanged();
|
updatePreferenceOnSizeChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onStop() {
|
public void onStop() {
|
||||||
mBluetoothDeviceUpdater.unregisterCallback();
|
mBluetoothDeviceUpdater.unregisterCallback();
|
||||||
|
mSavedDockUpdater.unregisterCallback();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void init(DashboardFragment fragment) {
|
public void init(DashboardFragment fragment) {
|
||||||
@@ -90,6 +98,11 @@ public class PreviouslyConnectedDevicePreferenceController extends BasePreferenc
|
|||||||
mBluetoothDeviceUpdater = bluetoothDeviceUpdater;
|
mBluetoothDeviceUpdater = bluetoothDeviceUpdater;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
void setSavedDockUpdater(DockUpdater savedDockUpdater) {
|
||||||
|
mSavedDockUpdater = savedDockUpdater;
|
||||||
|
}
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
void setPreferenceSize(int size) {
|
void setPreferenceSize(int size) {
|
||||||
mPreferenceSize = size;
|
mPreferenceSize = size;
|
||||||
|
@@ -20,6 +20,7 @@ import android.content.pm.PackageManager;
|
|||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
|
|
||||||
import com.android.settings.bluetooth.BluetoothDeviceUpdater;
|
import com.android.settings.bluetooth.BluetoothDeviceUpdater;
|
||||||
|
import com.android.settings.connecteddevice.dock.DockUpdater;
|
||||||
import com.android.settings.dashboard.DashboardFragment;
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
import com.android.settings.testutils.SettingsRobolectricTestRunner;
|
||||||
|
|
||||||
@@ -45,6 +46,8 @@ public class PreviouslyConnectedDevicePreferenceControllerTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
|
private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
|
||||||
@Mock
|
@Mock
|
||||||
|
private DockUpdater mDockUpdater;
|
||||||
|
@Mock
|
||||||
private PackageManager mPackageManager;
|
private PackageManager mPackageManager;
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
@@ -60,6 +63,7 @@ public class PreviouslyConnectedDevicePreferenceControllerTest {
|
|||||||
mPreConnectedDeviceController =
|
mPreConnectedDeviceController =
|
||||||
new PreviouslyConnectedDevicePreferenceController(mContext, KEY);
|
new PreviouslyConnectedDevicePreferenceController(mContext, KEY);
|
||||||
mPreConnectedDeviceController.setBluetoothDeviceUpdater(mBluetoothDeviceUpdater);
|
mPreConnectedDeviceController.setBluetoothDeviceUpdater(mBluetoothDeviceUpdater);
|
||||||
|
mPreConnectedDeviceController.setSavedDockUpdater(mDockUpdater);
|
||||||
|
|
||||||
mPreference = new Preference(mContext);
|
mPreference = new Preference(mContext);
|
||||||
mPreConnectedDeviceController.setPreference(mPreference);
|
mPreConnectedDeviceController.setPreference(mPreference);
|
||||||
@@ -70,10 +74,12 @@ public class PreviouslyConnectedDevicePreferenceControllerTest {
|
|||||||
// register the callback in onStart()
|
// register the callback in onStart()
|
||||||
mPreConnectedDeviceController.onStart();
|
mPreConnectedDeviceController.onStart();
|
||||||
verify(mBluetoothDeviceUpdater).registerCallback();
|
verify(mBluetoothDeviceUpdater).registerCallback();
|
||||||
|
verify(mDockUpdater).registerCallback();
|
||||||
|
|
||||||
// unregister the callback in onStop()
|
// unregister the callback in onStop()
|
||||||
mPreConnectedDeviceController.onStop();
|
mPreConnectedDeviceController.onStop();
|
||||||
verify(mBluetoothDeviceUpdater).unregisterCallback();
|
verify(mBluetoothDeviceUpdater).unregisterCallback();
|
||||||
|
verify(mDockUpdater).unregisterCallback();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Reference in New Issue
Block a user