Doing null check before generating Font Size tooltip

Since the lifecycle of controller is independent of that of preference,
we do null check on the seekbar to avoid generating tooltip from the
seekbar when it is not ready. The fix is a temporary solution for the
issue and we would like to move the logic of tooltip to systemUI to
match the general view's lifecycle in the future.

Bug: 279549685
Test: manually - check the tooltip won't be shown and also won't cause exception after rotating the phone. (The seekbar view has not been created if it is out of screen.)
Test: manually - attach video to the bug
Test: make RunSettingsRoboTests ROBOTEST_FILTER=PreviewSizeSeekBarControllerTest
Change-Id: I50111f0cc59cad4401ab67b06cd62e9067e8ed76
This commit is contained in:
Candice Lo
2023-06-17 07:20:14 +00:00
parent f2f899106d
commit b66f6b67c8

View File

@@ -213,11 +213,19 @@ abstract class PreviewSizeSeekBarController extends BasePreferenceController imp
return;
}
mTooltipWindow = new AccessibilityQuickSettingsTooltipWindow(mContext);
mTooltipWindow.setup(getTileTooltipContent(),
R.drawable.accessibility_auto_added_qs_tooltip_illustration);
mTooltipWindow.showAtTopCenter(mSeekBarPreference.getSeekbar());
AccessibilityQuickSettingUtils.optInValueToSharedPreferences(mContext, tileComponentName);
// TODO (287728819): Move tooltip showing to SystemUI
// Since the lifecycle of controller is independent of that of the preference, doing
// null check on seekbar is a temporary solution for the case that seekbar view
// is not ready when we would like to show the tooltip. If the seekbar is not ready,
// we give up showing the tooltip and also do not reshow it in the future.
if (mSeekBarPreference.getSeekbar() != null) {
mTooltipWindow = new AccessibilityQuickSettingsTooltipWindow(mContext);
mTooltipWindow.setup(getTileTooltipContent(),
R.drawable.accessibility_auto_added_qs_tooltip_illustration);
mTooltipWindow.showAtTopCenter(mSeekBarPreference.getSeekbar());
}
AccessibilityQuickSettingUtils.optInValueToSharedPreferences(mContext,
tileComponentName);
mNeedsQSTooltipReshow = false;
}