Hides the Edit Shortcut top preference when empty.

This fixes an issue where this page was presenting an inaccurate
preference list count to TalkBack because it was including this empty
preference.

(Uses the same flag as other fixes for this same bug, even though the
flag name doesn't make sense here.)

Test: atest EditShortcutsPreferenceFragmentTest
Test: Confirm preference invisible when editing a single feature,
      opened from the Settings app
Test: Confirm preference invisible when editing a single feature,
      opened from the FAB Drag-to-Edit
Test: Confirm preference still visible when editing multiple features,
      opened from the FAB Drag-to-Edit
Test: Confirm TalkBack announces correct item counts in both cases,
      including when editing Magnification which has an "advanced"
      preference that gets replaced with the triple-tap shortcut.
Bug: 318607873
Flag: com.android.settings.accessibility.toggle_feature_fragment_collection_info
Change-Id: I2e1eb7f66022c1a47d1f96a914294fd8da25549c
This commit is contained in:
Daniel Norman
2024-10-18 00:18:48 +00:00
parent 7aabe039f4
commit 4c3473134c
3 changed files with 87 additions and 12 deletions

View File

@@ -61,6 +61,7 @@ import com.android.internal.accessibility.dialog.AccessibilityTargetHelper;
import com.android.settings.R;
import com.android.settings.SetupWizardUtils;
import com.android.settings.accessibility.AccessibilitySetupWizardUtils;
import com.android.settings.accessibility.Flags;
import com.android.settings.accessibility.PreferredShortcuts;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.dashboard.DashboardFragment;
@@ -201,9 +202,14 @@ public class EditShortcutsPreferenceFragment extends DashboardFragment {
super.onCreatePreferences(savedInstanceState, rootKey);
Activity activity = getActivity();
final Preference descriptionPref = findPreference(getString(
R.string.accessibility_shortcut_description_pref));
if (!activity.getIntent().getAction().equals(
Settings.ACTION_ACCESSIBILITY_SHORTCUT_SETTINGS)) {
if (Flags.toggleFeatureFragmentCollectionInfo()) {
descriptionPref.setVisible(false);
}
return;
}
@@ -219,10 +225,11 @@ public class EditShortcutsPreferenceFragment extends DashboardFragment {
);
activity.setTitle(titles.first);
String screenDescriptionPrefKey = getString(
R.string.accessibility_shortcut_description_pref);
findPreference(screenDescriptionPrefKey).setSummary(titles.second);
if (titles.second != null || !Flags.toggleFeatureFragmentCollectionInfo()) {
descriptionPref.setSummary(titles.second);
} else {
descriptionPref.setVisible(false);
}
}
@NonNull