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

Commit e9f23690 authored by Tony Mak's avatar Tony Mak Committed by android-build-merger
Browse files

Merge "Hold a strong reference to the callback in TextClassifierService" into qt-qpr1-dev

am: 8247b5f5

Change-Id: I8591d0ac8025589679e9462e82c7bbcf4ea8ea63
parents 9d15770e 8247b5f5
Loading
Loading
Loading
Loading
+4 −14
Original line number Diff line number Diff line
@@ -51,7 +51,6 @@ import android.view.textclassifier.TextSelection;

import com.android.internal.util.Preconditions;

import java.lang.ref.WeakReference;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

@@ -431,23 +430,18 @@ public abstract class TextClassifierService extends Service {
     * Forwards the callback result to a wrapped binder callback.
     */
    private static final class ProxyCallback<T extends Parcelable> implements Callback<T> {
        private WeakReference<ITextClassifierCallback> mTextClassifierCallback;
        private ITextClassifierCallback mTextClassifierCallback;

        private ProxyCallback(ITextClassifierCallback textClassifierCallback) {
            mTextClassifierCallback =
                    new WeakReference<>(Preconditions.checkNotNull(textClassifierCallback));
            mTextClassifierCallback = Preconditions.checkNotNull(textClassifierCallback);
        }

        @Override
        public void onSuccess(T result) {
            ITextClassifierCallback callback = mTextClassifierCallback.get();
            if (callback == null) {
                return;
            }
            try {
                Bundle bundle = new Bundle(1);
                bundle.putParcelable(KEY_RESULT, result);
                callback.onSuccess(bundle);
                mTextClassifierCallback.onSuccess(bundle);
            } catch (RemoteException e) {
                Slog.d(LOG_TAG, "Error calling callback");
            }
@@ -455,12 +449,8 @@ public abstract class TextClassifierService extends Service {

        @Override
        public void onFailure(CharSequence error) {
            ITextClassifierCallback callback = mTextClassifierCallback.get();
            if (callback == null) {
                return;
            }
            try {
                callback.onFailure();
                mTextClassifierCallback.onFailure();
            } catch (RemoteException e) {
                Slog.d(LOG_TAG, "Error calling callback");
            }
+1 −0
Original line number Diff line number Diff line
@@ -999,6 +999,7 @@ public final class SelectionActionModeHelper {
        }

        private void onTimeOut() {
            Log.d(LOG_TAG, "Timeout in TextClassificationAsyncTask");
            if (getStatus() == Status.RUNNING) {
                onPostExecute(mTimeOutResultSupplier.get());
            }