[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:
jasonwshsu
2022-12-09 02:12:56 +08:00
parent 23a91ff7d9
commit ad6351d614
5 changed files with 78 additions and 12 deletions

View File

@@ -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);
}