Add nearby device SlicePreference
Change-Id: I9e88602df9ab589c3eea087b1202cbc7615dc810 Fixes: 116327443 Test: RunSettingsRoboTests
This commit is contained in:
@@ -353,4 +353,7 @@
|
||||
|
||||
<!-- Whether or not extra preview panels should be used for screen zoom setting. -->
|
||||
<bool name="config_enable_extra_screen_zoom_preview">true</bool>
|
||||
|
||||
<!-- Slice Uri to query nearby devices. -->
|
||||
<string name="config_nearby_devices_slice_uri" translatable="false">content://com.google.android.gms.nearby.fastpair/device_status_list_item</string>
|
||||
</resources>
|
||||
|
@@ -20,6 +20,12 @@
|
||||
android:key="connected_devices_screen"
|
||||
android:title="@string/connected_devices_dashboard_title">
|
||||
|
||||
<com.android.settings.slices.SlicePreference
|
||||
android:key="bt_nearby_slice"
|
||||
android:title="@string/summary_placeholder"
|
||||
settings:controller="com.android.settings.slices.SlicePreferenceController"
|
||||
settings:allowDividerBelow="true"/>
|
||||
|
||||
<PreferenceCategory
|
||||
android:key="available_device_list"
|
||||
android:title="@string/connected_device_available_media_title"
|
||||
|
@@ -17,6 +17,7 @@ package com.android.settings.connecteddevice;
|
||||
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
import android.provider.SearchIndexableResource;
|
||||
|
||||
import androidx.annotation.VisibleForTesting;
|
||||
@@ -24,6 +25,7 @@ import androidx.annotation.VisibleForTesting;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
import com.android.settings.search.BaseSearchIndexProvider;
|
||||
import com.android.settings.slices.SlicePreferenceController;
|
||||
import com.android.settingslib.core.AbstractPreferenceController;
|
||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||
import com.android.settingslib.search.SearchIndexable;
|
||||
@@ -88,6 +90,8 @@ public class ConnectedDeviceDashboardFragment extends DashboardFragment {
|
||||
use(ConnectedDeviceGroupController.class).init(this);
|
||||
use(PreviouslyConnectedDevicePreferenceController.class).init(this);
|
||||
use(DiscoverableFooterPreferenceController.class).init(this);
|
||||
use(SlicePreferenceController.class).setSliceUri(
|
||||
Uri.parse(getString(R.string.config_nearby_devices_slice_uri)));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -15,10 +15,8 @@
|
||||
*/
|
||||
package com.android.settings.connecteddevice;
|
||||
|
||||
import static com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment
|
||||
.KEY_AVAILABLE_DEVICES;
|
||||
import static com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment
|
||||
.KEY_CONNECTED_DEVICES;
|
||||
import static com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment.KEY_AVAILABLE_DEVICES;
|
||||
import static com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment.KEY_CONNECTED_DEVICES;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
@@ -30,6 +28,9 @@ import android.content.pm.PackageManager;
|
||||
import android.provider.SearchIndexableResource;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.core.BasePreferenceController;
|
||||
import com.android.settings.core.PreferenceControllerListHelper;
|
||||
import com.android.settings.slices.SlicePreferenceController;
|
||||
import com.android.settings.testutils.shadow.ShadowBluetoothAdapter;
|
||||
import com.android.settings.testutils.shadow.ShadowConnectivityManager;
|
||||
import com.android.settings.testutils.shadow.ShadowUserManager;
|
||||
@@ -49,6 +50,7 @@ import java.util.List;
|
||||
@Config(shadows = {ShadowUserManager.class,
|
||||
ShadowConnectivityManager.class, ShadowBluetoothAdapter.class})
|
||||
public class ConnectedDeviceDashboardFragmentTest {
|
||||
private static final String KEY_NEARBY_DEVICES = "bt_nearby_slice";
|
||||
|
||||
@Mock
|
||||
private PackageManager mPackageManager;
|
||||
@@ -64,7 +66,7 @@ public class ConnectedDeviceDashboardFragmentTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSearchIndexProvider_shouldIndexResource() {
|
||||
public void searchIndexProvider_shouldIndexResource() {
|
||||
final List<SearchIndexableResource> indexRes =
|
||||
ConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER
|
||||
.getXmlResourcesToIndex(mContext, true /* enabled */);
|
||||
@@ -74,10 +76,24 @@ public class ConnectedDeviceDashboardFragmentTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNonIndexableKeys_existInXmlLayout() {
|
||||
public void nonIndexableKeys_existInXmlLayout() {
|
||||
final List<String> niks = ConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER
|
||||
.getNonIndexableKeys(mContext);
|
||||
|
||||
assertThat(niks).containsExactly(KEY_CONNECTED_DEVICES, KEY_AVAILABLE_DEVICES);
|
||||
assertThat(niks).containsExactly(KEY_CONNECTED_DEVICES, KEY_AVAILABLE_DEVICES,
|
||||
KEY_NEARBY_DEVICES);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getPreferenceControllers_containSlicePrefController() {
|
||||
final List<BasePreferenceController> controllers =
|
||||
PreferenceControllerListHelper.getPreferenceControllersFromXml(mContext,
|
||||
R.xml.connected_devices);
|
||||
|
||||
assertThat(controllers
|
||||
.stream()
|
||||
.filter(controller -> controller instanceof SlicePreferenceController)
|
||||
.count())
|
||||
.isEqualTo(1);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user