Let RemoteInputView call setTextOperationUser() only once
This is a small follow up to my previous CL [1], which made RemoteInputView call TextView#setTextOperationUser() so that the text operation uesr ID can be determined by the notification user ID. Since the relationship between NotificationEntry and RemoteInputView is immutable, there is no need to call setTextOperationUser(null) to reset the target user ID in RemoteInputView#reset(), which may have some race conditions. With this CL, RemoteInputView calls setTextOperationUser() only once immediatelly after inflation. [1]: Ibabe13e5b85e5bb91f9f8af6ec07c395c25c4393 7276946b Bug: 120744418 Bug: 123043618 Test: atest SystemUITests Test: Manually tested Bug 120744418 scenario as follows. 1. Build and flash an AOSP build 2. adb root 3. adb shell setprop persist.debug.per_profile_ime 1 4. adb reboot 5. Install Test DPC 6. Enable managed profile with Test DPC 7. make -j SoftKeyboard 8. adb install -r $OUT/system/app/SoftKeyboard/SoftKeyboard.apk 9. adb shell ime enable com.example.android.softkeyboard/.SoftKeyboard 10. adb shell ime set com.example.android.softkeyboard/.SoftKeyboard 11. make -j EditTextVariations 12. adb install -r $ANDROID_TARGET_OUT_TESTCASES/EditTextVariations/EditTextVariations.apk 13. adb shell am start --user 0 \ -n com.android.inputmethod.tools.edittextvariations/.EditTextVariations 14. Tap the menu icon on the EditTextVariations then click "Direct Reply" 15. adb shell am start --user 10 \ -n com.android.inputmethod.tools.edittextvariations/.EditTextVariations 16. Tap the menu icon on the EditTextVariations then click "Direct Reply" 17. Open notification shade. 18. Tap reply icon on "Message from UserHandle{0}". 19. Make sure that SoftKeyboard Sample IME is shown. 20. Tap reply icon on "Message from UserHandle{10}". 21. Make sure that AOSP Keyboard is shown. 22. Tap reply icon on "Message from UserHandle{0}" again. 23. Make sure that SoftKeyboard Sample IME is shown again. Test: Manually tested Bug 123043618 scenario as follows. 1. Build and flash an AOSP build 2. Create a secondary user then switch to it. 3. make -j SoftKeyboard 4. adb install -r $OUT/system/app/SoftKeyboard/SoftKeyboard.apk 5. adb shell ime enable com.example.android.softkeyboard/.SoftKeyboard 6. adb shell ime set com.example.android.softkeyboard/.SoftKeyboard 7. make -j EditTextVariations 8. adb install -r $ANDROID_TARGET_OUT_TESTCASES/EditTextVariations/EditTextVariations.apk 9. adb shell am start \ -n com.android.inputmethod.tools.edittextvariations/.EditTextVariations 10. Tap the menu icon on the EditTextVariations then click "Direct Reply" 11. Tap reply icon on "Message from UserHandle{10}". 12. Make sure that SoftKeyboard Sample IME is shown. 13. Type "ggggg" then hit the space key. 14. Make sure that red underline is drawn under "ggggg" 15. Make sure that AndroidSpellCheckerService runs as user 10. Test: Manually tested multi-user scenario with per-profile mode as follows. 1. Build and flash an AOSP build 2. adb root 3. adb shell setprop persist.debug.per_profile_ime 1 4. adb reboot 5. Create a secondary user then switch to it. 6. make -j SoftKeyboard 7. adb install -r $OUT/system/app/SoftKeyboard/SoftKeyboard.apk 8. adb shell ime enable com.example.android.softkeyboard/.SoftKeyboard 9. adb shell ime set com.example.android.softkeyboard/.SoftKeyboard 10. make -j EditTextVariations 11. adb install -r $ANDROID_TARGET_OUT_TESTCASES/EditTextVariations/EditTextVariations.apk 12. adb shell am start \ -n com.android.inputmethod.tools.edittextvariations/.EditTextVariations 13. Tap the menu icon on the EditTextVariations then click "Direct Reply" 14. Tap reply icon on "Message from UserHandle{10}". 15. Make sure that SoftKeyboard Sample IME is shown. 16. Type "ggggg" then hit the space key. 17. Make sure that red underline is drawn under "ggggg" 18. Make sure that AndroidSpellCheckerService runs as user 10. Change-Id: I975baa748c821538e5a733bb98a33ac609bf40a7
Loading
Please register or sign in to comment