Merge "[ConnectedDevicePage] Clean up flag enable_saved_devices_order_by_recency" into main

This commit is contained in:
Ze Li
2024-05-14 06:59:12 +00:00
committed by Android (Google) Code Review
5 changed files with 37 additions and 110 deletions

View File

@@ -14,10 +14,3 @@ flag {
description: "Gates whether to require an auth challenge for changing USB preferences" description: "Gates whether to require an auth challenge for changing USB preferences"
bug: "317367746" bug: "317367746"
} }
flag {
name: "enable_saved_devices_order_by_recency"
namespace: "pixel_cross_device_control"
description: "Order the saved bluetooth devices by most recently connected."
bug: "306160434"
}

View File

@@ -37,7 +37,6 @@ import com.android.settings.bluetooth.SavedBluetoothDeviceUpdater;
import com.android.settings.connecteddevice.dock.DockUpdater; 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.flags.Flags;
import com.android.settings.overlay.FeatureFactory; 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;
@@ -86,11 +85,7 @@ public class PreviouslyConnectedDevicePreferenceController extends BasePreferenc
mSavedDockUpdater = FeatureFactory.getFeatureFactory().getDockUpdaterFeatureProvider() mSavedDockUpdater = FeatureFactory.getFeatureFactory().getDockUpdaterFeatureProvider()
.getSavedDockUpdater(context, this); .getSavedDockUpdater(context, this);
mIntentFilter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED); mIntentFilter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
if (Flags.enableSavedDevicesOrderByRecency()) { mBluetoothAdapter = context.getSystemService(BluetoothManager.class).getAdapter();
mBluetoothAdapter = context.getSystemService(BluetoothManager.class).getAdapter();
} else {
mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
}
} }
@Override @Override
@@ -123,9 +118,7 @@ public class PreviouslyConnectedDevicePreferenceController extends BasePreferenc
mContext.registerReceiver(mReceiver, mIntentFilter, mContext.registerReceiver(mReceiver, mIntentFilter,
Context.RECEIVER_EXPORTED_UNAUDITED); Context.RECEIVER_EXPORTED_UNAUDITED);
mBluetoothDeviceUpdater.refreshPreference(); mBluetoothDeviceUpdater.refreshPreference();
if (Flags.enableSavedDevicesOrderByRecency()) { updatePreferenceGroup();
updatePreferenceGroup();
}
} }
@Override @Override
@@ -143,37 +136,17 @@ public class PreviouslyConnectedDevicePreferenceController extends BasePreferenc
@Override @Override
public void onDeviceAdded(Preference preference) { public void onDeviceAdded(Preference preference) {
if (Flags.enableSavedDevicesOrderByRecency()) { if (preference instanceof BluetoothDevicePreference) {
if (preference instanceof BluetoothDevicePreference) { mDevicePreferenceMap.put(
mDevicePreferenceMap.put( ((BluetoothDevicePreference) preference).getBluetoothDevice().getDevice(),
((BluetoothDevicePreference) preference).getBluetoothDevice().getDevice(), preference);
preference);
} else {
mDockDevicesList.add(preference);
}
if (DEBUG) {
Log.d(TAG, "onDeviceAdded() " + preference.getTitle());
}
updatePreferenceGroup();
} else { } else {
final List<BluetoothDevice> bluetoothDevices = mDockDevicesList.add(preference);
mBluetoothAdapter.getMostRecentlyConnectedDevices();
final int index =
preference instanceof BluetoothDevicePreference
? bluetoothDevices.indexOf(
((BluetoothDevicePreference) preference)
.getBluetoothDevice()
.getDevice())
: DOCK_DEVICE_INDEX;
if (DEBUG) {
Log.d(TAG, "onDeviceAdded() " + preference.getTitle() + ", index of : " + index);
for (BluetoothDevice device : bluetoothDevices) {
Log.d(TAG, "onDeviceAdded() most recently device : " + device.getName());
}
}
addPreference(index, preference);
updatePreferenceVisibility();
} }
if (DEBUG) {
Log.d(TAG, "onDeviceAdded() " + preference.getTitle());
}
updatePreferenceGroup();
} }
private void addPreference(int index, Preference preference) { private void addPreference(int index, Preference preference) {
@@ -224,28 +197,17 @@ public class PreviouslyConnectedDevicePreferenceController extends BasePreferenc
@Override @Override
public void onDeviceRemoved(Preference preference) { public void onDeviceRemoved(Preference preference) {
if (Flags.enableSavedDevicesOrderByRecency()) { if (preference instanceof BluetoothDevicePreference) {
if (preference instanceof BluetoothDevicePreference) { mDevicePreferenceMap.remove(
mDevicePreferenceMap.remove( ((BluetoothDevicePreference) preference).getBluetoothDevice().getDevice(),
((BluetoothDevicePreference) preference).getBluetoothDevice().getDevice(), preference);
preference);
} else {
mDockDevicesList.remove(preference);
}
if (DEBUG) {
Log.d(TAG, "onDeviceRemoved() " + preference.getTitle());
}
updatePreferenceGroup();
} else { } else {
if (preference instanceof BluetoothDevicePreference) { mDockDevicesList.remove(preference);
mDevicesList.remove(preference);
} else {
mDockDevicesList.remove(preference);
}
addPreference();
updatePreferenceVisibility();
} }
if (DEBUG) {
Log.d(TAG, "onDeviceRemoved() " + preference.getTitle());
}
updatePreferenceGroup();
} }
/** Sort the preferenceGroup by most recently used. */ /** Sort the preferenceGroup by most recently used. */

View File

@@ -33,7 +33,6 @@ import com.android.settings.connecteddevice.dock.DockUpdater;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.PreferenceControllerMixin; import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.flags.Flags;
import com.android.settings.overlay.DockUpdaterFeatureProvider; import com.android.settings.overlay.DockUpdaterFeatureProvider;
import com.android.settings.overlay.FeatureFactory; import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.core.lifecycle.LifecycleObserver; import com.android.settingslib.core.lifecycle.LifecycleObserver;
@@ -79,9 +78,7 @@ public class SavedDeviceGroupController extends BasePreferenceController
mBluetoothDeviceUpdater.registerCallback(); mBluetoothDeviceUpdater.registerCallback();
mSavedDockUpdater.registerCallback(); mSavedDockUpdater.registerCallback();
mBluetoothDeviceUpdater.refreshPreference(); mBluetoothDeviceUpdater.refreshPreference();
if (Flags.enableSavedDevicesOrderByRecency()) { updatePreferenceGroup();
updatePreferenceGroup();
}
} }
@Override @Override
@@ -119,42 +116,28 @@ public class SavedDeviceGroupController extends BasePreferenceController
@Override @Override
public void onDeviceAdded(Preference preference) { public void onDeviceAdded(Preference preference) {
if (Flags.enableSavedDevicesOrderByRecency()) { mPreferenceGroup.addPreference(preference);
mPreferenceGroup.addPreference(preference); if (preference instanceof BluetoothDevicePreference) {
if (preference instanceof BluetoothDevicePreference) { mDevicePreferenceMap.put(
mDevicePreferenceMap.put( ((BluetoothDevicePreference) preference).getBluetoothDevice().getDevice(),
((BluetoothDevicePreference) preference).getBluetoothDevice().getDevice(), preference);
preference);
} else {
mDockDevicesList.add(preference);
}
updatePreferenceGroup();
} else { } else {
if (mPreferenceGroup.getPreferenceCount() == 0) { mDockDevicesList.add(preference);
mPreferenceGroup.setVisible(true);
}
mPreferenceGroup.addPreference(preference);
} }
updatePreferenceGroup();
} }
@Override @Override
public void onDeviceRemoved(Preference preference) { public void onDeviceRemoved(Preference preference) {
if (Flags.enableSavedDevicesOrderByRecency()) { mPreferenceGroup.removePreference(preference);
mPreferenceGroup.removePreference(preference); if (preference instanceof BluetoothDevicePreference) {
if (preference instanceof BluetoothDevicePreference) { mDevicePreferenceMap.remove(
mDevicePreferenceMap.remove( ((BluetoothDevicePreference) preference).getBluetoothDevice().getDevice(),
((BluetoothDevicePreference) preference).getBluetoothDevice().getDevice(), preference);
preference);
} else {
mDockDevicesList.remove(preference);
}
updatePreferenceGroup();
} else { } else {
mPreferenceGroup.removePreference(preference); mDockDevicesList.remove(preference);
if (mPreferenceGroup.getPreferenceCount() == 0) {
mPreferenceGroup.setVisible(false);
}
} }
updatePreferenceGroup();
} }
/** Sort the preferenceGroup by most recently used. */ /** Sort the preferenceGroup by most recently used. */

View File

@@ -31,8 +31,6 @@ import android.bluetooth.BluetoothManager;
import android.content.Context; import android.content.Context;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.platform.test.annotations.RequiresFlagsDisabled;
import android.platform.test.annotations.RequiresFlagsEnabled;
import android.platform.test.flag.junit.CheckFlagsRule; import android.platform.test.flag.junit.CheckFlagsRule;
import android.platform.test.flag.junit.DeviceFlagsValueProvider; import android.platform.test.flag.junit.DeviceFlagsValueProvider;
import android.util.Pair; import android.util.Pair;
@@ -47,7 +45,6 @@ import com.android.settings.bluetooth.BluetoothDevicePreference;
import com.android.settings.bluetooth.BluetoothDeviceUpdater; import com.android.settings.bluetooth.BluetoothDeviceUpdater;
import com.android.settings.connecteddevice.dock.DockUpdater; import com.android.settings.connecteddevice.dock.DockUpdater;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.flags.Flags;
import com.android.settings.testutils.shadow.ShadowBluetoothAdapter; import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
import com.android.settings.widget.SingleTargetGearPreference; import com.android.settings.widget.SingleTargetGearPreference;
import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.CachedBluetoothDevice;
@@ -267,19 +264,17 @@ public class PreviouslyConnectedDevicePreferenceControllerTest {
} }
@Test @Test
@RequiresFlagsDisabled(Flags.FLAG_ENABLE_SAVED_DEVICES_ORDER_BY_RECENCY)
public void onDeviceAdded_addPreferenceNotExistInRecentlyDevices_noCrash() { public void onDeviceAdded_addPreferenceNotExistInRecentlyDevices_noCrash() {
final BluetoothDevicePreference preference = new BluetoothDevicePreference( final BluetoothDevicePreference preference = new BluetoothDevicePreference(
mContext, mCachedDevice5, true, BluetoothDevicePreference.SortType.TYPE_NO_SORT); mContext, mCachedDevice5, true, BluetoothDevicePreference.SortType.TYPE_NO_SORT);
mPreConnectedDeviceController.onDeviceAdded(preference); mPreConnectedDeviceController.onDeviceAdded(preference);
// 1 BluetoothDevicePreference and 1 see all preference // 1 see all preference
assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(2); assertThat(mPreferenceGroup.getPreferenceCount()).isEqualTo(1);
} }
@Test @Test
@RequiresFlagsEnabled(Flags.FLAG_ENABLE_SAVED_DEVICES_ORDER_BY_RECENCY)
public void onDeviceAdded_addPreferenceNotExistInRecentlyDevices_doNothing() { public void onDeviceAdded_addPreferenceNotExistInRecentlyDevices_doNothing() {
final BluetoothDevicePreference preference = new BluetoothDevicePreference( final BluetoothDevicePreference preference = new BluetoothDevicePreference(
mContext, mCachedDevice5, true, BluetoothDevicePreference.SortType.TYPE_NO_SORT); mContext, mCachedDevice5, true, BluetoothDevicePreference.SortType.TYPE_NO_SORT);
@@ -325,7 +320,6 @@ public class PreviouslyConnectedDevicePreferenceControllerTest {
} }
@Test @Test
@RequiresFlagsEnabled(Flags.FLAG_ENABLE_SAVED_DEVICES_ORDER_BY_RECENCY)
public void updatePreferenceGroup_bluetoothIsEnable_shouldOrderByMostRecentlyConnected() { public void updatePreferenceGroup_bluetoothIsEnable_shouldOrderByMostRecentlyConnected() {
when(mBluetoothAdapter.isEnabled()).thenReturn(true); when(mBluetoothAdapter.isEnabled()).thenReturn(true);
final BluetoothDevicePreference preference4 = final BluetoothDevicePreference preference4 =
@@ -361,7 +355,6 @@ public class PreviouslyConnectedDevicePreferenceControllerTest {
} }
@Test @Test
@RequiresFlagsEnabled(Flags.FLAG_ENABLE_SAVED_DEVICES_ORDER_BY_RECENCY)
public void updatePreferenceGroup_bluetoothIsDisable_shouldShowOnlySeeAllPreference() { public void updatePreferenceGroup_bluetoothIsDisable_shouldShowOnlySeeAllPreference() {
when(mBluetoothAdapter.isEnabled()).thenReturn(false); when(mBluetoothAdapter.isEnabled()).thenReturn(false);
final BluetoothDevicePreference preference4 = final BluetoothDevicePreference preference4 =

View File

@@ -31,7 +31,6 @@ import android.bluetooth.BluetoothManager;
import android.content.Context; import android.content.Context;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.platform.test.annotations.RequiresFlagsEnabled;
import android.platform.test.flag.junit.CheckFlagsRule; import android.platform.test.flag.junit.CheckFlagsRule;
import android.platform.test.flag.junit.DeviceFlagsValueProvider; import android.platform.test.flag.junit.DeviceFlagsValueProvider;
import android.util.Pair; import android.util.Pair;
@@ -45,7 +44,6 @@ import com.android.settings.bluetooth.BluetoothDevicePreference;
import com.android.settings.bluetooth.BluetoothDeviceUpdater; import com.android.settings.bluetooth.BluetoothDeviceUpdater;
import com.android.settings.connecteddevice.dock.DockUpdater; import com.android.settings.connecteddevice.dock.DockUpdater;
import com.android.settings.dashboard.DashboardFragment; import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.flags.Flags;
import com.android.settingslib.bluetooth.CachedBluetoothDevice; import com.android.settingslib.bluetooth.CachedBluetoothDevice;
import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -177,7 +175,6 @@ public class SavedDeviceGroupControllerTest {
} }
@Test @Test
@RequiresFlagsEnabled(Flags.FLAG_ENABLE_SAVED_DEVICES_ORDER_BY_RECENCY)
public void updatePreferenceGroup_bluetoothIsEnable_shouldOrderByMostRecentlyConnected() { public void updatePreferenceGroup_bluetoothIsEnable_shouldOrderByMostRecentlyConnected() {
when(mBluetoothAdapter.isEnabled()).thenReturn(true); when(mBluetoothAdapter.isEnabled()).thenReturn(true);
final BluetoothDevicePreference preference3 = final BluetoothDevicePreference preference3 =
@@ -213,7 +210,6 @@ public class SavedDeviceGroupControllerTest {
} }
@Test @Test
@RequiresFlagsEnabled(Flags.FLAG_ENABLE_SAVED_DEVICES_ORDER_BY_RECENCY)
public void updatePreferenceGroup_bluetoothIsDisable_shouldShowNoPreference() { public void updatePreferenceGroup_bluetoothIsDisable_shouldShowNoPreference() {
when(mBluetoothAdapter.isEnabled()).thenReturn(false); when(mBluetoothAdapter.isEnabled()).thenReturn(false);
final BluetoothDevicePreference preference3 = final BluetoothDevicePreference preference3 =