Adds null checks on callers of Nullable method getA11yServiceInfo().

Also renames mPackageName to mFeatureName. This string is used as the
user-visible feature name, e.g. TalkBack, not the APK package name.

Fix: 382054546
Test: n/a (existing presubmit)
Flag: EXEMPT minor bugfix
Change-Id: I1ce6902612d89bbb68bddf30227ca231ea98dce7
This commit is contained in:
Daniel Norman
2024-12-04 18:44:56 +00:00
parent 4a84a244b2
commit 908bd398bd
8 changed files with 16 additions and 16 deletions

View File

@@ -81,7 +81,7 @@ public class LaunchAccessibilityActivityPreferenceFragment extends ToggleFeature
super.onProcessArguments(arguments); super.onProcessArguments(arguments);
mComponentName = arguments.getParcelable(AccessibilitySettings.EXTRA_COMPONENT_NAME); mComponentName = arguments.getParcelable(AccessibilitySettings.EXTRA_COMPONENT_NAME);
final ActivityInfo info = getAccessibilityShortcutInfo().getActivityInfo(); final ActivityInfo info = getAccessibilityShortcutInfo().getActivityInfo();
mPackageName = info.loadLabel(getPackageManager()).toString(); mFeatureName = info.loadLabel(getPackageManager());
// Settings animated image. // Settings animated image.
final int animatedImageRes = arguments.getInt( final int animatedImageRes = arguments.getInt(

View File

@@ -385,8 +385,8 @@ public class ToggleAccessibilityServicePreferenceFragment extends
} }
// Get Accessibility service name. // Get Accessibility service name.
mPackageName = getAccessibilityServiceInfo().getResolveInfo().loadLabel( AccessibilityServiceInfo info = getAccessibilityServiceInfo();
getPackageManager()); mFeatureName = info == null ? "" : info.getResolveInfo().loadLabel(getPackageManager());
if (arguments.containsKey(AccessibilitySettings.EXTRA_TILE_SERVICE_COMPONENT_NAME)) { if (arguments.containsKey(AccessibilitySettings.EXTRA_TILE_SERVICE_COMPONENT_NAME)) {
final String tileServiceComponentName = arguments.getString( final String tileServiceComponentName = arguments.getString(

View File

@@ -74,7 +74,7 @@ public class ToggleColorInversionPreferenceFragment extends ToggleFeaturePrefere
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { Bundle savedInstanceState) {
mComponentName = COLOR_INVERSION_COMPONENT_NAME; mComponentName = COLOR_INVERSION_COMPONENT_NAME;
mPackageName = getText(R.string.accessibility_display_inversion_preference_title); mFeatureName = getText(R.string.accessibility_display_inversion_preference_title);
mHtmlDescription = getText(R.string.accessibility_display_inversion_preference_subtitle); mHtmlDescription = getText(R.string.accessibility_display_inversion_preference_subtitle);
mTopIntroTitle = getText(R.string.accessibility_display_inversion_preference_intro_text); mTopIntroTitle = getText(R.string.accessibility_display_inversion_preference_intro_text);
mImageUri = new Uri.Builder().scheme(ContentResolver.SCHEME_ANDROID_RESOURCE) mImageUri = new Uri.Builder().scheme(ContentResolver.SCHEME_ANDROID_RESOURCE)

View File

@@ -78,7 +78,7 @@ public class ToggleDaltonizerPreferenceFragment extends ToggleFeaturePreferenceF
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { Bundle savedInstanceState) {
mComponentName = DALTONIZER_COMPONENT_NAME; mComponentName = DALTONIZER_COMPONENT_NAME;
mPackageName = getText(com.android.settingslib.R mFeatureName = getText(com.android.settingslib.R
.string.accessibility_display_daltonizer_preference_title); .string.accessibility_display_daltonizer_preference_title);
mHtmlDescription = getText(com.android.settingslib.R mHtmlDescription = getText(com.android.settingslib.R
.string.accessibility_display_daltonizer_preference_subtitle); .string.accessibility_display_daltonizer_preference_subtitle);

View File

@@ -104,7 +104,7 @@ public abstract class ToggleFeaturePreferenceFragment extends DashboardFragment
protected Intent mSettingsIntent; protected Intent mSettingsIntent;
// The mComponentName maybe null, such as Magnify // The mComponentName maybe null, such as Magnify
protected ComponentName mComponentName; protected ComponentName mComponentName;
protected CharSequence mPackageName; protected CharSequence mFeatureName;
protected Uri mImageUri; protected Uri mImageUri;
protected CharSequence mHtmlDescription; protected CharSequence mHtmlDescription;
protected CharSequence mTopIntroTitle; protected CharSequence mTopIntroTitle;
@@ -204,12 +204,12 @@ public abstract class ToggleFeaturePreferenceFragment extends DashboardFragment
mDialog = AccessibilityShortcutsTutorial mDialog = AccessibilityShortcutsTutorial
.createAccessibilityTutorialDialogForSetupWizard( .createAccessibilityTutorialDialogForSetupWizard(
getPrefContext(), getUserPreferredShortcutTypes(), getPrefContext(), getUserPreferredShortcutTypes(),
this::callOnTutorialDialogButtonClicked, mPackageName); this::callOnTutorialDialogButtonClicked, mFeatureName);
} else { } else {
mDialog = AccessibilityShortcutsTutorial mDialog = AccessibilityShortcutsTutorial
.createAccessibilityTutorialDialog( .createAccessibilityTutorialDialog(
getPrefContext(), getUserPreferredShortcutTypes(), getPrefContext(), getUserPreferredShortcutTypes(),
this::callOnTutorialDialogButtonClicked, mPackageName); this::callOnTutorialDialogButtonClicked, mFeatureName);
} }
mDialog.setCanceledOnTouchOutside(false); mDialog.setCanceledOnTouchOutside(false);
return mDialog; return mDialog;
@@ -318,7 +318,7 @@ public abstract class ToggleFeaturePreferenceFragment extends DashboardFragment
protected void updateToggleServiceTitle(SettingsMainSwitchPreference switchPreference) { protected void updateToggleServiceTitle(SettingsMainSwitchPreference switchPreference) {
final CharSequence title = final CharSequence title =
getString(R.string.accessibility_service_primary_switch_title, mPackageName); getString(R.string.accessibility_service_primary_switch_title, mFeatureName);
switchPreference.setTitle(title); switchPreference.setTitle(title);
} }
@@ -327,7 +327,7 @@ public abstract class ToggleFeaturePreferenceFragment extends DashboardFragment
} }
protected CharSequence getShortcutTitle() { protected CharSequence getShortcutTitle() {
return getString(R.string.accessibility_shortcut_title, mPackageName); return getString(R.string.accessibility_shortcut_title, mFeatureName);
} }
protected void onPreferenceToggled(String preferenceKey, boolean enabled) { protected void onPreferenceToggled(String preferenceKey, boolean enabled) {
@@ -573,7 +573,7 @@ public abstract class ToggleFeaturePreferenceFragment extends DashboardFragment
screen.addPreference(mHtmlFooterPreference); screen.addPreference(mHtmlFooterPreference);
// TODO(b/171272809): Migrate to DashboardFragment. // TODO(b/171272809): Migrate to DashboardFragment.
final String title = getString(R.string.accessibility_introduction_title, mPackageName); final String title = getString(R.string.accessibility_introduction_title, mFeatureName);
mFooterPreferenceController = new AccessibilityFooterPreferenceController( mFooterPreferenceController = new AccessibilityFooterPreferenceController(
screen.getContext(), mHtmlFooterPreference.getKey()); screen.getContext(), mHtmlFooterPreference.getKey());
mFooterPreferenceController.setIntroductionTitle(title); mFooterPreferenceController.setIntroductionTitle(title);
@@ -598,7 +598,7 @@ public abstract class ToggleFeaturePreferenceFragment extends DashboardFragment
private void initFooterPreference() { private void initFooterPreference() {
if (!TextUtils.isEmpty(mDescription)) { if (!TextUtils.isEmpty(mDescription)) {
createFooterPreference(getPreferenceScreen(), mDescription, createFooterPreference(getPreferenceScreen(), mDescription,
getString(R.string.accessibility_introduction_title, mPackageName)); getString(R.string.accessibility_introduction_title, mFeatureName));
} }
} }

View File

@@ -84,7 +84,7 @@ public class ToggleReduceBrightColorsPreferenceFragment extends ToggleFeaturePre
.appendPath(String.valueOf(R.raw.a11y_extra_dim_banner)) .appendPath(String.valueOf(R.raw.a11y_extra_dim_banner))
.build(); .build();
mComponentName = REDUCE_BRIGHT_COLORS_COMPONENT_NAME; mComponentName = REDUCE_BRIGHT_COLORS_COMPONENT_NAME;
mPackageName = getText(R.string.reduce_bright_colors_preference_title); mFeatureName = getText(R.string.reduce_bright_colors_preference_title);
mHtmlDescription = getText(R.string.reduce_bright_colors_preference_subtitle); mHtmlDescription = getText(R.string.reduce_bright_colors_preference_subtitle);
mTopIntroTitle = getText(R.string.reduce_bright_colors_preference_intro_text); mTopIntroTitle = getText(R.string.reduce_bright_colors_preference_intro_text);
mRbcIntensityPreferenceController = mRbcIntensityPreferenceController =

View File

@@ -112,7 +112,7 @@ public class ToggleScreenMagnificationPreferenceFragment extends
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { Bundle savedInstanceState) {
mPackageName = getString(R.string.accessibility_screen_magnification_title); mFeatureName = getString(R.string.accessibility_screen_magnification_title);
mImageUri = new Uri.Builder().scheme(ContentResolver.SCHEME_ANDROID_RESOURCE) mImageUri = new Uri.Builder().scheme(ContentResolver.SCHEME_ANDROID_RESOURCE)
.authority(getPrefContext().getPackageName()) .authority(getPrefContext().getPackageName())
.appendPath(String.valueOf(R.raw.a11y_magnification_banner)) .appendPath(String.valueOf(R.raw.a11y_magnification_banner))

View File

@@ -55,8 +55,8 @@ public class VolumeShortcutToggleAccessibilityServicePreferenceFragment extends
final boolean isServiceOn = final boolean isServiceOn =
getArguments().getBoolean(AccessibilitySettings.EXTRA_CHECKED); getArguments().getBoolean(AccessibilitySettings.EXTRA_CHECKED);
final AccessibilityServiceInfo info = getAccessibilityServiceInfo(); final AccessibilityServiceInfo info = getAccessibilityServiceInfo();
final boolean hasRequestAccessibilityButtonFlag = final boolean hasRequestAccessibilityButtonFlag = info != null
(info.flags & AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON) != 0; && (info.flags & AccessibilityServiceInfo.FLAG_REQUEST_ACCESSIBILITY_BUTTON) != 0;
if (hasRequestAccessibilityButtonFlag && isServiceOn) { if (hasRequestAccessibilityButtonFlag && isServiceOn) {
shortcutTypes |= SOFTWARE; shortcutTypes |= SOFTWARE;
} else { } else {