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

Commit 7adf0e56 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Refactor HearingAidsFragment to use ShortcutFragment" into main

parents 94e48655 dd4b6418
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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"
+11 −45
Original line number Diff line number Diff line
@@ -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;
@@ -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
+2 −1
Original line number Diff line number Diff line
@@ -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;
@@ -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);
    }

+7 −4
Original line number Diff line number Diff line
@@ -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)
@@ -41,7 +44,7 @@ abstract class ShortcutFragment : BaseSupportFragment() {
                AccessibilityShortcutsTutorial.DialogFragment.showDialog(
                    getChildFragmentManager(),
                    prefController.getUserPreferredShortcutTypes(getFeatureComponentName()),
                    getShortcutLabel(),
                    getFeatureName(),
                    WizardManagerHelper.isAnySetupWizard(getIntent())
                )
            }
+6 −7
Original line number Diff line number Diff line
@@ -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() {
@@ -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;
@@ -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