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. -->
|
<!-- Whether or not extra preview panels should be used for screen zoom setting. -->
|
||||||
<bool name="config_enable_extra_screen_zoom_preview">true</bool>
|
<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>
|
</resources>
|
||||||
|
@@ -20,6 +20,12 @@
|
|||||||
android:key="connected_devices_screen"
|
android:key="connected_devices_screen"
|
||||||
android:title="@string/connected_devices_dashboard_title">
|
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
|
<PreferenceCategory
|
||||||
android:key="available_device_list"
|
android:key="available_device_list"
|
||||||
android:title="@string/connected_device_available_media_title"
|
android:title="@string/connected_device_available_media_title"
|
||||||
|
@@ -17,6 +17,7 @@ package com.android.settings.connecteddevice;
|
|||||||
|
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.net.Uri;
|
||||||
import android.provider.SearchIndexableResource;
|
import android.provider.SearchIndexableResource;
|
||||||
|
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
@@ -24,6 +25,7 @@ import androidx.annotation.VisibleForTesting;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.dashboard.DashboardFragment;
|
import com.android.settings.dashboard.DashboardFragment;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
|
import com.android.settings.slices.SlicePreferenceController;
|
||||||
import com.android.settingslib.core.AbstractPreferenceController;
|
import com.android.settingslib.core.AbstractPreferenceController;
|
||||||
import com.android.settingslib.core.lifecycle.Lifecycle;
|
import com.android.settingslib.core.lifecycle.Lifecycle;
|
||||||
import com.android.settingslib.search.SearchIndexable;
|
import com.android.settingslib.search.SearchIndexable;
|
||||||
@@ -88,6 +90,8 @@ public class ConnectedDeviceDashboardFragment extends DashboardFragment {
|
|||||||
use(ConnectedDeviceGroupController.class).init(this);
|
use(ConnectedDeviceGroupController.class).init(this);
|
||||||
use(PreviouslyConnectedDevicePreferenceController.class).init(this);
|
use(PreviouslyConnectedDevicePreferenceController.class).init(this);
|
||||||
use(DiscoverableFooterPreferenceController.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;
|
package com.android.settings.connecteddevice;
|
||||||
|
|
||||||
import static com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment
|
import static com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment.KEY_AVAILABLE_DEVICES;
|
||||||
.KEY_AVAILABLE_DEVICES;
|
import static com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment.KEY_CONNECTED_DEVICES;
|
||||||
import static com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment
|
|
||||||
.KEY_CONNECTED_DEVICES;
|
|
||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
@@ -30,6 +28,9 @@ import android.content.pm.PackageManager;
|
|||||||
import android.provider.SearchIndexableResource;
|
import android.provider.SearchIndexableResource;
|
||||||
|
|
||||||
import com.android.settings.R;
|
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.ShadowBluetoothAdapter;
|
||||||
import com.android.settings.testutils.shadow.ShadowConnectivityManager;
|
import com.android.settings.testutils.shadow.ShadowConnectivityManager;
|
||||||
import com.android.settings.testutils.shadow.ShadowUserManager;
|
import com.android.settings.testutils.shadow.ShadowUserManager;
|
||||||
@@ -49,6 +50,7 @@ import java.util.List;
|
|||||||
@Config(shadows = {ShadowUserManager.class,
|
@Config(shadows = {ShadowUserManager.class,
|
||||||
ShadowConnectivityManager.class, ShadowBluetoothAdapter.class})
|
ShadowConnectivityManager.class, ShadowBluetoothAdapter.class})
|
||||||
public class ConnectedDeviceDashboardFragmentTest {
|
public class ConnectedDeviceDashboardFragmentTest {
|
||||||
|
private static final String KEY_NEARBY_DEVICES = "bt_nearby_slice";
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private PackageManager mPackageManager;
|
private PackageManager mPackageManager;
|
||||||
@@ -64,7 +66,7 @@ public class ConnectedDeviceDashboardFragmentTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSearchIndexProvider_shouldIndexResource() {
|
public void searchIndexProvider_shouldIndexResource() {
|
||||||
final List<SearchIndexableResource> indexRes =
|
final List<SearchIndexableResource> indexRes =
|
||||||
ConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER
|
ConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER
|
||||||
.getXmlResourcesToIndex(mContext, true /* enabled */);
|
.getXmlResourcesToIndex(mContext, true /* enabled */);
|
||||||
@@ -74,10 +76,24 @@ public class ConnectedDeviceDashboardFragmentTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testNonIndexableKeys_existInXmlLayout() {
|
public void nonIndexableKeys_existInXmlLayout() {
|
||||||
final List<String> niks = ConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER
|
final List<String> niks = ConnectedDeviceDashboardFragment.SEARCH_INDEX_DATA_PROVIDER
|
||||||
.getNonIndexableKeys(mContext);
|
.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