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

Commit ca21544f authored by jackqdyulei's avatar jackqdyulei
Browse files

Add nearby device SlicePreference

Change-Id: I9e88602df9ab589c3eea087b1202cbc7615dc810
Fixes: 116327443
Test: RunSettingsRoboTests
parent d2e7bfeb
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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>
+6 −0
Original line number Diff line number Diff line
@@ -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"
+4 −0
Original line number Diff line number Diff line
@@ -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)));
    }

    /**
+23 −7
Original line number Diff line number Diff line
@@ -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);
    }
}