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

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

Merge "Doing sublisting after deduplication" into qt-dev

am: 143c735e

Change-Id: I766154f9831feab0884a58a7ad27606a99f7d299
parents 389a79c2 143c735e
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -451,10 +451,6 @@ public final class TextClassifierImpl implements TextClassifier {
        Collection<String> expectedTypes = resolveActionTypesFromRequest(request);
        List<ConversationAction> conversationActions = new ArrayList<>();
        for (ActionsSuggestionsModel.ActionSuggestion nativeSuggestion : nativeSuggestions) {
            if (request.getMaxSuggestions() >= 0
                    && conversationActions.size() == request.getMaxSuggestions()) {
                break;
            }
            String actionType = nativeSuggestion.getActionType();
            if (!expectedTypes.contains(actionType)) {
                continue;
@@ -484,6 +480,10 @@ public final class TextClassifierImpl implements TextClassifier {
        }
        conversationActions =
                ActionsSuggestionsHelper.removeActionsWithDuplicates(conversationActions);
        if (request.getMaxSuggestions() >= 0
                && conversationActions.size() > request.getMaxSuggestions()) {
            conversationActions = conversationActions.subList(0, request.getMaxSuggestions());
        }
        String resultId = ActionsSuggestionsHelper.createResultId(
                mContext,
                request.getConversation(),
+24 −7
Original line number Diff line number Diff line
@@ -380,7 +380,7 @@ public class TextClassifierTest {
    }

    @Test
    public void testSuggestConversationActions_textReplyOnly_maxThree() {
    public void testSuggestConversationActions_textReplyOnly_maxOne() {
        if (isTextClassifierDisabled()) return;
        ConversationActions.Message message =
                new ConversationActions.Message.Builder(
@@ -399,12 +399,11 @@ public class TextClassifierTest {
                        .build();

        ConversationActions conversationActions = mClassifier.suggestConversationActions(request);
        assertTrue(conversationActions.getConversationActions().size() > 0);
        for (ConversationAction conversationAction :
                conversationActions.getConversationActions()) {
            assertThat(conversationAction,
                    isConversationAction(ConversationAction.TYPE_TEXT_REPLY));
        }
        Truth.assertThat(conversationActions.getConversationActions()).hasSize(1);
        ConversationAction conversationAction = conversationActions.getConversationActions().get(0);
        Truth.assertThat(conversationAction.getType()).isEqualTo(
                ConversationAction.TYPE_TEXT_REPLY);
        Truth.assertThat(conversationAction.getTextReply()).isNotNull();
    }

    @Test
@@ -493,6 +492,24 @@ public class TextClassifierTest {
                ExtrasUtils.getSerializedEntityData(conversationAction.getExtras())).isNotEmpty();
    }

    @Test
    public void testSuggetsConversationActions_deduplicate() {
        if (isTextClassifierDisabled()) return;
        ConversationActions.Message message =
                new ConversationActions.Message.Builder(
                        ConversationActions.Message.PERSON_USER_OTHERS)
                        .setText("a@android.com b@android.com")
                        .build();
        ConversationActions.Request request =
                new ConversationActions.Request.Builder(Collections.singletonList(message))
                        .setMaxSuggestions(3)
                        .build();

        ConversationActions conversationActions = mClassifier.suggestConversationActions(request);

        Truth.assertThat(conversationActions.getConversationActions()).isEmpty();
    }

    private boolean isTextClassifierDisabled() {
        return mClassifier == null || mClassifier == TextClassifier.NO_OP;
    }