Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 98e37691 authored by Ivan Chiang's avatar Ivan Chiang
Browse files

Show Dock devices in Connected devices page

Implement Connected Dock Devices part into
ConnectedDeviceGroupController.

Bug: 77945034
Test: m -j SettingsRoboTests RunSettingsRoboTests
Change-Id: Id5a75217f64d84038222604fca40613361e6f45d
parent a6b773a3
Loading
Loading
Loading
Loading
+23 −7
Original line number Diff line number Diff line
@@ -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);
    }
}
+8 −2
Original line number Diff line number Diff line
@@ -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