Loading res/xml/accessibility_hearing_aids.xml +6 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,12 @@ android:fragment="com.android.settings.accessibility.AccessibilityAudioRoutingFragment" settings:controller="com.android.settings.accessibility.HearingAidAudioRoutingPreferenceController"/> <com.android.settings.accessibility.ShortcutPreference android:key="hearing_aids_shortcut_preference" android:title="@string/accessibility_hearing_device_shortcut_title" android:persistent="false" settings:controller="com.android.settings.accessibility.ToggleShortcutPreferenceController"/> <SwitchPreferenceCompat android:key="hearing_aid_compatibility" android:order="30" Loading src/com/android/settings/accessibility/AccessibilityHearingAidsFragment.java +11 −45 Original line number Diff line number Diff line Loading @@ -18,60 +18,36 @@ package com.android.settings.accessibility; import static android.os.UserManager.DISALLOW_CONFIG_BLUETOOTH; import static com.android.internal.accessibility.AccessibilityShortcutController.ACCESSIBILITY_HEARING_AIDS_COMPONENT_NAME; import android.app.settings.SettingsEnums; import android.content.ComponentName; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import androidx.preference.PreferenceCategory; import com.android.internal.accessibility.AccessibilityShortcutController; import com.android.settings.R; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settingslib.search.SearchIndexable; /** Accessibility settings for hearing aids. */ @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC) public class AccessibilityHearingAidsFragment extends AccessibilityShortcutPreferenceFragment { public class AccessibilityHearingAidsFragment extends ShortcutFragment { private static final String TAG = "AccessibilityHearingAidsFragment"; private static final String KEY_HEARING_OPTIONS_CATEGORY = "hearing_options_category"; private static final int SHORTCUT_PREFERENCE_IN_CATEGORY_INDEX = 20; private String mFeatureName; public AccessibilityHearingAidsFragment() { super(DISALLOW_CONFIG_BLUETOOTH); } @Override public void onAttach(Context context) { public void onAttach(@NonNull Context context) { super.onAttach(context); use(AvailableHearingDevicePreferenceController.class).init(this); use(SavedHearingDevicePreferenceController.class).init(this); use(HearingAidCompatibilityPreferenceController.class).init(this); } @Override public void onCreate(Bundle savedInstanceState) { mFeatureName = getContext().getString(R.string.accessibility_hearingaid_title); super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View view = super.onCreateView(inflater, container, savedInstanceState); final PreferenceCategory controlCategory = findPreference(KEY_HEARING_OPTIONS_CATEGORY); // To move the shortcut preference under controlCategory need to remove the original added. mShortcutPreference.setOrder(SHORTCUT_PREFERENCE_IN_CATEGORY_INDEX); getPreferenceScreen().removePreference(mShortcutPreference); controlCategory.addPreference(mShortcutPreference); return view; } @Override public int getMetricsCategory() { return SettingsEnums.ACCESSIBILITY_HEARING_AID_SETTINGS; Loading @@ -87,26 +63,16 @@ public class AccessibilityHearingAidsFragment extends AccessibilityShortcutPrefe return TAG; } @NonNull @Override protected ComponentName getComponentName() { return AccessibilityShortcutController.ACCESSIBILITY_HEARING_AIDS_COMPONENT_NAME; } @Override protected CharSequence getLabelName() { return mFeatureName; } @Override protected boolean showGeneralCategory() { // Have static preference under dynamically created PreferenceCategory KEY_GENERAL_CATEGORY. // In order to modify that, we need to use our own PreferenceCategory for this page. return false; public ComponentName getFeatureComponentName() { return ACCESSIBILITY_HEARING_AIDS_COMPONENT_NAME; } @NonNull @Override protected CharSequence getShortcutTitle() { return getText(R.string.accessibility_hearing_device_shortcut_title); public CharSequence getFeatureName() { return getText(R.string.accessibility_hearingaid_title); } @VisibleForTesting Loading src/com/android/settings/accessibility/BaseRestrictedSupportFragment.java +2 −1 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.app.settings.SettingsEnums; import android.os.Bundle; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.settings.accessibility.actionbar.FeedbackMenuController; import com.android.settings.dashboard.RestrictedDashboardFragment; Loading @@ -32,7 +33,7 @@ import com.android.settings.dashboard.RestrictedDashboardFragment; */ public abstract class BaseRestrictedSupportFragment extends RestrictedDashboardFragment { public BaseRestrictedSupportFragment(@NonNull String restrictionKey) { public BaseRestrictedSupportFragment(@Nullable String restrictionKey) { super(restrictionKey); } Loading src/com/android/settings/accessibility/ShortcutFragment.kt +7 −4 Original line number Diff line number Diff line Loading @@ -23,11 +23,14 @@ import com.android.settings.accessibility.shortcuts.EditShortcutsPreferenceFragm import com.google.android.setupcompat.util.WizardManagerHelper /** * Base class for Fragment that holds a [ShortcutPreference] * Base class for Fragment that holds a [ShortcutPreference]. By default, the fragment * is not restricted. If the fragment should be restricted, pass the restriction key when calling * super's constructor. See [com.android.settings.dashboard.RestrictedDashboardFragment] */ abstract class ShortcutFragment : BaseSupportFragment() { abstract class ShortcutFragment(restrictionKey: String? = null) : BaseRestrictedSupportFragment(restrictionKey) { abstract fun getShortcutLabel(): CharSequence abstract fun getFeatureName(): CharSequence abstract fun getFeatureComponentName(): ComponentName open fun getShortcutPreferenceController(): ToggleShortcutPreferenceController { return use<ToggleShortcutPreferenceController>(ToggleShortcutPreferenceController::class.java) Loading @@ -41,7 +44,7 @@ abstract class ShortcutFragment : BaseSupportFragment() { AccessibilityShortcutsTutorial.DialogFragment.showDialog( getChildFragmentManager(), prefController.getUserPreferredShortcutTypes(getFeatureComponentName()), getShortcutLabel(), getFeatureName(), WizardManagerHelper.isAnySetupWizard(getIntent()) ) } Loading src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java +6 −7 Original line number Diff line number Diff line Loading @@ -37,12 +37,6 @@ public class ToggleAutoclickPreferenceFragment extends ShortcutFragment { private static final String TAG = "AutoclickPrefFragment"; @NonNull @Override public CharSequence getShortcutLabel() { return requireContext().getString(R.string.accessibility_autoclick_shortcut_title); } @NonNull @Override public ToggleShortcutPreferenceController getShortcutPreferenceController() { Loading @@ -55,6 +49,12 @@ public class ToggleAutoclickPreferenceFragment extends ShortcutFragment { return AUTOCLICK_COMPONENT_NAME; } @NonNull @Override public CharSequence getFeatureName() { return getText(R.string.accessibility_autoclick_preference_title); } @Override public int getMetricsCategory() { return SettingsEnums.ACCESSIBILITY_TOGGLE_AUTOCLICK; Loading Loading @@ -83,5 +83,4 @@ public class ToggleAutoclickPreferenceFragment extends ShortcutFragment { public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider(R.xml.accessibility_autoclick_settings); } Loading
res/xml/accessibility_hearing_aids.xml +6 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,12 @@ android:fragment="com.android.settings.accessibility.AccessibilityAudioRoutingFragment" settings:controller="com.android.settings.accessibility.HearingAidAudioRoutingPreferenceController"/> <com.android.settings.accessibility.ShortcutPreference android:key="hearing_aids_shortcut_preference" android:title="@string/accessibility_hearing_device_shortcut_title" android:persistent="false" settings:controller="com.android.settings.accessibility.ToggleShortcutPreferenceController"/> <SwitchPreferenceCompat android:key="hearing_aid_compatibility" android:order="30" Loading
src/com/android/settings/accessibility/AccessibilityHearingAidsFragment.java +11 −45 Original line number Diff line number Diff line Loading @@ -18,60 +18,36 @@ package com.android.settings.accessibility; import static android.os.UserManager.DISALLOW_CONFIG_BLUETOOTH; import static com.android.internal.accessibility.AccessibilityShortcutController.ACCESSIBILITY_HEARING_AIDS_COMPONENT_NAME; import android.app.settings.SettingsEnums; import android.content.ComponentName; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; import androidx.preference.PreferenceCategory; import com.android.internal.accessibility.AccessibilityShortcutController; import com.android.settings.R; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settingslib.search.SearchIndexable; /** Accessibility settings for hearing aids. */ @SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC) public class AccessibilityHearingAidsFragment extends AccessibilityShortcutPreferenceFragment { public class AccessibilityHearingAidsFragment extends ShortcutFragment { private static final String TAG = "AccessibilityHearingAidsFragment"; private static final String KEY_HEARING_OPTIONS_CATEGORY = "hearing_options_category"; private static final int SHORTCUT_PREFERENCE_IN_CATEGORY_INDEX = 20; private String mFeatureName; public AccessibilityHearingAidsFragment() { super(DISALLOW_CONFIG_BLUETOOTH); } @Override public void onAttach(Context context) { public void onAttach(@NonNull Context context) { super.onAttach(context); use(AvailableHearingDevicePreferenceController.class).init(this); use(SavedHearingDevicePreferenceController.class).init(this); use(HearingAidCompatibilityPreferenceController.class).init(this); } @Override public void onCreate(Bundle savedInstanceState) { mFeatureName = getContext().getString(R.string.accessibility_hearingaid_title); super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View view = super.onCreateView(inflater, container, savedInstanceState); final PreferenceCategory controlCategory = findPreference(KEY_HEARING_OPTIONS_CATEGORY); // To move the shortcut preference under controlCategory need to remove the original added. mShortcutPreference.setOrder(SHORTCUT_PREFERENCE_IN_CATEGORY_INDEX); getPreferenceScreen().removePreference(mShortcutPreference); controlCategory.addPreference(mShortcutPreference); return view; } @Override public int getMetricsCategory() { return SettingsEnums.ACCESSIBILITY_HEARING_AID_SETTINGS; Loading @@ -87,26 +63,16 @@ public class AccessibilityHearingAidsFragment extends AccessibilityShortcutPrefe return TAG; } @NonNull @Override protected ComponentName getComponentName() { return AccessibilityShortcutController.ACCESSIBILITY_HEARING_AIDS_COMPONENT_NAME; } @Override protected CharSequence getLabelName() { return mFeatureName; } @Override protected boolean showGeneralCategory() { // Have static preference under dynamically created PreferenceCategory KEY_GENERAL_CATEGORY. // In order to modify that, we need to use our own PreferenceCategory for this page. return false; public ComponentName getFeatureComponentName() { return ACCESSIBILITY_HEARING_AIDS_COMPONENT_NAME; } @NonNull @Override protected CharSequence getShortcutTitle() { return getText(R.string.accessibility_hearing_device_shortcut_title); public CharSequence getFeatureName() { return getText(R.string.accessibility_hearingaid_title); } @VisibleForTesting Loading
src/com/android/settings/accessibility/BaseRestrictedSupportFragment.java +2 −1 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import android.app.settings.SettingsEnums; import android.os.Bundle; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.android.settings.accessibility.actionbar.FeedbackMenuController; import com.android.settings.dashboard.RestrictedDashboardFragment; Loading @@ -32,7 +33,7 @@ import com.android.settings.dashboard.RestrictedDashboardFragment; */ public abstract class BaseRestrictedSupportFragment extends RestrictedDashboardFragment { public BaseRestrictedSupportFragment(@NonNull String restrictionKey) { public BaseRestrictedSupportFragment(@Nullable String restrictionKey) { super(restrictionKey); } Loading
src/com/android/settings/accessibility/ShortcutFragment.kt +7 −4 Original line number Diff line number Diff line Loading @@ -23,11 +23,14 @@ import com.android.settings.accessibility.shortcuts.EditShortcutsPreferenceFragm import com.google.android.setupcompat.util.WizardManagerHelper /** * Base class for Fragment that holds a [ShortcutPreference] * Base class for Fragment that holds a [ShortcutPreference]. By default, the fragment * is not restricted. If the fragment should be restricted, pass the restriction key when calling * super's constructor. See [com.android.settings.dashboard.RestrictedDashboardFragment] */ abstract class ShortcutFragment : BaseSupportFragment() { abstract class ShortcutFragment(restrictionKey: String? = null) : BaseRestrictedSupportFragment(restrictionKey) { abstract fun getShortcutLabel(): CharSequence abstract fun getFeatureName(): CharSequence abstract fun getFeatureComponentName(): ComponentName open fun getShortcutPreferenceController(): ToggleShortcutPreferenceController { return use<ToggleShortcutPreferenceController>(ToggleShortcutPreferenceController::class.java) Loading @@ -41,7 +44,7 @@ abstract class ShortcutFragment : BaseSupportFragment() { AccessibilityShortcutsTutorial.DialogFragment.showDialog( getChildFragmentManager(), prefController.getUserPreferredShortcutTypes(getFeatureComponentName()), getShortcutLabel(), getFeatureName(), WizardManagerHelper.isAnySetupWizard(getIntent()) ) } Loading
src/com/android/settings/accessibility/ToggleAutoclickPreferenceFragment.java +6 −7 Original line number Diff line number Diff line Loading @@ -37,12 +37,6 @@ public class ToggleAutoclickPreferenceFragment extends ShortcutFragment { private static final String TAG = "AutoclickPrefFragment"; @NonNull @Override public CharSequence getShortcutLabel() { return requireContext().getString(R.string.accessibility_autoclick_shortcut_title); } @NonNull @Override public ToggleShortcutPreferenceController getShortcutPreferenceController() { Loading @@ -55,6 +49,12 @@ public class ToggleAutoclickPreferenceFragment extends ShortcutFragment { return AUTOCLICK_COMPONENT_NAME; } @NonNull @Override public CharSequence getFeatureName() { return getText(R.string.accessibility_autoclick_preference_title); } @Override public int getMetricsCategory() { return SettingsEnums.ACCESSIBILITY_TOGGLE_AUTOCLICK; Loading Loading @@ -83,5 +83,4 @@ public class ToggleAutoclickPreferenceFragment extends ShortcutFragment { public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = new BaseSearchIndexProvider(R.xml.accessibility_autoclick_settings); }