Pass user preferred shortcut types when launching the
AccessibilityShortcutsTutorial. **Root cause** When toggle the shortcut, it asks the AccessibilityManager to turn on the shortcut and update the Settings data. Internally, the AccessibilityManager delegate the work to AccessibilityManagerService via a oneway binder call. In the past, when launching the AccessibilityShortcutsTutorial, we assume the shortcut selection are saved in the Settings before launching the AccessibilityShortcutsTutorial. So we pass whatever are in the Settings as what the user has selected to the tutorial. This is not true anymore since we use the oneway AIDL call to do the updates. The data in Settings may not yet be updated before we use it to launch the tutorial. Since the user preferred shortcuts are always set before we attempt to launch the AccessibilityShortcutsTutorial, we can rely on it instead of the Settings value to launch the AccessibilityShortcutsTutorial for the selected shortcut options. **Changes in this cl** - Mechanical refactor to extract the lines to get the user preferred shortcut into a method. - Use the new method to grab the shortcut options to pass to the AccessibilityShortcutsTutorial to prevent the crash. Bug: 341176890 Test: manual - Modify the AccessibilityManagerService locally to delay processing the request to update the shortcut options in Settings data - Turn on the shortcut toggle, and verify the app won't crash Test: atest com.android.settings.accessibility Flag: EXEMPT bugfix (low risk + mechanical refactor) Change-Id: Id3cc4cc5f6667061545955881632544472aedd95
Loading
Please register or sign in to comment