Show docks on previously connected devices page

Implement previously connected Dock Devices part into
SavedDeviceGroupController.

Bug: 78095209
Test: m -j SettingsRoboTests RunSettingsRoboTests
Change-Id: I3dd318556167c98bc90c0c1c7281804177b9ff74
This commit is contained in:
Ivan Chiang
2018-04-18 19:06:36 +08:00
parent 98e37691c4
commit 6b76e34768
2 changed files with 25 additions and 2 deletions

View File

@@ -24,9 +24,12 @@ import android.support.v7.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.core.PreferenceControllerMixin;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.overlay.DockUpdaterFeatureProvider;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
@@ -45,19 +48,27 @@ public class SavedDeviceGroupController extends BasePreferenceController
@VisibleForTesting
PreferenceGroup mPreferenceGroup;
private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
private DockUpdater mSavedDockUpdater;
public SavedDeviceGroupController(Context context) {
super(context, KEY);
DockUpdaterFeatureProvider dockUpdaterFeatureProvider =
FeatureFactory.getFactory(context).getDockUpdaterFeatureProvider();
mSavedDockUpdater =
dockUpdaterFeatureProvider.getSavedDockUpdater(context, this);
}
@Override
public void onStart() {
mBluetoothDeviceUpdater.registerCallback();
mSavedDockUpdater.registerCallback();
}
@Override
public void onStop() {
mBluetoothDeviceUpdater.unregisterCallback();
mSavedDockUpdater.unregisterCallback();
}
@Override
@@ -67,6 +78,7 @@ public class SavedDeviceGroupController extends BasePreferenceController
mPreferenceGroup.setVisible(false);
mBluetoothDeviceUpdater.setPrefContext(screen.getContext());
mBluetoothDeviceUpdater.forceUpdate();
mSavedDockUpdater.forceUpdate();
}
}
@@ -105,6 +117,11 @@ public class SavedDeviceGroupController extends BasePreferenceController
@VisibleForTesting
public void setBluetoothDeviceUpdater(BluetoothDeviceUpdater bluetoothDeviceUpdater) {
mBluetoothDeviceUpdater = bluetoothDeviceUpdater;
mBluetoothDeviceUpdater = bluetoothDeviceUpdater;
}
@VisibleForTesting
public void setSavedDockUpdater(DockUpdater savedDockUpdater) {
mSavedDockUpdater = savedDockUpdater;
}
}

View File

@@ -27,6 +27,7 @@ import android.content.Context;
import android.content.pm.PackageManager;
import android.support.v7.preference.PreferenceManager;
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;
import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -47,6 +48,8 @@ public class SavedDeviceGroupControllerTest {
private DashboardFragment mDashboardFragment;
@Mock
private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
@Mock
private DockUpdater mSavedDockUpdater;
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private PreferenceManager mPreferenceManager;
@Mock
@@ -67,6 +70,7 @@ public class SavedDeviceGroupControllerTest {
doReturn(mPackageManager).when(mContext).getPackageManager();
mSavedDeviceGroupController = new SavedDeviceGroupController(mContext);
mSavedDeviceGroupController.setBluetoothDeviceUpdater(mBluetoothDeviceUpdater);
mSavedDeviceGroupController.setSavedDockUpdater(mSavedDockUpdater);
}
@Test
@@ -74,12 +78,14 @@ public class SavedDeviceGroupControllerTest {
// register the callback in onStart()
mSavedDeviceGroupController.onStart();
verify(mBluetoothDeviceUpdater).registerCallback();
verify(mSavedDockUpdater).registerCallback();
}
@Test
public void testUnregister() {
// unregister the callback in onStop()
mSavedDeviceGroupController.onStop();
verify(mBluetoothDeviceUpdater).unregisterCallback();
verify(mSavedDockUpdater).unregisterCallback();
}
@Test
public void testGetAvailabilityStatus_noBluetoothFeature_returnUnSupported() {
@@ -93,4 +99,4 @@ public class SavedDeviceGroupControllerTest {
assertThat(mSavedDeviceGroupController.getAvailabilityStatus()).isEqualTo(
AVAILABLE);
}
}
}