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
This commit is contained in:
Abodunrinwa Toki
2020-05-21 19:45:08 +01:00
parent a04008425f
commit f3cd694df7

View File

@@ -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(),