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

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

Merge "Fixed Cancellation for PendingAutofillRequest." into qt-dev

parents 93deb904 79e0ba05
Loading
Loading
Loading
Loading
+12 −2
Original line number Diff line number Diff line
@@ -228,7 +228,7 @@ public abstract class AugmentedAutofillService extends Service {
        } else {
            // TODO(b/123099468): figure out if it's ok to reuse the proxy; add logging
            if (sDebug) Log.d(TAG, "Reusing proxy for session " + sessionId);
            proxy.update(focusedId, focusedValue, callback);
            proxy.update(focusedId, focusedValue, callback, cancellationSignal);
        }

        try {
@@ -252,6 +252,15 @@ public abstract class AugmentedAutofillService extends Service {
                    Log.w(TAG, "No proxy for session " + sessionId);
                    return;
                }
                if (proxy.mCallback != null) {
                    try {
                        if (!proxy.mCallback.isCompleted()) {
                            proxy.mCallback.cancel();
                        }
                    } catch (Exception e) {
                        Log.e(TAG, "failed to check current pending request status", e);
                    }
                }
                proxy.destroy();
            }
            mAutofillProxies.clear();
@@ -442,7 +451,7 @@ public abstract class AugmentedAutofillService extends Service {
        }

        private void update(@NonNull AutofillId focusedId, @NonNull AutofillValue focusedValue,
                @NonNull IFillCallback callback) {
                @NonNull IFillCallback callback, @NonNull CancellationSignal cancellationSignal) {
            synchronized (mLock) {
                mFocusedId = focusedId;
                mFocusedValue = focusedValue;
@@ -457,6 +466,7 @@ public abstract class AugmentedAutofillService extends Service {
                    Log.d(TAG, "mCallback is updated.");
                }
                mCallback = callback;
                mCancellationSignal = cancellationSignal;
            }
        }

+2 −12
Original line number Diff line number Diff line
@@ -225,17 +225,7 @@ final class RemoteAugmentedAutofillService

                @Override
                public void cancel() {
                    synchronized (mLock) {
                        final boolean cancelled = isCancelledLocked();
                        final ICancellationSignal cancellation = mCancellation;
                        if (!cancelled) {
                            try {
                                cancellation.cancel();
                            } catch (RemoteException e) {
                                Slog.e(mTag, "Error requesting a cancellation", e);
                            }
                        }
                    }
                    PendingAutofillRequest.this.cancel();
                }
            };
        }
@@ -304,7 +294,7 @@ final class RemoteAugmentedAutofillService
                try {
                    cancellation.cancel();
                } catch (RemoteException e) {
                    Slog.e(mTag, "Error cancelling a fill request", e);
                    Slog.e(mTag, "Error cancelling an augmented fill request", e);
                }
            }
            return true;