[Hearing device shortcut] Setup shortcut for hearing device
* Hearing aids page need to set restricted mode to DISALLOW_CONFIG_BLUETOOTH, so change AccessibilityShortcutPreferenceFragment to extend RestrictedDashboardFragment * move ShortcutPreference under the device control category for the 1st order Bug: 237625815 Test: make RunSettingsRoboTests ROBOTEST_FILTER=AccessibilityShortcutPreferenceFragmentTest Change-Id: I13da8d979694aeab76d8a10edf1348c0ee7810f6
This commit is contained in:
@@ -18,33 +18,48 @@ package com.android.settings.accessibility;
|
||||
|
||||
import static android.os.UserManager.DISALLOW_CONFIG_BLUETOOTH;
|
||||
|
||||
import android.content.ComponentName;
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.preference.PreferenceCategory;
|
||||
|
||||
import com.android.internal.accessibility.AccessibilityShortcutController;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.dashboard.RestrictedDashboardFragment;
|
||||
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 RestrictedDashboardFragment {
|
||||
public class AccessibilityHearingAidsFragment extends AccessibilityShortcutPreferenceFragment {
|
||||
|
||||
private static final String TAG = "AccessibilityHearingAidsFragment";
|
||||
private static final String KEY_DEVICE_CONTROL_CATEGORY = "device_control_category";
|
||||
private static final int FIRST_PREFERENCE_IN_CATEGORY_INDEX = -1;
|
||||
private String mFeatureName;
|
||||
|
||||
public AccessibilityHearingAidsFragment() {
|
||||
super(DISALLOW_CONFIG_BLUETOOTH);
|
||||
}
|
||||
|
||||
@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) {
|
||||
// TODO(b/237625815): Add shortcutPreference by extending
|
||||
// AccessibilityShortcutPreferenceFragment
|
||||
|
||||
return super.onCreateView(inflater, container, savedInstanceState);
|
||||
final View view = super.onCreateView(inflater, container, savedInstanceState);
|
||||
final PreferenceCategory controlCategory = findPreference(KEY_DEVICE_CONTROL_CATEGORY);
|
||||
// Move the preference under controlCategory need to remove the original first.
|
||||
mShortcutPreference.setOrder(FIRST_PREFERENCE_IN_CATEGORY_INDEX);
|
||||
getPreferenceScreen().removePreference(mShortcutPreference);
|
||||
controlCategory.addPreference(mShortcutPreference);
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -63,6 +78,39 @@ public class AccessibilityHearingAidsFragment extends RestrictedDashboardFragmen
|
||||
return TAG;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ComponentName getComponentName() {
|
||||
return AccessibilityShortcutController.ACCESSIBILITY_HEARING_AIDS_COMPONENT_NAME;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected CharSequence getLabelName() {
|
||||
return mFeatureName;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ComponentName getTileComponentName() {
|
||||
// Don't have quick settings tile for now.
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected CharSequence getTileTooltipContent(int type) {
|
||||
// Don't have quick settings tile for now.
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean showGeneralCategory() {
|
||||
// Have customized category for accessibility hearings aids page.
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected CharSequence getShortcutTitle() {
|
||||
return getText(R.string.accessibility_hearing_device_shortcut_title);
|
||||
}
|
||||
|
||||
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
|
||||
new BaseSearchIndexProvider(R.xml.accessibility_hearing_aids);
|
||||
}
|
||||
|
@@ -148,11 +148,14 @@ public class AccessibilitySettings extends DashboardFragment {
|
||||
|
||||
public AccessibilitySettings() {
|
||||
// Observe changes to anything that the shortcut can toggle, so we can reflect updates
|
||||
final Collection<AccessibilityShortcutController.ToggleableFrameworkFeatureInfo> features =
|
||||
final Collection<AccessibilityShortcutController.FrameworkFeatureInfo> features =
|
||||
AccessibilityShortcutController.getFrameworkShortcutFeaturesMap().values();
|
||||
final List<String> shortcutFeatureKeys = new ArrayList<>(features.size());
|
||||
for (AccessibilityShortcutController.ToggleableFrameworkFeatureInfo feature : features) {
|
||||
shortcutFeatureKeys.add(feature.getSettingKey());
|
||||
for (AccessibilityShortcutController.FrameworkFeatureInfo feature : features) {
|
||||
final String key = feature.getSettingKey();
|
||||
if (key != null) {
|
||||
shortcutFeatureKeys.add(key);
|
||||
}
|
||||
}
|
||||
|
||||
// Observe changes from accessibility selection menu
|
||||
|
@@ -44,7 +44,7 @@ import androidx.preference.PreferenceScreen;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.accessibility.AccessibilityUtil.QuickSettingsTooltipType;
|
||||
import com.android.settings.dashboard.DashboardFragment;
|
||||
import com.android.settings.dashboard.RestrictedDashboardFragment;
|
||||
import com.android.settings.utils.LocaleUtils;
|
||||
|
||||
import com.google.android.setupcompat.util.WizardManagerHelper;
|
||||
@@ -56,7 +56,7 @@ import java.util.Locale;
|
||||
/**
|
||||
* Base class for accessibility fragments shortcut functions and dialog management.
|
||||
*/
|
||||
public abstract class AccessibilityShortcutPreferenceFragment extends DashboardFragment
|
||||
public abstract class AccessibilityShortcutPreferenceFragment extends RestrictedDashboardFragment
|
||||
implements ShortcutPreference.OnClickCallback {
|
||||
private static final String KEY_SHORTCUT_PREFERENCE = "shortcut_preference";
|
||||
protected static final String KEY_SAVED_USER_SHORTCUT_TYPE = "shortcut_type";
|
||||
@@ -75,6 +75,10 @@ public abstract class AccessibilityShortcutPreferenceFragment extends DashboardF
|
||||
private boolean mNeedsQSTooltipReshow = false;
|
||||
private int mNeedsQSTooltipType = QuickSettingsTooltipType.GUIDE_TO_EDIT;
|
||||
|
||||
public AccessibilityShortcutPreferenceFragment(String restrictionKey) {
|
||||
super(restrictionKey);
|
||||
}
|
||||
|
||||
/** Returns the accessibility component name. */
|
||||
protected abstract ComponentName getComponentName();
|
||||
|
||||
|
@@ -48,6 +48,13 @@ public class OneHandedSettings extends AccessibilityShortcutPreferenceFragment {
|
||||
private String mFeatureName;
|
||||
private OneHandedSettingsUtils mUtils;
|
||||
|
||||
/**
|
||||
* One handed settings no need to set any restriction key for pin protected.
|
||||
*/
|
||||
public OneHandedSettings() {
|
||||
super(/* restrictionKey= */ null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void updatePreferenceStates() {
|
||||
OneHandedSettingsUtils.setUserId(UserHandle.myUserId());
|
||||
|
@@ -93,7 +93,7 @@ public class AccessibilityShortcutPreferenceFragmentTest {
|
||||
public void setUpTestFragment() {
|
||||
MockitoAnnotations.initMocks(this);
|
||||
|
||||
mFragment = spy(new TestAccessibilityShortcutPreferenceFragment());
|
||||
mFragment = spy(new TestAccessibilityShortcutPreferenceFragment(null));
|
||||
when(mFragment.getPreferenceManager()).thenReturn(mPreferenceManager);
|
||||
when(mFragment.getPreferenceManager().getContext()).thenReturn(mContext);
|
||||
when(mFragment.getContext()).thenReturn(mContext);
|
||||
@@ -256,6 +256,10 @@ public class AccessibilityShortcutPreferenceFragmentTest {
|
||||
public static class TestAccessibilityShortcutPreferenceFragment
|
||||
extends AccessibilityShortcutPreferenceFragment {
|
||||
|
||||
public TestAccessibilityShortcutPreferenceFragment(String restrictionKey) {
|
||||
super(restrictionKey);
|
||||
}
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
|
Reference in New Issue
Block a user