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

Commit c5143cee authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add nearby device SlicePreference"

parents 5e7a15f0 ca21544f
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);
    }
}