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

Commit f379c17e authored by TYM Tsai's avatar TYM Tsai Committed by Android (Google) Code Review
Browse files

Merge "Fallback to the default platform password manager" into sc-dev

parents 9bf277f9 17e04104
Loading
Loading
Loading
Loading
+34 −2
Original line number Diff line number Diff line
@@ -456,6 +456,12 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
            } : null;
        }

        void newAutofillRequestLocked(@Nullable InlineSuggestionsRequest inlineRequest) {
            mPendingFillRequest = null;
            mWaitForInlineRequest = inlineRequest != null;
            mPendingInlineSuggestionsRequest = inlineRequest;
        }

        void maybeRequestFillLocked() {
            if (mPendingFillRequest == null) {
                return;
@@ -886,6 +892,11 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
        }

        // Now request the assist structure data.
        requestAssistStructureLocked(requestId, flags);
    }

    @GuardedBy("mLock")
    private void requestAssistStructureLocked(int requestId, int flags) {
        try {
            final Bundle receiverExtras = new Bundle();
            receiverExtras.putInt(EXTRA_REQUEST_ID, requestId);
@@ -1052,12 +1063,13 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
                if (requestLog != null) {
                    requestLog.addTaggedData(MetricsEvent.FIELD_AUTOFILL_NUM_DATASETS, -1);
                }
                processNullResponseLocked(requestId, requestFlags);
                processNullResponseOrFallbackLocked(requestId, requestFlags);
                return;
            }

            fieldClassificationIds = response.getFieldClassificationIds();
            if (fieldClassificationIds != null && !mService.isFieldClassificationEnabledLocked()) {
            if (!mSessionFlags.mClientSuggestionsEnabled && fieldClassificationIds != null
                    && !mService.isFieldClassificationEnabledLocked()) {
                Slog.w(TAG, "Ignoring " + response + " because field detection is disabled");
                processNullResponseLocked(requestId, requestFlags);
                return;
@@ -1136,6 +1148,26 @@ final class Session implements RemoteFillService.FillServiceCallbacks, ViewState
        }
    }

    @GuardedBy("mLock")
    private void processNullResponseOrFallbackLocked(int requestId, int flags) {
        if (!mSessionFlags.mClientSuggestionsEnabled) {
            processNullResponseLocked(requestId, flags);
            return;
        }

        // fallback to the default platform password manager
        mSessionFlags.mClientSuggestionsEnabled = false;

        final InlineSuggestionsRequest inlineRequest =
                (mLastInlineSuggestionsRequest != null
                        && mLastInlineSuggestionsRequest.first == requestId)
                        ? mLastInlineSuggestionsRequest.second : null;
        mAssistReceiver.newAutofillRequestLocked(inlineRequest);
        requestAssistStructureLocked(requestId,
                flags & ~FLAG_ENABLED_CLIENT_SUGGESTIONS);
        return;
    }

    // FillServiceCallbacks
    @Override
    public void onFillRequestFailure(int requestId, @Nullable CharSequence message) {