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

Commit d38b8882 authored by Joanne Chung's avatar Joanne Chung Committed by Android (Google) Code Review
Browse files

Merge "Log the error of TCS, TCMS and SysTC."

parents eec430b4 0b7c2c41
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -460,6 +460,7 @@ public abstract class TextClassifierService extends Service {
                return;
                return;
            }
            }
            try {
            try {
                Slog.w(LOG_TAG, "Request fail: " + error);
                callback.onFailure();
                callback.onFailure();
            } catch (RemoteException e) {
            } catch (RemoteException e) {
                Slog.d(LOG_TAG, "Error calling callback");
                Slog.d(LOG_TAG, "Error calling callback");
+1 −1
Original line number Original line Diff line number Diff line
@@ -309,7 +309,7 @@ public final class SystemTextClassifier implements TextClassifier {
        }
        }


        public void onFailure() {
        public void onFailure() {
            Log.e(LOG_TAG, "Request failed.", null);
            Log.e(LOG_TAG, "Request failed at " + mName, null);
            mLatch.countDown();
            mLatch.countDown();
        }
        }


+23 −12
Original line number Original line Diff line number Diff line
@@ -142,11 +142,12 @@ public final class TextClassificationManagerService extends ITextClassifierServi
        synchronized (mLock) {
        synchronized (mLock) {
            UserState userState = getUserStateLocked(userId);
            UserState userState = getUserStateLocked(userId);
            if (!userState.bindLocked()) {
            if (!userState.bindLocked()) {
                Slog.d(LOG_TAG, "Unable to bind TextClassifierService at suggestSelection.");
                callback.onFailure();
                callback.onFailure();
            } else if (userState.isBoundLocked()) {
            } else if (userState.isBoundLocked()) {
                userState.mService.onSuggestSelection(sessionId, request, callback);
                userState.mService.onSuggestSelection(sessionId, request, callback);
            } else {
            } else {
                userState.mPendingRequests.add(new PendingRequest(
                userState.mPendingRequests.add(new PendingRequest("suggestSelection",
                        () -> onSuggestSelection(sessionId, request, callback),
                        () -> onSuggestSelection(sessionId, request, callback),
                        callback::onFailure, callback.asBinder(), this, userState));
                        callback::onFailure, callback.asBinder(), this, userState));
            }
            }
@@ -166,11 +167,12 @@ public final class TextClassificationManagerService extends ITextClassifierServi
        synchronized (mLock) {
        synchronized (mLock) {
            UserState userState = getUserStateLocked(userId);
            UserState userState = getUserStateLocked(userId);
            if (!userState.bindLocked()) {
            if (!userState.bindLocked()) {
                Slog.d(LOG_TAG, "Unable to bind TextClassifierService at classifyText.");
                callback.onFailure();
                callback.onFailure();
            } else if (userState.isBoundLocked()) {
            } else if (userState.isBoundLocked()) {
                userState.mService.onClassifyText(sessionId, request, callback);
                userState.mService.onClassifyText(sessionId, request, callback);
            } else {
            } else {
                userState.mPendingRequests.add(new PendingRequest(
                userState.mPendingRequests.add(new PendingRequest("classifyText",
                        () -> onClassifyText(sessionId, request, callback),
                        () -> onClassifyText(sessionId, request, callback),
                        callback::onFailure, callback.asBinder(), this, userState));
                        callback::onFailure, callback.asBinder(), this, userState));
            }
            }
@@ -190,11 +192,12 @@ public final class TextClassificationManagerService extends ITextClassifierServi
        synchronized (mLock) {
        synchronized (mLock) {
            UserState userState = getUserStateLocked(userId);
            UserState userState = getUserStateLocked(userId);
            if (!userState.bindLocked()) {
            if (!userState.bindLocked()) {
                Slog.d(LOG_TAG, "Unable to bind TextClassifierService at generateLinks.");
                callback.onFailure();
                callback.onFailure();
            } else if (userState.isBoundLocked()) {
            } else if (userState.isBoundLocked()) {
                userState.mService.onGenerateLinks(sessionId, request, callback);
                userState.mService.onGenerateLinks(sessionId, request, callback);
            } else {
            } else {
                userState.mPendingRequests.add(new PendingRequest(
                userState.mPendingRequests.add(new PendingRequest("generateLinks",
                        () -> onGenerateLinks(sessionId, request, callback),
                        () -> onGenerateLinks(sessionId, request, callback),
                        callback::onFailure, callback.asBinder(), this, userState));
                        callback::onFailure, callback.asBinder(), this, userState));
            }
            }
@@ -214,7 +217,7 @@ public final class TextClassificationManagerService extends ITextClassifierServi
            if (userState.isBoundLocked()) {
            if (userState.isBoundLocked()) {
                userState.mService.onSelectionEvent(sessionId, event);
                userState.mService.onSelectionEvent(sessionId, event);
            } else {
            } else {
                userState.mPendingRequests.add(new PendingRequest(
                userState.mPendingRequests.add(new PendingRequest("selectionEvent",
                        () -> onSelectionEvent(sessionId, event),
                        () -> onSelectionEvent(sessionId, event),
                        null /* onServiceFailure */, null /* binder */, this, userState));
                        null /* onServiceFailure */, null /* binder */, this, userState));
            }
            }
@@ -238,7 +241,7 @@ public final class TextClassificationManagerService extends ITextClassifierServi
            if (userState.isBoundLocked()) {
            if (userState.isBoundLocked()) {
                userState.mService.onTextClassifierEvent(sessionId, event);
                userState.mService.onTextClassifierEvent(sessionId, event);
            } else {
            } else {
                userState.mPendingRequests.add(new PendingRequest(
                userState.mPendingRequests.add(new PendingRequest("textClassifierEvent",
                        () -> onTextClassifierEvent(sessionId, event),
                        () -> onTextClassifierEvent(sessionId, event),
                        null /* onServiceFailure */, null /* binder */, this, userState));
                        null /* onServiceFailure */, null /* binder */, this, userState));
            }
            }
@@ -258,11 +261,12 @@ public final class TextClassificationManagerService extends ITextClassifierServi
        synchronized (mLock) {
        synchronized (mLock) {
            UserState userState = getUserStateLocked(userId);
            UserState userState = getUserStateLocked(userId);
            if (!userState.bindLocked()) {
            if (!userState.bindLocked()) {
                Slog.d(LOG_TAG, "Unable to bind TextClassifierService at detectLanguage.");
                callback.onFailure();
                callback.onFailure();
            } else if (userState.isBoundLocked()) {
            } else if (userState.isBoundLocked()) {
                userState.mService.onDetectLanguage(sessionId, request, callback);
                userState.mService.onDetectLanguage(sessionId, request, callback);
            } else {
            } else {
                userState.mPendingRequests.add(new PendingRequest(
                userState.mPendingRequests.add(new PendingRequest("detectLanguage",
                        () -> onDetectLanguage(sessionId, request, callback),
                        () -> onDetectLanguage(sessionId, request, callback),
                        callback::onFailure, callback.asBinder(), this, userState));
                        callback::onFailure, callback.asBinder(), this, userState));
            }
            }
@@ -282,11 +286,13 @@ public final class TextClassificationManagerService extends ITextClassifierServi
        synchronized (mLock) {
        synchronized (mLock) {
            UserState userState = getUserStateLocked(userId);
            UserState userState = getUserStateLocked(userId);
            if (!userState.bindLocked()) {
            if (!userState.bindLocked()) {
                Slog.d(LOG_TAG,
                        "Unable to bind TextClassifierService at suggestConversationActions.");
                callback.onFailure();
                callback.onFailure();
            } else if (userState.isBoundLocked()) {
            } else if (userState.isBoundLocked()) {
                userState.mService.onSuggestConversationActions(sessionId, request, callback);
                userState.mService.onSuggestConversationActions(sessionId, request, callback);
            } else {
            } else {
                userState.mPendingRequests.add(new PendingRequest(
                userState.mPendingRequests.add(new PendingRequest("suggestConversationActions",
                        () -> onSuggestConversationActions(sessionId, request, callback),
                        () -> onSuggestConversationActions(sessionId, request, callback),
                        callback::onFailure, callback.asBinder(), this, userState));
                        callback::onFailure, callback.asBinder(), this, userState));
            }
            }
@@ -309,7 +315,7 @@ public final class TextClassificationManagerService extends ITextClassifierServi
                        classificationContext, sessionId);
                        classificationContext, sessionId);
                mSessionUserIds.put(sessionId, userId);
                mSessionUserIds.put(sessionId, userId);
            } else {
            } else {
                userState.mPendingRequests.add(new PendingRequest(
                userState.mPendingRequests.add(new PendingRequest("createTextClassificationSession",
                        () -> onCreateTextClassificationSession(classificationContext, sessionId),
                        () -> onCreateTextClassificationSession(classificationContext, sessionId),
                        null /* onServiceFailure */, null /* binder */, this, userState));
                        null /* onServiceFailure */, null /* binder */, this, userState));
            }
            }
@@ -332,7 +338,8 @@ public final class TextClassificationManagerService extends ITextClassifierServi
                userState.mService.onDestroyTextClassificationSession(sessionId);
                userState.mService.onDestroyTextClassificationSession(sessionId);
                mSessionUserIds.remove(sessionId);
                mSessionUserIds.remove(sessionId);
            } else {
            } else {
                userState.mPendingRequests.add(new PendingRequest(
                userState.mPendingRequests.add(
                        new PendingRequest("destroyTextClassificationSession",
                                () -> onDestroyTextClassificationSession(sessionId),
                                () -> onDestroyTextClassificationSession(sessionId),
                                null /* onServiceFailure */, null /* binder */, this, userState));
                                null /* onServiceFailure */, null /* binder */, this, userState));
            }
            }
@@ -379,6 +386,7 @@ public final class TextClassificationManagerService extends ITextClassifierServi


    private static final class PendingRequest implements IBinder.DeathRecipient {
    private static final class PendingRequest implements IBinder.DeathRecipient {


        @Nullable private final String mName;
        @Nullable private final IBinder mBinder;
        @Nullable private final IBinder mBinder;
        @NonNull private final Runnable mRequest;
        @NonNull private final Runnable mRequest;
        @Nullable private final Runnable mOnServiceFailure;
        @Nullable private final Runnable mOnServiceFailure;
@@ -394,11 +402,12 @@ public final class TextClassificationManagerService extends ITextClassifierServi
         * @param service
         * @param service
         * @param owningUser
         * @param owningUser
         */
         */
        PendingRequest(
        PendingRequest(@Nullable String name,
                @NonNull ThrowingRunnable request, @Nullable ThrowingRunnable onServiceFailure,
                @NonNull ThrowingRunnable request, @Nullable ThrowingRunnable onServiceFailure,
                @Nullable IBinder binder,
                @Nullable IBinder binder,
                TextClassificationManagerService service,
                TextClassificationManagerService service,
                UserState owningUser) {
                UserState owningUser) {
            mName = name;
            mRequest =
            mRequest =
                    logOnFailure(Preconditions.checkNotNull(request), "handling pending request");
                    logOnFailure(Preconditions.checkNotNull(request), "handling pending request");
            mOnServiceFailure =
            mOnServiceFailure =
@@ -499,6 +508,8 @@ public final class TextClassificationManagerService extends ITextClassifierServi
                    request.mRequest.run();
                    request.mRequest.run();
                } else {
                } else {
                    if (request.mOnServiceFailure != null) {
                    if (request.mOnServiceFailure != null) {
                        Slog.d(LOG_TAG, "Unable to bind TextClassifierService for PendingRequest "
                                + request.mName);
                        request.mOnServiceFailure.run();
                        request.mOnServiceFailure.run();
                    }
                    }
                }
                }