diff --git a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java index 08e9b88878a..5ee455070db 100644 --- a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java @@ -63,6 +63,7 @@ import com.android.settings.widget.SettingsMainSwitchPreference; import com.android.settingslib.accessibility.AccessibilityUtils; import com.android.settingslib.widget.IllustrationPreference; import com.android.settingslib.widget.OnMainSwitchChangeListener; +import com.android.settingslib.widget.TopIntroPreference; import com.google.android.setupcompat.util.WizardManagerHelper; @@ -92,8 +93,10 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference protected Uri mImageUri; private CharSequence mDescription; protected CharSequence mHtmlDescription; + protected CharSequence mTopIntroTitle; private static final String DRAWABLE_FOLDER = "drawable"; + protected static final String KEY_TOP_INTRO_PREFERENCE = "top_intro"; protected static final String KEY_USE_SERVICE_PREFERENCE = "use_service"; public static final String KEY_GENERAL_CATEGORY = "general_categories"; protected static final String KEY_HTML_DESCRIPTION_PREFERENCE = "html_description"; @@ -182,6 +185,7 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference // Need to be called as early as possible. Protected variables will be assigned here. onProcessArguments(getArguments()); + initTopIntroPreference(); initAnimatedImagePreference(); initToggleServiceSwitchPreference(); initGeneralCategory(); @@ -393,6 +397,7 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference /** Customizes the order by preference key. */ protected List getPreferenceOrderList() { final List lists = new ArrayList<>(); + lists.add(KEY_TOP_INTRO_PREFERENCE); lists.add(KEY_ANIMATED_IMAGE); lists.add(KEY_USE_SERVICE_PREFERENCE); lists.add(KEY_GENERAL_CATEGORY); @@ -461,6 +466,17 @@ public abstract class ToggleFeaturePreferenceFragment extends SettingsPreference getPreferenceScreen().addPreference(illustrationPreference); } + @VisibleForTesting + void initTopIntroPreference() { + if (TextUtils.isEmpty(mTopIntroTitle)) { + return; + } + final TopIntroPreference topIntroPreference = new TopIntroPreference(getPrefContext()); + topIntroPreference.setKey(KEY_TOP_INTRO_PREFERENCE); + topIntroPreference.setTitle(mTopIntroTitle); + getPreferenceScreen().addPreference(topIntroPreference); + } + private void initToggleServiceSwitchPreference() { mToggleServiceSwitchPreference = new SettingsMainSwitchPreference(getPrefContext()); mToggleServiceSwitchPreference.setKey(KEY_USE_SERVICE_PREFERENCE); diff --git a/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java b/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java index 5ea4edc8a8d..34a2f5b3eba 100644 --- a/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java +++ b/tests/robotests/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragmentTest.java @@ -51,6 +51,7 @@ import com.android.settings.R; import com.android.settings.accessibility.AccessibilityDialogUtils.DialogType; import com.android.settings.accessibility.AccessibilityUtil.UserShortcutType; import com.android.settings.testutils.shadow.ShadowFragment; +import com.android.settingslib.widget.TopIntroPreference; import org.junit.Before; import org.junit.Test; @@ -81,6 +82,7 @@ public class ToggleFeaturePreferenceFragmentTest { private static final String PLACEHOLDER_DIALOG_TITLE = "title"; private static final String DEFAULT_SUMMARY = "default summary"; private static final String DEFAULT_DESCRIPTION = "default description"; + private static final String DEFAULT_TOP_INTRO = "default top intro"; private static final String SOFTWARE_SHORTCUT_KEY = Settings.Secure.ACCESSIBILITY_BUTTON_TARGETS; @@ -293,6 +295,23 @@ public class ToggleFeaturePreferenceFragmentTest { assertThat(getLatestPopupWindow().isShowing()).isTrue(); } + @Test + public void initTopIntroPreference_hasTopIntroTitle_shouldSetAsExpectedValue() { + mFragment.mTopIntroTitle = DEFAULT_TOP_INTRO; + mFragment.initTopIntroPreference(); + + TopIntroPreference topIntroPreference = + (TopIntroPreference) mFragment.getPreferenceScreen().getPreference(/* index= */ 0); + assertThat(topIntroPreference.getTitle().toString()).isEqualTo(DEFAULT_TOP_INTRO); + } + + @Test + public void initTopIntroPreference_topIntroTitleIsNull_shouldNotAdded() { + mFragment.initTopIntroPreference(); + + assertThat(mFragment.getPreferenceScreen().getPreferenceCount()).isEqualTo(0); + } + @Test public void createFooterPreference_shouldSetAsExpectedValue() { mFragment.createFooterPreference(mFragment.getPreferenceScreen(),