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

Commit f3cd694d authored by Abodunrinwa Toki's avatar Abodunrinwa Toki
Browse files

Updates to TCMS icons rewritting.

- Replace for-e loop with for-i loop
- Remove streams
- Related cleanups

Refer to comments in Ib63e54462508029cdf0e56c2c6a82ff4e81b02a8 (Patchset 5)

Bug: 151847511
Test: atest tests/tests/textclassifier/src/android/view/textclassifier/cts
Test: atest core/tests/coretests/src/android/view/textclassifier
Test: Select a phone number text, check that the "Call" icon shows
Change-Id: If52d84b69a047a2aeb1dba8a245765807a8f574a
parent a0400842
Loading
Loading
Loading
Loading
+31 −23
Original line number Diff line number Diff line
@@ -74,7 +74,6 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Queue;
import java.util.stream.Collectors;

/**
 * A manager for TextClassifier services.
@@ -1047,18 +1046,26 @@ public final class TextClassificationManagerService extends ITextClassifierServi
        private static void rewriteTextClassificationIcons(Bundle result) {
            final TextClassification classification = TextClassifierService.getResponse(result);
            boolean rewrite = false;
            for (RemoteAction action : classification.getActions()) {
                rewrite |= shouldRewriteIcon(action);
            final List<RemoteAction> actions = classification.getActions();
            final int size = actions.size();
            final List<RemoteAction> validActions = new ArrayList<>(size);
            for (int i = 0; i < size; i++) {
                final RemoteAction action = actions.get(i);
                final RemoteAction validAction;
                if (shouldRewriteIcon(action)) {
                    rewrite = true;
                    validAction = validAction(action);
                } else {
                    validAction = action;
                }
                validActions.add(validAction);
            }
            if (rewrite) {
                TextClassifierService.putResponse(
                        result,
                        classification.toBuilder()
                                .clearActions()
                                .addActions(classification.getActions()
                                        .stream()
                                        .map(action -> validAction(action))
                                        .collect(Collectors.toList()))
                                .addActions(validActions)
                                .build());
            }
        }
@@ -1066,29 +1073,30 @@ public final class TextClassificationManagerService extends ITextClassifierServi
        private static void rewriteConversationActionsIcons(Bundle result) {
            final ConversationActions convActions = TextClassifierService.getResponse(result);
            boolean rewrite = false;
            for (ConversationAction convAction : convActions.getConversationActions()) {
                rewrite |= shouldRewriteIcon(convAction.getAction());
            final List<ConversationAction> origConvActions = convActions.getConversationActions();
            final int size = origConvActions.size();
            final List<ConversationAction> validConvActions = new ArrayList<>(size);
            for (int i = 0; i < size; i++) {
                final ConversationAction convAction = origConvActions.get(i);
                final ConversationAction validConvAction;
                if (shouldRewriteIcon(convAction.getAction())) {
                    rewrite = true;
                    validConvAction = convAction.toBuilder()
                            .setAction(validAction(convAction.getAction()))
                            .build();
                } else {
                    validConvAction = convAction;
                }
                validConvActions.add(validConvAction);
            }
            if (rewrite) {
                TextClassifierService.putResponse(
                        result,
                        new ConversationActions(
                                convActions.getConversationActions()
                                        .stream()
                                        .map(convAction -> convAction.toBuilder()
                                                .setAction(validAction(convAction.getAction()))
                                                .build())
                                        .collect(Collectors.toList()),
                                convActions.getId()));
            }
                        new ConversationActions(validConvActions, convActions.getId()));
            }

        @Nullable
        private static RemoteAction validAction(@Nullable RemoteAction action) {
            if (!shouldRewriteIcon(action)) {
                return action;
        }

        private static RemoteAction validAction(RemoteAction action) {
            final RemoteAction newAction = new RemoteAction(
                    changeIcon(action.getIcon()),
                    action.getTitle(),