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

Commit f32edc9f authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Replace mNotifyAutofillManagerOnClick by mPrivateFlag."

parents 02a20b70 f39c3c13
Loading
Loading
Loading
Loading
+19 −42
Original line number Diff line number Diff line
@@ -2342,9 +2342,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
    private static final int PFLAG_HOVERED             = 0x10000000;
    /**
     * no longer needed, should be reused
     * Flag set by {@link AutofillManager} if it needs to be notified when this view is clicked.
     */
    private static final int PFLAG_DOES_NOTHING_REUSE_PLEASE = 0x20000000;
    private static final int PFLAG_NOTIFY_AUTOFILL_MANAGER_ON_CLICK = 0x20000000;
    /** {@hide} */
    static final int PFLAG_ACTIVATED                   = 0x40000000;
@@ -6397,33 +6397,24 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
        return null;
    }
    /**
     * Set by {@link AutofillManager} if it needs to be notified when this view is clicked.
     */
    private boolean mNotifyAutofillManagerOnClick;
    /**
     * Temporary variable used to make sure the autofill manager is not called twice on
     * {@link #performClickInternal()}.
     */
    private boolean mAlreadyNotifiedAutofillManagerOnClick;
    /** @hide */
    public void setNotifyAutofillManagerOnClick(boolean notify) {
        mNotifyAutofillManagerOnClick = notify;
        if (notify) {
            mPrivateFlags |= PFLAG_NOTIFY_AUTOFILL_MANAGER_ON_CLICK;
        } else {
            mPrivateFlags &= ~PFLAG_NOTIFY_AUTOFILL_MANAGER_ON_CLICK;
        }
    }
    private void notifyAutofillManagerOnClick() {
        if (!mNotifyAutofillManagerOnClick || mAlreadyNotifiedAutofillManagerOnClick) {
            return;
        }
        // Must notify manager first to avoid scenarios where app has a listener
        // that changes the state of views the autofill service might be interested on.
        if ((mPrivateFlags & PFLAG_NOTIFY_AUTOFILL_MANAGER_ON_CLICK) != 0) {
            try {
                getAutofillManager().notifyViewClicked(this);
            } finally {
            // Set it to already called so it's not called twice when
            mAlreadyNotifiedAutofillManagerOnClick = true;
                // Set it to already called so it's not called twice when called by
                // performClickInternal()
                mPrivateFlags |= ~PFLAG_NOTIFY_AUTOFILL_MANAGER_ON_CLICK;
            }
        }
    }
@@ -6434,21 +6425,12 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
     * method).
     */
    private boolean performClickInternal() {
        mAlreadyNotifiedAutofillManagerOnClick = false;
        // Must notify autofill manager before performing the click actions to avoid scenarios where
        // the app has a click listener that changes the state of views the autofill service might
        // be interested on.
        notifyAutofillManagerOnClick();
        boolean performed;
        try {
            performed = performClick();
        } finally {
            // Reset it for next call.
            mAlreadyNotifiedAutofillManagerOnClick = false;
        }
        return performed;
        return performClick();
    }
    /**
@@ -6463,14 +6445,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
    // instead, to guarantee that the autofill manager is notified when necessary (as subclasses
    // could extend this method without calling super.performClick()).
    public boolean performClick() {
        try {
        // We still need to call this method to handle the cases where performClick() was called
        // externally, instead of through performClickInternal()
        notifyAutofillManagerOnClick();
        } finally {
            // Reset it for next call.
            mAlreadyNotifiedAutofillManagerOnClick = false;
        }
        final boolean result;
        final ListenerInfo li = mListenerInfo;