Show Dock devices in Connected devices page

Implement Connected Dock Devices part into
ConnectedDeviceGroupController.

Bug: 77945034
Test: m -j SettingsRoboTests RunSettingsRoboTests
Change-Id: Id5a75217f64d84038222604fca40613361e6f45d
This commit is contained in:
Ivan Chiang
2018-04-12 18:21:51 +08:00
parent a6b773a3e1
commit 98e37691c4
2 changed files with 31 additions and 9 deletions

View File

@@ -22,16 +22,19 @@ import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceGroup;
import android.support.v7.preference.PreferenceScreen;
import com.android.settings.bluetooth.BluetoothDeviceUpdater;
import com.android.settings.bluetooth.ConnectedBluetoothDeviceUpdater;
import com.android.settings.connecteddevice.dock.DockUpdater;
import com.android.settings.connecteddevice.usb.ConnectedUsbDeviceUpdater;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.bluetooth.BluetoothDeviceUpdater;
import com.android.settings.bluetooth.ConnectedBluetoothDeviceUpdater;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.overlay.DockUpdaterFeatureProvider;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
/**
* Controller to maintain the {@link android.support.v7.preference.PreferenceGroup} for all
@@ -47,6 +50,7 @@ public class ConnectedDeviceGroupController extends BasePreferenceController
PreferenceGroup mPreferenceGroup;
private BluetoothDeviceUpdater mBluetoothDeviceUpdater;
private ConnectedUsbDeviceUpdater mConnectedUsbDeviceUpdater;
private DockUpdater mConnectedDockUpdater;
public ConnectedDeviceGroupController(Context context) {
super(context, KEY);
@@ -56,12 +60,14 @@ public class ConnectedDeviceGroupController extends BasePreferenceController
public void onStart() {
mBluetoothDeviceUpdater.registerCallback();
mConnectedUsbDeviceUpdater.registerCallback();
mConnectedDockUpdater.registerCallback();
}
@Override
public void onStop() {
mConnectedUsbDeviceUpdater.unregisterCallback();
mBluetoothDeviceUpdater.unregisterCallback();
mConnectedDockUpdater.unregisterCallback();
}
@Override
@@ -74,6 +80,7 @@ public class ConnectedDeviceGroupController extends BasePreferenceController
mBluetoothDeviceUpdater.setPrefContext(screen.getContext());
mBluetoothDeviceUpdater.forceUpdate();
mConnectedUsbDeviceUpdater.initUsbPreference(screen.getContext());
mConnectedDockUpdater.forceUpdate();
}
}
@@ -107,13 +114,22 @@ public class ConnectedDeviceGroupController extends BasePreferenceController
@VisibleForTesting
public void init(BluetoothDeviceUpdater bluetoothDeviceUpdater,
ConnectedUsbDeviceUpdater connectedUsbDeviceUpdater) {
ConnectedUsbDeviceUpdater connectedUsbDeviceUpdater,
DockUpdater connectedDockUpdater) {
mBluetoothDeviceUpdater = bluetoothDeviceUpdater;
mConnectedUsbDeviceUpdater = connectedUsbDeviceUpdater;
mConnectedDockUpdater = connectedDockUpdater;
}
public void init(DashboardFragment fragment) {
init(new ConnectedBluetoothDeviceUpdater(fragment.getContext(), fragment, this),
new ConnectedUsbDeviceUpdater(fragment.getContext(), fragment, this));
final Context context = fragment.getContext();
DockUpdaterFeatureProvider dockUpdaterFeatureProvider =
FeatureFactory.getFactory(context).getDockUpdaterFeatureProvider();
final DockUpdater connectedDockUpdater =
dockUpdaterFeatureProvider.getConnectedDockUpdater(context, this);
init(new ConnectedBluetoothDeviceUpdater(context, fragment, this),
new ConnectedUsbDeviceUpdater(context, fragment, this),
connectedDockUpdater);
}
}

View File

@@ -19,6 +19,7 @@ import static com.android.settings.core.BasePreferenceController.AVAILABLE;
import static com.android.settings.core.BasePreferenceController.DISABLED_UNSUPPORTED;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.spy;
@@ -34,6 +35,7 @@ import android.support.v7.preference.PreferenceManager;
import android.support.v7.preference.PreferenceScreen;
import com.android.settings.bluetooth.ConnectedBluetoothDeviceUpdater;
import com.android.settings.connecteddevice.dock.DockUpdater;
import com.android.settings.connecteddevice.usb.ConnectedUsbDeviceUpdater;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -63,6 +65,8 @@ public class ConnectedDeviceGroupControllerTest {
@Mock
private ConnectedUsbDeviceUpdater mConnectedUsbDeviceUpdater;
@Mock
private DockUpdater mConnectedDockUpdater;
@Mock
private PreferenceScreen mPreferenceScreen;
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private PreferenceManager mPreferenceManager;
@@ -87,8 +91,8 @@ public class ConnectedDeviceGroupControllerTest {
doReturn(mContext).when(mDashboardFragment).getContext();
mConnectedDeviceGroupController = new ConnectedDeviceGroupController(mContext);
mConnectedDeviceGroupController
.init(mConnectedBluetoothDeviceUpdater, mConnectedUsbDeviceUpdater);
mConnectedDeviceGroupController.init(mConnectedBluetoothDeviceUpdater,
mConnectedUsbDeviceUpdater, mConnectedDockUpdater);
mConnectedDeviceGroupController.mPreferenceGroup = mPreferenceGroup;
}
@@ -136,6 +140,7 @@ public class ConnectedDeviceGroupControllerTest {
mConnectedDeviceGroupController.onStart();
verify(mConnectedBluetoothDeviceUpdater).registerCallback();
verify(mConnectedUsbDeviceUpdater).registerCallback();
verify(mConnectedDockUpdater).registerCallback();
}
@Test
@@ -144,6 +149,7 @@ public class ConnectedDeviceGroupControllerTest {
mConnectedDeviceGroupController.onStop();
verify(mConnectedBluetoothDeviceUpdater).unregisterCallback();
verify(mConnectedUsbDeviceUpdater).unregisterCallback();
verify(mConnectedDockUpdater).unregisterCallback();
}
@Test