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

Commit c6d7191c authored by Ivan Chiang's avatar Ivan Chiang
Browse files

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
parent 429c7871
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -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;
+6 −0
Original line number Diff line number Diff line
@@ -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