autofill: support dpad/keyboard
To make autofill works on non-touch device such as TV, allow fill ui window to gain window focus. Fill ui window does not need IME. When IME and fill ui window are both shown, fill ui window will intercept keyevent before IME. Since autofill window will steal window focus from app window, we no longer uses View.onWindowFocused() for enter/exit event. Switched to use Activity onResume/onPause. When view notifyViewEntered or notifyViewExited called when Activity is paused, it will be ignored. Before Activity goes to pause state, notifyViewExited() is fired on focus view, after Activity leaves pause state, notifyViewEntered() is fired on focus view. In CTS testDatasetAuthTwoFieldsUserCancelsFirstAttempt, the authentication activity finishes itself in onCreate() which will not produce onPause/onResume in app activity, but it will produce window focus loss/gain event. Since we switch from window focus to activity onResume/onPause, we will be missing a show fill ui when return from the never shown authentication activity. To solve this problem, we added special code when receive ActivityResult from authentication activity where we check if the authenticate activity never causes onStop event, where we should issue an extra ACTION_VIEW_ENTERED event to show fill ui. Test: passed all existing autofilltest CTS on sailfish atest CtsAutoFillServiceTestCases Bug: 70181616 Change-Id: Iafe4dca3be8f049fa6dfd34bac13ccb030c583b6
Loading
Please register or sign in to comment