Skip to content

Commit 3b19a1c

Browse files
Robert HeniganHenigan
andauthored
add removceDuplicate helper method to VoiceCommand (#1665)
Co-authored-by: Henigan <rheniga1@MGC12Z921DLVCG.fbpld77.ford.com>
1 parent e1f9c02 commit 3b19a1c

2 files changed

Lines changed: 31 additions & 1 deletion

File tree

android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/VoiceCommandTests.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@
3939
import org.junit.Test;
4040
import org.junit.runner.RunWith;
4141

42+
import java.util.ArrayList;
43+
import java.util.List;
44+
4245
import static junit.framework.TestCase.assertEquals;
4346

4447
@RunWith(AndroidJUnit4.class)
@@ -59,4 +62,25 @@ public void testSettersAndGetters() {
5962
assertEquals(voiceCommand.getVoiceCommandSelectionListener(), voiceCommandSelectionListener);
6063
}
6164

65+
@Test
66+
public void testDuplicateStrings() {
67+
List<String> voiceCommandsList = new ArrayList<>();
68+
voiceCommandsList.add("Test1");
69+
voiceCommandsList.add("Test1");
70+
voiceCommandsList.add("Test1");
71+
VoiceCommand voiceCommand = new VoiceCommand(voiceCommandsList, voiceCommandSelectionListener);
72+
73+
assertEquals(1, voiceCommand.getVoiceCommands().size());
74+
assertEquals("Test1", voiceCommand.getVoiceCommands().get(0));
75+
76+
voiceCommandsList = new ArrayList<>();
77+
voiceCommandsList.add("Test1");
78+
voiceCommandsList.add("Test2");
79+
voiceCommandsList.add("Test1");
80+
VoiceCommand voiceCommand2 = new VoiceCommand(voiceCommandsList, voiceCommandSelectionListener);
81+
82+
assertEquals(2, voiceCommand2.getVoiceCommands().size());
83+
assertEquals("Test1", voiceCommand2.getVoiceCommands().get(0));
84+
assertEquals("Test2", voiceCommand2.getVoiceCommands().get(1));
85+
}
6286
}

base/src/main/java/com/smartdevicelink/managers/screen/menu/VoiceCommand.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
import androidx.annotation.Nullable;
3737

3838

39+
import java.util.ArrayList;
40+
import java.util.HashSet;
3941
import java.util.List;
4042

4143
public class VoiceCommand {
@@ -77,7 +79,7 @@ public VoiceCommand(@NonNull List<String> voiceCommands, @Nullable VoiceCommandS
7779
* @param voiceCommands - the list of commands to send to the head unit
7880
*/
7981
public void setVoiceCommands(@NonNull List<String> voiceCommands) {
80-
this.voiceCommands = voiceCommands;
82+
this.voiceCommands = new ArrayList<>(removeDuplicateStrings(voiceCommands));
8183
}
8284

8385
/**
@@ -126,6 +128,10 @@ int getCommandId() {
126128
return commandId;
127129
}
128130

131+
private HashSet<String> removeDuplicateStrings(List<String> voiceCommands) {
132+
return new HashSet<>(voiceCommands);
133+
}
134+
129135
/**
130136
* Used to compile hashcode for VoiceCommand for use to compare in equals method
131137
*

0 commit comments

Comments
 (0)