Add nearby device SlicePreference

Change-Id: I9e88602df9ab589c3eea087b1202cbc7615dc810
Fixes: 116327443
Test: RunSettingsRoboTests
This commit is contained in:
jackqdyulei
2019-02-08 14:09:12 -08:00
parent d2e7bfeb1c
commit ca21544f99
4 changed files with 36 additions and 7 deletions

View File

@@ -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>

View File

@@ -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"

View File

@@ -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)));
}
/**

View File

@@ -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);
}
}