summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrettyWhite <geekman3454@protonmail.com>2019-05-09 15:05:08 -0400
committerBrettyWhite <geekman3454@protonmail.com>2019-05-09 15:05:08 -0400
commit424133c7e2582ca813914446c0dbc2d3e8b9d1bd (patch)
tree888e684adc5d212f93f55f7f29d6047c802d0cf2
parent4002fde89c275d74f98c9e18ffc4616e2083ff1d (diff)
downloadsdl_android-424133c7e2582ca813914446c0dbc2d3e8b9d1bd.tar.gz
update per comments
-rwxr-xr-xandroid/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/SdlService.java117
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuManagerTests.java22
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/VoiceCommandManagerTests.java6
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/menu/MenuManager.java4
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/menu/VoiceCommandManager.java4
-rw-r--r--base/src/main/java/com/smartdevicelink/managers/screen/menu/BaseMenuManager.java4
-rw-r--r--javaSE/src/main/java/com/smartdevicelink/managers/screen/menu/MenuManager.java4
-rw-r--r--javaSE/src/main/java/com/smartdevicelink/managers/screen/menu/VoiceCommandManager.java4
8 files changed, 109 insertions, 56 deletions
diff --git a/android/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/SdlService.java b/android/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/SdlService.java
index b180c851b..030c3b3d0 100755
--- a/android/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/SdlService.java
+++ b/android/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/SdlService.java
@@ -15,24 +15,28 @@ import com.smartdevicelink.managers.CompletionListener;
import com.smartdevicelink.managers.SdlManager;
import com.smartdevicelink.managers.SdlManagerListener;
import com.smartdevicelink.managers.file.filetypes.SdlArtwork;
+import com.smartdevicelink.managers.screen.menu.MenuCell;
+import com.smartdevicelink.managers.screen.menu.MenuSelectionListener;
+import com.smartdevicelink.managers.screen.menu.VoiceCommand;
+import com.smartdevicelink.managers.screen.menu.VoiceCommandSelectionListener;
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCNotification;
import com.smartdevicelink.proxy.TTSChunkFactory;
-import com.smartdevicelink.proxy.rpc.AddCommand;
-import com.smartdevicelink.proxy.rpc.MenuParams;
-import com.smartdevicelink.proxy.rpc.OnCommand;
import com.smartdevicelink.proxy.rpc.OnHMIStatus;
import com.smartdevicelink.proxy.rpc.Speak;
import com.smartdevicelink.proxy.rpc.enums.AppHMIType;
import com.smartdevicelink.proxy.rpc.enums.FileType;
import com.smartdevicelink.proxy.rpc.enums.HMILevel;
+import com.smartdevicelink.proxy.rpc.enums.TriggerSource;
import com.smartdevicelink.proxy.rpc.listeners.OnRPCNotificationListener;
import com.smartdevicelink.transport.BaseTransportConfig;
import com.smartdevicelink.transport.MultiplexTransportConfig;
import com.smartdevicelink.transport.TCPTransportConfig;
import com.smartdevicelink.util.DebugTool;
+import java.util.Arrays;
import java.util.Collections;
+import java.util.List;
import java.util.Vector;
public class SdlService extends Service {
@@ -49,7 +53,6 @@ public class SdlService extends Service {
private static final String WELCOME_SPEAK = "Welcome to Hello S D L";
private static final String TEST_COMMAND_NAME = "Test Command";
- private static final int TEST_COMMAND_ID = 1;
private static final int FOREGROUND_SERVICE_ID = 111;
@@ -159,28 +162,13 @@ public class SdlService extends Service {
public void onNotified(RPCNotification notification) {
OnHMIStatus status = (OnHMIStatus) notification;
if (status.getHmiLevel() == HMILevel.HMI_FULL && ((OnHMIStatus) notification).getFirstRun()) {
- sendCommands();
+ setVoiceCommands();
+ sendMenus();
performWelcomeSpeak();
performWelcomeShow();
}
}
});
-
- // Menu Selected Listener
- sdlManager.addOnRPCNotificationListener(FunctionID.ON_COMMAND, new OnRPCNotificationListener() {
- @Override
- public void onNotified(RPCNotification notification) {
- OnCommand command = (OnCommand) notification;
- Integer id = command.getCmdID();
- if(id != null){
- switch(id){
- case TEST_COMMAND_ID:
- showTest();
- break;
- }
- }
- }
- });
}
@Override
@@ -207,16 +195,85 @@ public class SdlService extends Service {
}
/**
- * Add commands for the app on SDL.
+ * Send some voice commands
*/
- private void sendCommands(){
- AddCommand command = new AddCommand();
- MenuParams params = new MenuParams();
- params.setMenuName(TEST_COMMAND_NAME);
- command.setCmdID(TEST_COMMAND_ID);
- command.setMenuParams(params);
- command.setVrCommands(Collections.singletonList(TEST_COMMAND_NAME));
- sdlManager.sendRPC(command);
+ private void setVoiceCommands(){
+
+ List<String> list1 = Arrays.asList("Command One");
+ List<String> list2 = Arrays.asList("Command two");
+
+ VoiceCommand voiceCommand1 = new VoiceCommand(list1, new VoiceCommandSelectionListener() {
+ @Override
+ public void onVoiceCommandSelected() {
+ Log.i(TAG, "Voice Command 1 triggered");
+ }
+ });
+
+ VoiceCommand voiceCommand2 = new VoiceCommand(list2, new VoiceCommandSelectionListener() {
+ @Override
+ public void onVoiceCommandSelected() {
+ Log.i(TAG, "Voice Command 2 triggered");
+ }
+ });
+
+ sdlManager.getScreenManager().setVoiceCommands(Arrays.asList(voiceCommand1,voiceCommand2));
+ }
+
+ /**
+ * Add menus for the app on SDL.
+ */
+ private void sendMenus(){
+
+ // some arts
+ SdlArtwork livio = new SdlArtwork("livio", FileType.GRAPHIC_PNG, R.drawable.sdl, false);
+
+ // some voice commands
+ List<String> voice2 = Arrays.asList("Cell two");
+
+ MenuCell mainCell1 = new MenuCell("Test Cell 1", livio, null, new MenuSelectionListener() {
+ @Override
+ public void onTriggered(TriggerSource trigger) {
+ Log.i(TAG, "Test cell 1 triggered. Source: "+ trigger.toString());
+ }
+ });
+
+ MenuCell mainCell2 = new MenuCell("Test Cell 2", null, voice2, new MenuSelectionListener() {
+ @Override
+ public void onTriggered(TriggerSource trigger) {
+ Log.i(TAG, "Test cell 2 triggered. Source: "+ trigger.toString());
+ }
+ });
+
+ MenuCell mainCell3 = new MenuCell("Clear the menu",null, null, new MenuSelectionListener() {
+ @Override
+ public void onTriggered(TriggerSource trigger) {
+ Log.i(TAG, "Clearing Menu. Source: "+ trigger.toString());
+ // Clear this thing
+ sdlManager.getScreenManager().setMenu(Collections.<MenuCell>emptyList());
+ }
+ });
+
+ // SUB MENU
+
+ MenuCell subCell1 = new MenuCell("SubCell 1",null, null, new MenuSelectionListener() {
+ @Override
+ public void onTriggered(TriggerSource trigger) {
+ Log.i(TAG, "Sub cell 1 triggered. Source: "+ trigger.toString());
+ }
+ });
+
+ MenuCell subCell2 = new MenuCell("SubCell 2",null, null, new MenuSelectionListener() {
+ @Override
+ public void onTriggered(TriggerSource trigger) {
+ Log.i(TAG, "Sub cell 2 triggered. Source: "+ trigger.toString());
+ }
+ });
+
+ // sub menu parent cell
+ MenuCell mainCell4 = new MenuCell("Test Cell 4", livio, Arrays.asList(subCell1,subCell2));
+
+ // Send the entire menu off to be created
+ sdlManager.getScreenManager().setMenu(Arrays.asList(mainCell1, mainCell2, mainCell3, mainCell4));
}
/**
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuManagerTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuManagerTests.java
index b94a9bf98..dc51aed9e 100644
--- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuManagerTests.java
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuManagerTests.java
@@ -110,10 +110,10 @@ public class MenuManagerTests extends AndroidTestCase2 {
assertEquals(menuManager.getState(), BaseSubManager.SETTING_UP);
assertEquals(menuManager.currentSystemContext, SystemContext.SYSCTXT_MAIN);
assertEquals(menuManager.lastMenuId, 1);
- assertNotNull(menuManager.menuCells);
- assertNotNull(menuManager.waitingUpdateMenuCells);
- assertNotNull(menuManager.oldMenuCells);
- assertNotNull(menuManager.inProgressUpdate);
+ assertNull(menuManager.menuCells);
+ assertNull(menuManager.waitingUpdateMenuCells);
+ assertNull(menuManager.oldMenuCells);
+ assertNull(menuManager.inProgressUpdate);
assertNotNull(menuManager.hmiListener);
assertNotNull(menuManager.commandListener);
assertNotNull(menuManager.displayListener);
@@ -160,7 +160,6 @@ public class MenuManagerTests extends AndroidTestCase2 {
// updating voice commands before HMI is ready
assertTrue(menuManager.waitingOnHMIUpdate);
// these are the 2 commands we have waiting
- assertEquals(menuManager.menuCells.size(), 0);
assertEquals(menuManager.waitingUpdateMenuCells.size(), 4);
assertEquals(menuManager.currentHMILevel, HMILevel.HMI_NONE);
// The Menu Manager should send new menu once HMI full occurs
@@ -173,13 +172,12 @@ public class MenuManagerTests extends AndroidTestCase2 {
public void testUpdating(){
- assertEquals(menuManager.oldMenuCells.size(), 0); // these were deleted with the previous series of deletions
assertEquals(menuManager.deleteCommandsForCells(cells).size(), 4); // 3 root cells and 1 sub menu
// when we only send one command to update, we should only be returned one add command
List<MenuCell> newArray = Arrays.asList(mainCell1, mainCell4);
assertEquals(menuManager.allCommandsForCells(newArray, false).size(), 4); // 1 root cells, 1 sub menu root cell, 2 sub menu cells
-
+ menuManager.currentHMILevel = HMILevel.HMI_FULL;
menuManager.setMenuCells(newArray);
// Unlike voice commands, the Menu Manager dynamically assigns Cell ID's. Because of this, we need to get the updated
@@ -189,7 +187,7 @@ public class MenuManagerTests extends AndroidTestCase2 {
for (MenuCell cell : updatedCells){
// grab 2 of our newly updated cells - 1 root and 1 sub cell, and make sure they can get triggered
- if (cell.getDescription().equalsIgnoreCase("Test Cell 1")){
+ if (cell.getTitle().equalsIgnoreCase("Test Cell 1")){
// Fake onCommand - we want to make sure that we can pass back onCommand events to our root Menu Cell
OnCommand onCommand = new OnCommand();
onCommand.setCmdID(cell.getCellId());
@@ -200,7 +198,7 @@ public class MenuManagerTests extends AndroidTestCase2 {
verify(cell.getMenuSelectionListener(), times(1)).onTriggered(TriggerSource.TS_MENU);
}
- if (cell.getDescription().equalsIgnoreCase("SubCell 2")){
+ if (cell.getTitle().equalsIgnoreCase("SubCell 2")){
// Fake onCommand - we want to make sure that we can pass back onCommand events to our sub Menu Cell
OnCommand onCommand2 = new OnCommand();
onCommand2.setCmdID(cell.getCellId());
@@ -230,11 +228,11 @@ public class MenuManagerTests extends AndroidTestCase2 {
mainCell1 = new MenuCell("Test Cell 1", livio, null, menuSelectionListener1);
MenuCell mainCell2 = new MenuCell("Test Cell 2", livio, voice2, menuSelectionListener2);
- MenuCell mainCell3 = new MenuCell("Test Cell 3", menuSelectionListener3);
+ MenuCell mainCell3 = new MenuCell("Test Cell 3",null, null, menuSelectionListener3);
// SUB MENU
- MenuCell subCell1 = new MenuCell("SubCell 1", menuSelectionListenerSub1);
- MenuCell subCell2 = new MenuCell("SubCell 2", menuSelectionListenerSub2);
+ MenuCell subCell1 = new MenuCell("SubCell 1",null, null, menuSelectionListenerSub1);
+ MenuCell subCell2 = new MenuCell("SubCell 2",null, null, menuSelectionListenerSub2);
mainCell4 = new MenuCell("Test Cell 4", livio, Arrays.asList(subCell1,subCell2)); // sub menu parent cell
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/VoiceCommandManagerTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/VoiceCommandManagerTests.java
index db662c31f..2b07fcfbf 100644
--- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/VoiceCommandManagerTests.java
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/VoiceCommandManagerTests.java
@@ -112,8 +112,8 @@ public class VoiceCommandManagerTests extends AndroidTestCase2 {
assertFalse(voiceCommandManager.waitingOnHMIUpdate);
assertNotNull(voiceCommandManager.commandListener);
assertNotNull(voiceCommandManager.hmiListener);
- assertNotNull(voiceCommandManager.voiceCommands);
- assertNotNull(voiceCommandManager.oldVoiceCommands);
+ assertNull(voiceCommandManager.voiceCommands);
+ assertNull(voiceCommandManager.oldVoiceCommands);
assertNull(voiceCommandManager.inProgressUpdate);
}
@@ -171,8 +171,6 @@ public class VoiceCommandManagerTests extends AndroidTestCase2 {
// we have previously sent 2 VoiceCommand objects. we will now update it and have just one
- // This should have been cleared, but still initialized after the last send
- assertEquals(voiceCommandManager.oldVoiceCommands.size(), 0);
// make sure the system returns us 2 delete commands
assertEquals(voiceCommandManager.deleteCommandsForVoiceCommands(commands).size(), 2);
// when we only send one command to update, we should only be returned one add command
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/menu/MenuManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/menu/MenuManager.java
index c244d0d39..4a28a2792 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/menu/MenuManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/menu/MenuManager.java
@@ -42,9 +42,9 @@ import com.smartdevicelink.proxy.interfaces.ISdl;
*
* The MenuManager takes MenuCell objects and creates and sends all necessary RPCs to build out a menu
*/
-class MenuManager extends BaseMenuManager {
+public class MenuManager extends BaseMenuManager {
- MenuManager(ISdl internalInterface, FileManager fileManager) {
+ public MenuManager(ISdl internalInterface, FileManager fileManager) {
// setup
super(internalInterface, fileManager);
}
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/menu/VoiceCommandManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/menu/VoiceCommandManager.java
index a5492a384..a892d3a2c 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/menu/VoiceCommandManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/screen/menu/VoiceCommandManager.java
@@ -41,9 +41,9 @@ import com.smartdevicelink.proxy.interfaces.ISdl;
*
* The VoiceCommandManager takes a List of VoiceCommand objects and sets them on the Head unit for you.
*/
-class VoiceCommandManager extends BaseVoiceCommandManager {
+public class VoiceCommandManager extends BaseVoiceCommandManager {
- VoiceCommandManager(ISdl internalInterface) {
+ public VoiceCommandManager(ISdl internalInterface) {
// setup
super(internalInterface);
}
diff --git a/base/src/main/java/com/smartdevicelink/managers/screen/menu/BaseMenuManager.java b/base/src/main/java/com/smartdevicelink/managers/screen/menu/BaseMenuManager.java
index 55d271a1e..70be2008a 100644
--- a/base/src/main/java/com/smartdevicelink/managers/screen/menu/BaseMenuManager.java
+++ b/base/src/main/java/com/smartdevicelink/managers/screen/menu/BaseMenuManager.java
@@ -150,7 +150,7 @@ abstract class BaseMenuManager extends BaseSubManager {
waitingOnHMIUpdate = false;
// Update our Lists
- this.oldMenuCells = new ArrayList<>(menuCells);
+ this.oldMenuCells = new ArrayList<>(menuCells != null ? menuCells : cells);
menuCells = new ArrayList<>(cells);
// HashSet order doesnt matter / does not allow duplicates
@@ -308,7 +308,7 @@ abstract class BaseMenuManager extends BaseSubManager {
List<RPCRequest> mainMenuCommands;
final List<RPCRequest> subMenuCommands;
- if (findAllArtworksToBeUploadedFromCells(menuCells).size() == 0 || !supportsImages()){
+ if (findAllArtworksToBeUploadedFromCells(menuCells).size() > 0 || !supportsImages()){
// Send artwork-less menu
mainMenuCommands = mainMenuCommandsForCells(menuCells, false);
subMenuCommands = subMenuCommandsForCells(menuCells, false);
diff --git a/javaSE/src/main/java/com/smartdevicelink/managers/screen/menu/MenuManager.java b/javaSE/src/main/java/com/smartdevicelink/managers/screen/menu/MenuManager.java
index c244d0d39..4a28a2792 100644
--- a/javaSE/src/main/java/com/smartdevicelink/managers/screen/menu/MenuManager.java
+++ b/javaSE/src/main/java/com/smartdevicelink/managers/screen/menu/MenuManager.java
@@ -42,9 +42,9 @@ import com.smartdevicelink.proxy.interfaces.ISdl;
*
* The MenuManager takes MenuCell objects and creates and sends all necessary RPCs to build out a menu
*/
-class MenuManager extends BaseMenuManager {
+public class MenuManager extends BaseMenuManager {
- MenuManager(ISdl internalInterface, FileManager fileManager) {
+ public MenuManager(ISdl internalInterface, FileManager fileManager) {
// setup
super(internalInterface, fileManager);
}
diff --git a/javaSE/src/main/java/com/smartdevicelink/managers/screen/menu/VoiceCommandManager.java b/javaSE/src/main/java/com/smartdevicelink/managers/screen/menu/VoiceCommandManager.java
index a5492a384..a892d3a2c 100644
--- a/javaSE/src/main/java/com/smartdevicelink/managers/screen/menu/VoiceCommandManager.java
+++ b/javaSE/src/main/java/com/smartdevicelink/managers/screen/menu/VoiceCommandManager.java
@@ -41,9 +41,9 @@ import com.smartdevicelink.proxy.interfaces.ISdl;
*
* The VoiceCommandManager takes a List of VoiceCommand objects and sets them on the Head unit for you.
*/
-class VoiceCommandManager extends BaseVoiceCommandManager {
+public class VoiceCommandManager extends BaseVoiceCommandManager {
- VoiceCommandManager(ISdl internalInterface) {
+ public VoiceCommandManager(ISdl internalInterface) {
// setup
super(internalInterface);
}