Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6332115a authored by Haoran Zhang's avatar Haoran Zhang Committed by Automerger Merge Worker
Browse files

Merge "Force hiding fill UI when it's destroyed." into udc-qpr-dev am: ae77c4e2 am: f14940be

parents 9ebd8373 f14940be
Loading
Loading
Loading
Loading
+8 −0
Original line number Original line Diff line number Diff line
@@ -4304,6 +4304,14 @@ public final class AutofillManager {
            }
            }
        }
        }


        @Override
        public void requestHideFillUiWhenDestroyed(int sessionId, AutofillId id) {
            final AutofillManager afm = mAfm.get();
            if (afm != null) {
                afm.post(() -> afm.requestHideFillUi(id, true));
            }
        }

        @Override
        @Override
        public void notifyNoFillUi(int sessionId, AutofillId id, int sessionFinishedState) {
        public void notifyNoFillUi(int sessionId, AutofillId id, int sessionFinishedState) {
            final AutofillManager afm = mAfm.get();
            final AutofillManager afm = mAfm.get();
+5 −0
Original line number Original line Diff line number Diff line
@@ -80,6 +80,11 @@ oneway interface IAutoFillManagerClient {
     */
     */
    void requestHideFillUi(int sessionId, in AutofillId id);
    void requestHideFillUi(int sessionId, in AutofillId id);


    /**
     * Requests hiding the fill UI when it's destroyed
     */
    void requestHideFillUiWhenDestroyed(int sessionId, in AutofillId id);

    /**
    /**
     * Notifies no fill UI will be shown, and also mark the state as finished if necessary (if
     * Notifies no fill UI will be shown, and also mark the state as finished if necessary (if
     * sessionFinishedState != 0).
     * sessionFinishedState != 0).
+15 −0
Original line number Original line Diff line number Diff line
@@ -2472,6 +2472,21 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
        }
        }
    }
    }


    @Override
    public void requestHideFillUiWhenDestroyed(AutofillId id) {
        synchronized (mLock) {
            // NOTE: We allow this call in a destroyed state as the UI is
            // asked to go away after we get destroyed, so let it do that.
            try {
                mClient.requestHideFillUiWhenDestroyed(this.id, id);
            } catch (RemoteException e) {
                Slog.e(TAG, "Error requesting to hide fill UI", e);
            }

            mInlineSessionController.hideInlineSuggestionsUiLocked(id);
        }
    }

    // AutoFillUiCallback
    // AutoFillUiCallback
    @Override
    @Override
    public void cancelSession() {
    public void cancelSession() {
+8 −0
Original line number Original line Diff line number Diff line
@@ -95,6 +95,7 @@ public final class AutoFillUI {
        void requestShowFillUi(AutofillId id, int width, int height,
        void requestShowFillUi(AutofillId id, int width, int height,
                IAutofillWindowPresenter presenter);
                IAutofillWindowPresenter presenter);
        void requestHideFillUi(AutofillId id);
        void requestHideFillUi(AutofillId id);
        void requestHideFillUiWhenDestroyed(AutofillId id);
        void startIntentSenderAndFinishSession(IntentSender intentSender);
        void startIntentSenderAndFinishSession(IntentSender intentSender);
        void startIntentSender(IntentSender intentSender, Intent intent);
        void startIntentSender(IntentSender intentSender, Intent intent);
        void dispatchUnhandledKey(AutofillId id, KeyEvent keyEvent);
        void dispatchUnhandledKey(AutofillId id, KeyEvent keyEvent);
@@ -288,6 +289,13 @@ public final class AutoFillUI {
                    }
                    }
                }
                }


                @Override
                public void requestHideFillUiWhenDestroyed() {
                    if (mCallback != null) {
                        mCallback.requestHideFillUiWhenDestroyed(focusedId);
                    }
                }

                @Override
                @Override
                public void startIntentSender(IntentSender intentSender) {
                public void startIntentSender(IntentSender intentSender) {
                    if (mCallback != null) {
                    if (mCallback != null) {
+2 −1
Original line number Original line Diff line number Diff line
@@ -91,6 +91,7 @@ final class FillUi {
        void requestShowFillUi(int width, int height,
        void requestShowFillUi(int width, int height,
                IAutofillWindowPresenter windowPresenter);
                IAutofillWindowPresenter windowPresenter);
        void requestHideFillUi();
        void requestHideFillUi();
        void requestHideFillUiWhenDestroyed();
        void startIntentSender(IntentSender intentSender);
        void startIntentSender(IntentSender intentSender);
        void dispatchUnhandledKey(KeyEvent keyEvent);
        void dispatchUnhandledKey(KeyEvent keyEvent);
        void cancelSession();
        void cancelSession();
@@ -482,7 +483,7 @@ final class FillUi {
        }
        }
        mCallback.onDestroy();
        mCallback.onDestroy();
        if (notifyClient) {
        if (notifyClient) {
            mCallback.requestHideFillUi();
            mCallback.requestHideFillUiWhenDestroyed();
        }
        }
        mDestroyed = true;
        mDestroyed = true;
    }
    }