Loading core/java/android/service/textclassifier/TextClassifierService.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -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"); Loading core/java/android/view/textclassifier/SystemTextClassifier.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -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(); } } Loading services/core/java/com/android/server/textclassifier/TextClassificationManagerService.java +23 −12 Original line number Original line Diff line number Diff line Loading @@ -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)); } } Loading @@ -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)); } } Loading @@ -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)); } } Loading @@ -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)); } } Loading @@ -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)); } } Loading @@ -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)); } } Loading @@ -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)); } } Loading @@ -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)); } } Loading @@ -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)); } } Loading Loading @@ -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; Loading @@ -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 = Loading Loading @@ -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(); } } } } Loading Loading
core/java/android/service/textclassifier/TextClassifierService.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -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"); Loading
core/java/android/view/textclassifier/SystemTextClassifier.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -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(); } } Loading
services/core/java/com/android/server/textclassifier/TextClassificationManagerService.java +23 −12 Original line number Original line Diff line number Diff line Loading @@ -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)); } } Loading @@ -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)); } } Loading @@ -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)); } } Loading @@ -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)); } } Loading @@ -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)); } } Loading @@ -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)); } } Loading @@ -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)); } } Loading @@ -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)); } } Loading @@ -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)); } } Loading Loading @@ -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; Loading @@ -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 = Loading Loading @@ -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(); } } } } Loading