Loading res/xml/accessibility_vibration_settings.xml +9 −5 Original line number Diff line number Diff line Loading @@ -14,17 +14,21 @@ limitations under the License. --> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:key="accessibility_settings_vibration_screen" android:title="@string/accessibility_vibration_settings_title"> <Preference android:fragment="com.android.settings.accessibility.NotificationVibrationPreferenceFragment" android:key="notification_vibration_preference_screen" android:title="@string/accessibility_notification_vibration_title" /> android:title="@string/accessibility_notification_vibration_title" app:controller="com.android.settings.accessibility.NotificationVibrationIntensityPreferenceController" /> <Preference android:fragment="com.android.settings.accessibility.TouchVibrationPreferenceFragment" android:key="touch_vibration_preference_screen" android:title="@string/accessibility_touch_vibration_title" /> android:title="@string/accessibility_touch_vibration_title" app:controller="com.android.settings.accessibility.HapticFeedbackIntensityPreferenceController" /> </PreferenceScreen> src/com/android/settings/accessibility/VibrationSettings.java +0 −30 Original line number Diff line number Diff line Loading @@ -23,8 +23,6 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.lifecycle.Lifecycle; import java.util.ArrayList; import java.util.List; Loading @@ -51,28 +49,6 @@ public class VibrationSettings extends DashboardFragment { return TAG; } @Override protected List<AbstractPreferenceController> createPreferenceControllers(Context context) { return buildControllers(context, getLifecycle()); } public static List<AbstractPreferenceController> buildControllers(Context context, Lifecycle lifecycle) { final List<AbstractPreferenceController> controllers = new ArrayList<>(); final NotificationVibrationIntensityPreferenceController notifVibPrefController = new NotificationVibrationIntensityPreferenceController(context); final HapticFeedbackIntensityPreferenceController hapticPreferenceController = new HapticFeedbackIntensityPreferenceController(context); controllers.add(hapticPreferenceController); controllers.add(notifVibPrefController); if (lifecycle != null) { lifecycle.addObserver(hapticPreferenceController); lifecycle.addObserver(notifVibPrefController); } return controllers; } public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider() { @Override Loading @@ -84,11 +60,5 @@ public class VibrationSettings extends DashboardFragment { indexables.add(indexable); return indexables; } @Override public List<AbstractPreferenceController> createPreferenceControllers( Context context) { return buildControllers(context, null /* lifecycle */); } }; } tests/robotests/src/com/android/settings/slices/SliceControllerInXmlTest.java +21 −36 Original line number Diff line number Diff line Loading @@ -16,16 +16,17 @@ package com.android.settings.slices; import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_CONTROLLER; import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertWithMessage; import static org.mockito.Mockito.spy; import android.content.Context; import android.content.res.XmlResourceParser; import android.os.Bundle; import android.provider.SearchIndexableResource; import android.text.TextUtils; import android.util.AttributeSet; import android.util.Xml; import com.android.settings.core.PreferenceXmlParserUtils; import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.codeinspection.ClassScanner; import com.android.settings.core.codeinspection.CodeInspector; Loading @@ -34,7 +35,6 @@ import com.android.settings.search.DatabaseIndexingUtils; import com.android.settings.search.Indexable; import com.android.settings.search.SearchFeatureProvider; import com.android.settings.search.SearchFeatureProviderImpl; import com.android.settings.core.PreferenceXmlParserUtils; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.SettingsRobolectricTestRunner; Loading @@ -42,8 +42,9 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RuntimeEnvironment; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; Loading Loading @@ -71,7 +72,7 @@ public class SliceControllerInXmlTest { private FakeFeatureFactory mFakeFeatureFactory; @Before public void setUp() { public void setUp() throws IOException, XmlPullParserException { mContext = spy(RuntimeEnvironment.application); mSearchProvider = new SearchFeatureProviderImpl(); Loading @@ -83,38 +84,22 @@ public class SliceControllerInXmlTest { initDeclaredControllers(); } private void initDeclaredControllers() { private void initDeclaredControllers() throws IOException, XmlPullParserException { final List<Integer> xmlResources = getIndexableXml(); XmlResourceParser parser; for (int xmlResId : xmlResources) { try { parser = mContext.getResources().getXml(xmlResId); int type; while ((type = parser.next()) != XmlPullParser.END_DOCUMENT && type != XmlPullParser.START_TAG) { // Parse next until start tag is found } final int outerDepth = parser.getDepth(); final AttributeSet attrs = Xml.asAttributeSet(parser); String controllerClassName; while ((type = parser.next()) != XmlPullParser.END_DOCUMENT && (type != XmlPullParser.END_TAG || parser.getDepth() > outerDepth)) { if (type == XmlPullParser.END_TAG || type == XmlPullParser.TEXT) { final List<Bundle> metadata = PreferenceXmlParserUtils.extractMetadata(mContext, xmlResId, PreferenceXmlParserUtils.MetadataFlag.FLAG_NEED_PREF_CONTROLLER); for (Bundle bundle : metadata) { final String controllerClassName = bundle.getString(METADATA_CONTROLLER); if (TextUtils.isEmpty(controllerClassName)) { continue; } controllerClassName = PreferenceXmlParserUtils.getController(mContext, attrs); if (!TextUtils.isEmpty(controllerClassName)) { mXmlDeclaredControllers.add(controllerClassName); } } } catch (Exception e) { // Assume an issue with robolectric resources } } // We definitely have some controllers in xml, so assert not-empty here as a proxy to // make sure the parser didn't fail assertThat(mXmlDeclaredControllers).isNotEmpty(); } @Test Loading Loading
res/xml/accessibility_vibration_settings.xml +9 −5 Original line number Diff line number Diff line Loading @@ -14,17 +14,21 @@ limitations under the License. --> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:key="accessibility_settings_vibration_screen" android:title="@string/accessibility_vibration_settings_title"> <Preference android:fragment="com.android.settings.accessibility.NotificationVibrationPreferenceFragment" android:key="notification_vibration_preference_screen" android:title="@string/accessibility_notification_vibration_title" /> android:title="@string/accessibility_notification_vibration_title" app:controller="com.android.settings.accessibility.NotificationVibrationIntensityPreferenceController" /> <Preference android:fragment="com.android.settings.accessibility.TouchVibrationPreferenceFragment" android:key="touch_vibration_preference_screen" android:title="@string/accessibility_touch_vibration_title" /> android:title="@string/accessibility_touch_vibration_title" app:controller="com.android.settings.accessibility.HapticFeedbackIntensityPreferenceController" /> </PreferenceScreen>
src/com/android/settings/accessibility/VibrationSettings.java +0 −30 Original line number Diff line number Diff line Loading @@ -23,8 +23,6 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.R; import com.android.settings.dashboard.DashboardFragment; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.lifecycle.Lifecycle; import java.util.ArrayList; import java.util.List; Loading @@ -51,28 +49,6 @@ public class VibrationSettings extends DashboardFragment { return TAG; } @Override protected List<AbstractPreferenceController> createPreferenceControllers(Context context) { return buildControllers(context, getLifecycle()); } public static List<AbstractPreferenceController> buildControllers(Context context, Lifecycle lifecycle) { final List<AbstractPreferenceController> controllers = new ArrayList<>(); final NotificationVibrationIntensityPreferenceController notifVibPrefController = new NotificationVibrationIntensityPreferenceController(context); final HapticFeedbackIntensityPreferenceController hapticPreferenceController = new HapticFeedbackIntensityPreferenceController(context); controllers.add(hapticPreferenceController); controllers.add(notifVibPrefController); if (lifecycle != null) { lifecycle.addObserver(hapticPreferenceController); lifecycle.addObserver(notifVibPrefController); } return controllers; } public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider() { @Override Loading @@ -84,11 +60,5 @@ public class VibrationSettings extends DashboardFragment { indexables.add(indexable); return indexables; } @Override public List<AbstractPreferenceController> createPreferenceControllers( Context context) { return buildControllers(context, null /* lifecycle */); } }; }
tests/robotests/src/com/android/settings/slices/SliceControllerInXmlTest.java +21 −36 Original line number Diff line number Diff line Loading @@ -16,16 +16,17 @@ package com.android.settings.slices; import static com.android.settings.core.PreferenceXmlParserUtils.METADATA_CONTROLLER; import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertWithMessage; import static org.mockito.Mockito.spy; import android.content.Context; import android.content.res.XmlResourceParser; import android.os.Bundle; import android.provider.SearchIndexableResource; import android.text.TextUtils; import android.util.AttributeSet; import android.util.Xml; import com.android.settings.core.PreferenceXmlParserUtils; import com.android.settings.core.TogglePreferenceController; import com.android.settings.core.codeinspection.ClassScanner; import com.android.settings.core.codeinspection.CodeInspector; Loading @@ -34,7 +35,6 @@ import com.android.settings.search.DatabaseIndexingUtils; import com.android.settings.search.Indexable; import com.android.settings.search.SearchFeatureProvider; import com.android.settings.search.SearchFeatureProviderImpl; import com.android.settings.core.PreferenceXmlParserUtils; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.SettingsRobolectricTestRunner; Loading @@ -42,8 +42,9 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RuntimeEnvironment; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; Loading Loading @@ -71,7 +72,7 @@ public class SliceControllerInXmlTest { private FakeFeatureFactory mFakeFeatureFactory; @Before public void setUp() { public void setUp() throws IOException, XmlPullParserException { mContext = spy(RuntimeEnvironment.application); mSearchProvider = new SearchFeatureProviderImpl(); Loading @@ -83,38 +84,22 @@ public class SliceControllerInXmlTest { initDeclaredControllers(); } private void initDeclaredControllers() { private void initDeclaredControllers() throws IOException, XmlPullParserException { final List<Integer> xmlResources = getIndexableXml(); XmlResourceParser parser; for (int xmlResId : xmlResources) { try { parser = mContext.getResources().getXml(xmlResId); int type; while ((type = parser.next()) != XmlPullParser.END_DOCUMENT && type != XmlPullParser.START_TAG) { // Parse next until start tag is found } final int outerDepth = parser.getDepth(); final AttributeSet attrs = Xml.asAttributeSet(parser); String controllerClassName; while ((type = parser.next()) != XmlPullParser.END_DOCUMENT && (type != XmlPullParser.END_TAG || parser.getDepth() > outerDepth)) { if (type == XmlPullParser.END_TAG || type == XmlPullParser.TEXT) { final List<Bundle> metadata = PreferenceXmlParserUtils.extractMetadata(mContext, xmlResId, PreferenceXmlParserUtils.MetadataFlag.FLAG_NEED_PREF_CONTROLLER); for (Bundle bundle : metadata) { final String controllerClassName = bundle.getString(METADATA_CONTROLLER); if (TextUtils.isEmpty(controllerClassName)) { continue; } controllerClassName = PreferenceXmlParserUtils.getController(mContext, attrs); if (!TextUtils.isEmpty(controllerClassName)) { mXmlDeclaredControllers.add(controllerClassName); } } } catch (Exception e) { // Assume an issue with robolectric resources } } // We definitely have some controllers in xml, so assert not-empty here as a proxy to // make sure the parser didn't fail assertThat(mXmlDeclaredControllers).isNotEmpty(); } @Test Loading