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

Commit e24b145d authored by Chun-Ku Lin's avatar Chun-Ku Lin Committed by Android (Google) Code Review
Browse files

Merge "[Flag cleanup] remove separate_accessibility_vibration_settings_fragments" into main

parents 341595b7 bbb2f96a
Loading
Loading
Loading
Loading
+1 −6
Original line number Diff line number Diff line
@@ -30,7 +30,6 @@ import androidx.recyclerview.widget.RecyclerView;

import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.flags.Flags;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.search.SearchIndexable;

@@ -65,11 +64,7 @@ public class VibrationIntensitySettingsFragment extends DashboardFragment {
        final int supportedIntensityLevels = context.getResources().getInteger(
                R.integer.config_vibration_supported_intensity_levels);
        final boolean hasVibrator = context.getSystemService(Vibrator.class).hasVibrator();
        if (Flags.separateAccessibilityVibrationSettingsFragments()) {
        return hasVibrator && supportedIntensityLevels > 1;
        } else {
            return false;
        }
    }

    @Override
+1 −3
Original line number Diff line number Diff line
@@ -29,7 +29,6 @@ import androidx.preference.Preference;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.flags.Flags;

/** Controller for "Vibration & haptics" settings page. */
public class VibrationPreferenceController extends BasePreferenceController {
@@ -66,8 +65,7 @@ public class VibrationPreferenceController extends BasePreferenceController {

    @Override
    public boolean handlePreferenceTreeClick(Preference preference) {
        if (Flags.separateAccessibilityVibrationSettingsFragments()
                && TextUtils.equals(preference.getKey(), getPreferenceKey())) {
        if (TextUtils.equals(preference.getKey(), getPreferenceKey())) {
            if (mContext.getResources().getInteger(
                    R.integer.config_vibration_supported_intensity_levels) > 1) {
                launchVibrationSettingsFragment(VibrationIntensitySettingsFragment.class);
+6 −61
Original line number Diff line number Diff line
@@ -18,44 +18,23 @@ package com.android.settings.accessibility;

import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.res.Resources;
import android.os.Bundle;
import android.os.Vibrator;
import android.provider.SearchIndexableResource;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.VisibleForTesting;
import androidx.recyclerview.widget.RecyclerView;

import com.android.settings.R;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.flags.Flags;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.search.SearchIndexable;

import java.util.ArrayList;
import java.util.List;

/** Accessibility settings for the vibration. */
/**
 * Accessibility settings for the vibration.
 */
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
public class VibrationSettings extends DashboardFragment {

    private static final String TAG = "VibrationSettings";

    private static int getVibrationXmlResourceId(Context context) {
        if (Flags.separateAccessibilityVibrationSettingsFragments()) {
            return R.xml.accessibility_vibration_settings;
        }
        final int supportedIntensities = context.getResources().getInteger(
                R.integer.config_vibration_supported_intensity_levels);
        return supportedIntensities > 1
                ? R.xml.accessibility_vibration_intensity_settings
                : R.xml.accessibility_vibration_settings;

    }

    @Override
    public int getMetricsCategory() {
        return SettingsEnums.ACCESSIBILITY_VIBRATION;
@@ -68,7 +47,7 @@ public class VibrationSettings extends DashboardFragment {

    @Override
    protected int getPreferenceScreenResId() {
        return getVibrationXmlResourceId(getContext());
        return R.xml.accessibility_vibration_settings;
    }

    @Override
@@ -76,53 +55,19 @@ public class VibrationSettings extends DashboardFragment {
        return TAG;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        if (Flags.separateAccessibilityVibrationSettingsFragments()) {
            return super.onCreateView(inflater, container, savedInstanceState);
        }
        final View view = super.onCreateView(inflater, container, savedInstanceState);
        final RecyclerView rv = getListView();
        final Resources res = view.getResources();
        final int supportedIntensities = res.getInteger(
                R.integer.config_vibration_supported_intensity_levels);
        if (rv != null && supportedIntensities > 1) {
            final int bottom_padding = res.getDimensionPixelSize(
                    com.android.settingslib.widget.theme.R.dimen.settingslib_listPreferredItemPaddingEnd);
            rv.setPaddingRelative(rv.getPaddingStart(), rv.getPaddingTop(), rv.getPaddingEnd(),
                    rv.getPaddingBottom() + bottom_padding);
        }
        return view;
    }

    @VisibleForTesting
    static boolean isPageSearchEnabled(Context context) {
        final int supportedIntensityLevels = context.getResources().getInteger(
                R.integer.config_vibration_supported_intensity_levels);
        final boolean hasVibrator = context.getSystemService(Vibrator.class).hasVibrator();
        if (Flags.separateAccessibilityVibrationSettingsFragments()) {
        return hasVibrator && supportedIntensityLevels == 1;
        } else {
            return hasVibrator;
        }
    }

    public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
            new BaseSearchIndexProvider() {
            new BaseSearchIndexProvider(R.xml.accessibility_vibration_settings) {
                @Override
                protected boolean isPageSearchEnabled(Context context) {
                    return VibrationSettings.isPageSearchEnabled(context);
                }

                @Override
                public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
                        boolean enabled) {
                    final List<SearchIndexableResource> resourceData = new ArrayList<>();
                    final SearchIndexableResource sir = new SearchIndexableResource(context);
                    sir.xmlResId = getVibrationXmlResourceId(context);
                    resourceData.add(sir);
                    return resourceData;
                }
            };
}
+1 −9
Original line number Diff line number Diff line
@@ -17,35 +17,27 @@
package com.android.settings.accessibility;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;

import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.res.Resources;
import android.platform.test.annotations.RequiresFlagsEnabled;
import android.platform.test.flag.junit.CheckFlagsRule;
import android.platform.test.flag.junit.DeviceFlagsValueProvider;

import androidx.test.core.app.ApplicationProvider;

import com.android.settings.R;
import com.android.settings.flags.Flags;

import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;

/** Tests for {@link VibrationIntensitySettingsFragment}. */
@RunWith(RobolectricTestRunner.class)
@RequiresFlagsEnabled(Flags.FLAG_SEPARATE_ACCESSIBILITY_VIBRATION_SETTINGS_FRAGMENTS)
public class VibrationIntensitySettingsFragmentTest {

    @Rule
    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();

    private Context mContext;
    private Resources mResources;
    private VibrationIntensitySettingsFragment mFragment;
+2 −11
Original line number Diff line number Diff line
@@ -18,7 +18,9 @@ package com.android.settings.accessibility;

import static com.android.settings.core.BasePreferenceController.AVAILABLE;
import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_DEVICE;

import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doNothing;
@@ -29,9 +31,6 @@ import static org.mockito.Mockito.when;
import android.content.Context;
import android.content.res.Resources;
import android.os.Vibrator;
import android.platform.test.annotations.RequiresFlagsEnabled;
import android.platform.test.flag.junit.CheckFlagsRule;
import android.platform.test.flag.junit.DeviceFlagsValueProvider;
import android.provider.Settings;

import androidx.preference.Preference;
@@ -39,10 +38,8 @@ import androidx.preference.PreferenceScreen;
import androidx.test.core.app.ApplicationProvider;

import com.android.settings.R;
import com.android.settings.flags.Flags;

import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
@@ -51,10 +48,6 @@ import org.robolectric.RobolectricTestRunner;

@RunWith(RobolectricTestRunner.class)
public class VibrationPreferenceControllerTest {

    @Rule
    public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();

    private static final String PREFERENCE_KEY = "preference_key";
    private static final int OFF = 0;
    private static final int ON = 1;
@@ -130,7 +123,6 @@ public class VibrationPreferenceControllerTest {
    }

    @Test
    @RequiresFlagsEnabled(Flags.FLAG_SEPARATE_ACCESSIBILITY_VIBRATION_SETTINGS_FRAGMENTS)
    public void handlePreferenceTreeClick_oneIntensityLevel_opensVibrationSettings() {
        when(mResources.getInteger(R.integer.config_vibration_supported_intensity_levels))
                .thenReturn(1);
@@ -143,7 +135,6 @@ public class VibrationPreferenceControllerTest {
    }

    @Test
    @RequiresFlagsEnabled(Flags.FLAG_SEPARATE_ACCESSIBILITY_VIBRATION_SETTINGS_FRAGMENTS)
    public void handlePreferenceTreeClick_multipleIntensityLevels_opensVibrationIntensity() {
        when(mResources.getInteger(R.integer.config_vibration_supported_intensity_levels))
                .thenReturn(2);
Loading