Merge "Updates to TCMS icons rewritting." into rvc-dev am: d53625f660

Original change: undetermined

Change-Id: I0ad9f810070a227ceb7250b185d0e7111f2b3c44
This commit is contained in:
Abodunrinwa Toki
2020-06-01 20:27:42 +00:00
committed by Automerger Merge Worker

View File

@@ -74,7 +74,6 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.Queue; import java.util.Queue;
import java.util.stream.Collectors;
/** /**
* A manager for TextClassifier services. * A manager for TextClassifier services.
@@ -1047,18 +1046,26 @@ public final class TextClassificationManagerService extends ITextClassifierServi
private static void rewriteTextClassificationIcons(Bundle result) { private static void rewriteTextClassificationIcons(Bundle result) {
final TextClassification classification = TextClassifierService.getResponse(result); final TextClassification classification = TextClassifierService.getResponse(result);
boolean rewrite = false; boolean rewrite = false;
for (RemoteAction action : classification.getActions()) { final List<RemoteAction> actions = classification.getActions();
rewrite |= shouldRewriteIcon(action); 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) { if (rewrite) {
TextClassifierService.putResponse( TextClassifierService.putResponse(
result, result,
classification.toBuilder() classification.toBuilder()
.clearActions() .clearActions()
.addActions(classification.getActions() .addActions(validActions)
.stream()
.map(action -> validAction(action))
.collect(Collectors.toList()))
.build()); .build());
} }
} }
@@ -1066,29 +1073,30 @@ public final class TextClassificationManagerService extends ITextClassifierServi
private static void rewriteConversationActionsIcons(Bundle result) { private static void rewriteConversationActionsIcons(Bundle result) {
final ConversationActions convActions = TextClassifierService.getResponse(result); final ConversationActions convActions = TextClassifierService.getResponse(result);
boolean rewrite = false; boolean rewrite = false;
for (ConversationAction convAction : convActions.getConversationActions()) { final List<ConversationAction> origConvActions = convActions.getConversationActions();
rewrite |= shouldRewriteIcon(convAction.getAction()); 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) { if (rewrite) {
TextClassifierService.putResponse( TextClassifierService.putResponse(
result, result,
new ConversationActions( new ConversationActions(validConvActions, convActions.getId()));
convActions.getConversationActions()
.stream()
.map(convAction -> convAction.toBuilder()
.setAction(validAction(convAction.getAction()))
.build())
.collect(Collectors.toList()),
convActions.getId()));
} }
} }
@Nullable private static RemoteAction validAction(RemoteAction action) {
private static RemoteAction validAction(@Nullable RemoteAction action) {
if (!shouldRewriteIcon(action)) {
return action;
}
final RemoteAction newAction = new RemoteAction( final RemoteAction newAction = new RemoteAction(
changeIcon(action.getIcon()), changeIcon(action.getIcon()),
action.getTitle(), action.getTitle(),