diff --git a/res/values/strings.xml b/res/values/strings.xml index de4e811a962..7c030100bc3 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -4952,6 +4952,8 @@ Interaction controls Tap assistance + + System controls Downloaded apps diff --git a/res/xml/accessibility_settings.xml b/res/xml/accessibility_settings.xml index 126865cc44b..b7c28b44bbe 100644 --- a/res/xml/accessibility_settings.xml +++ b/res/xml/accessibility_settings.xml @@ -65,25 +65,6 @@ android:persistent="false" android:title="@string/interaction_control_category_title"> - - - - - - + + + android:title="@string/accessibility_vibration_settings_title" + settings:controller="com.android.settings.accessibility.VibrationPreferenceController"/> diff --git a/res/xml/accessibility_system_controls.xml b/res/xml/accessibility_system_controls.xml new file mode 100644 index 00000000000..12797d1d078 --- /dev/null +++ b/res/xml/accessibility_system_controls.xml @@ -0,0 +1,42 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/com/android/settings/accessibility/SystemControlsFragment.java b/src/com/android/settings/accessibility/SystemControlsFragment.java new file mode 100644 index 00000000000..237f2b4425b --- /dev/null +++ b/src/com/android/settings/accessibility/SystemControlsFragment.java @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.accessibility; + +import android.app.settings.SettingsEnums; + +import com.android.settings.R; +import com.android.settings.dashboard.DashboardFragment; +import com.android.settings.search.BaseSearchIndexProvider; +import com.android.settingslib.search.SearchIndexable; + +/** Accessibility settings for system controls. */ +@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC) +public class SystemControlsFragment extends DashboardFragment { + + private static final String TAG = "SystemControlsFragment"; + + @Override + public int getMetricsCategory() { + return SettingsEnums.ACCESSIBILITY_SYSTEM_CONTROLS; + } + + @Override + protected int getPreferenceScreenResId() { + return R.xml.accessibility_system_controls; + } + + @Override + protected String getLogTag() { + return TAG; + } + + public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = + new BaseSearchIndexProvider(R.xml.accessibility_system_controls); + +} diff --git a/tests/robotests/src/com/android/settings/accessibility/SystemControlsFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/SystemControlsFragmentTest.java new file mode 100644 index 00000000000..4b12900dea6 --- /dev/null +++ b/tests/robotests/src/com/android/settings/accessibility/SystemControlsFragmentTest.java @@ -0,0 +1,50 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.accessibility; + +import static com.google.common.truth.Truth.assertThat; + +import android.content.Context; + +import androidx.test.core.app.ApplicationProvider; + +import com.android.settings.R; +import com.android.settings.testutils.XmlTestUtils; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.robolectric.RobolectricTestRunner; + +import java.util.List; + +/** Tests for {@link SystemControlsFragment}. */ +@RunWith(RobolectricTestRunner.class) +public class SystemControlsFragmentTest { + + private Context mContext = ApplicationProvider.getApplicationContext(); + + @Test + public void getNonIndexableKeys_existInXmlLayout() { + final List niks = SystemControlsFragment.SEARCH_INDEX_DATA_PROVIDER + .getNonIndexableKeys(mContext); + final List keys = + XmlTestUtils.getKeysFromPreferenceXml(mContext, + R.xml.accessibility_system_controls); + + assertThat(keys).containsAtLeastElementsIn(niks); + } +}