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

Commit 03a3b306 authored by Xinyi Zhou's avatar Xinyi Zhou
Browse files

Add MainSwitch for Fast Pair settings

Bug: 203579197
Test: Built and verified by logs
Change-Id: I68ef55f2601cce0f51a746d108187c94e496fb71
parent 38620605
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -5825,7 +5825,8 @@
    <!-- Fast Pair setting summary in settings screen [CHAR LIMIT=50] -->
    <string name="fast_pair_settings_summary">Nearby detection of Fast Pair bluetooth devices.</string>
    <!-- Title for Fast Pair main switch preferences. [CHAR LIMIT=50] -->
    <string name="fast_pair_main_switch_title">Scan for nearby devices</string>
    <!-- Printing settings -->
    <skip />
+5 −1
Original line number Diff line number Diff line
@@ -21,4 +21,8 @@
    android:title="@string/fast_pair_settings"
    settings:keywords="@string/keywords_fast_pair">

    <com.android.settingslib.widget.MainSwitchPreference
        android:key="fast_pair_scan_switch"
        android:title="@string/fast_pair_main_switch_title" />

</PreferenceScreen>
+24 −0
Original line number Diff line number Diff line
@@ -17,11 +17,16 @@
package com.android.settings.nearby;

import android.app.settings.SettingsEnums;
import android.os.Bundle;
import android.provider.Settings;

import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.widget.MainSwitchPreference;

import java.util.Objects;

/**
 * Fragment with the top level fast pair settings.
@@ -29,6 +34,21 @@ import com.android.settingslib.search.SearchIndexable;
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
public class FastPairSettingsFragment extends SettingsPreferenceFragment {

    private static final String SCAN_SWITCH_KEY = "fast_pair_scan_switch";

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);

        MainSwitchPreference mainSwitchPreference = Objects.requireNonNull(
                findPreference(SCAN_SWITCH_KEY));
        mainSwitchPreference.addOnSwitchChangeListener(
                (switchView, isChecked) ->
                        Settings.Secure.putInt(getContentResolver(),
                                Settings.Secure.FAST_PAIR_SCAN_ENABLED, isChecked ? 1 : 0));
        mainSwitchPreference.setChecked(isFastPairScanAvailable());
    }

    @Override
    public int getMetricsCategory() {
        return SettingsEnums.CONNECTION_DEVICE_ADVANCED_FAST_PAIR;
@@ -47,4 +67,8 @@ public class FastPairSettingsFragment extends SettingsPreferenceFragment {
    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
            new BaseSearchIndexProvider(R.xml.fast_pair_settings);

    private boolean isFastPairScanAvailable() {
        return Settings.Secure.getInt(getContentResolver(),
                Settings.Secure.FAST_PAIR_SCAN_ENABLED, 1) != 0;
    }
}