diff options
author | BrettyWhite <geekman3454@protonmail.com> | 2019-05-10 10:08:27 -0400 |
---|---|---|
committer | BrettyWhite <geekman3454@protonmail.com> | 2019-05-10 10:08:27 -0400 |
commit | fc9c51ecd15a2f0ea077b7e9ec3da199e897f722 (patch) | |
tree | 24f48af82cfac6c1d914b2d2c3dbff6b29b3b05a | |
parent | e00162407fd36bcc659d601906b33547c786cf4f (diff) | |
download | sdl_android-fc9c51ecd15a2f0ea077b7e9ec3da199e897f722.tar.gz |
fix npe and enhance hello examples
4 files changed, 45 insertions, 15 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 2b0cbf27e..e4f1919df 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 @@ -22,6 +22,7 @@ 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.Alert; import com.smartdevicelink.proxy.rpc.OnHMIStatus; import com.smartdevicelink.proxy.rpc.Speak; import com.smartdevicelink.proxy.rpc.enums.AppHMIType; @@ -230,10 +231,11 @@ public class SdlService extends Service { // some voice commands List<String> voice2 = Collections.singletonList("Cell two"); - MenuCell mainCell1 = new MenuCell("Test Cell 1", livio, null, new MenuSelectionListener() { + MenuCell mainCell1 = new MenuCell("Test Cell 1 (speak)", livio, null, new MenuSelectionListener() { @Override public void onTriggered(TriggerSource trigger) { Log.i(TAG, "Test cell 1 triggered. Source: "+ trigger.toString()); + showTest(); } }); @@ -269,6 +271,7 @@ public class SdlService extends Service { Log.i(TAG, "Clearing Menu. Source: "+ trigger.toString()); // Clear this thing sdlManager.getScreenManager().setMenu(Collections.<MenuCell>emptyList()); + showAlert("Menu Cleared"); } }); @@ -308,12 +311,19 @@ public class SdlService extends Service { */ private void showTest(){ sdlManager.getScreenManager().beginTransaction(); - sdlManager.getScreenManager().setTextField1("Command has been selected"); + sdlManager.getScreenManager().setTextField1("Test Cell 1 has been selected"); sdlManager.getScreenManager().setTextField2(""); sdlManager.getScreenManager().commit(null); sdlManager.sendRPC(new Speak(TTSChunkFactory.createSimpleTTSChunks(TEST_COMMAND_NAME))); } + private void showAlert(String text){ + Alert alert = new Alert(); + alert.setAlertText1(text); + alert.setDuration(5000); + sdlManager.sendRPC(alert); + } + } 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 f44f7e74e..5cf84bf74 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 @@ -532,17 +532,19 @@ abstract class BaseMenuManager extends BaseSubManager { // CELL COMMAND HANDLING private boolean callListenerForCells(List<MenuCell> cells, OnCommand command){ - for (MenuCell cell : cells){ - if (cell.getCellId() == command.getCmdID() && cell.getMenuSelectionListener() != null){ - cell.getMenuSelectionListener().onTriggered(command.getTriggerSource()); - return true; - } - - if (cell.getSubCells() != null && cell.getSubCells().size() > 0){ - // for each cell, if it has sub cells, recursively loop through those as well - if (callListenerForCells(cell.getSubCells(), command)) { + if (cells != null && cells.size() > 0 && command != null) { + for (MenuCell cell : cells) { + if (cell.getCellId() == command.getCmdID() && cell.getMenuSelectionListener() != null) { + cell.getMenuSelectionListener().onTriggered(command.getTriggerSource()); return true; } + + if (cell.getSubCells() != null && cell.getSubCells().size() > 0) { + // for each cell, if it has sub cells, recursively loop through those as well + if (callListenerForCells(cell.getSubCells(), command)) { + return true; + } + } } } return false; diff --git a/hello_sdl_java/src/main/java/com/smartdevicelink/java/SdlService.java b/hello_sdl_java/src/main/java/com/smartdevicelink/java/SdlService.java index fb74c6e80..9af923026 100644 --- a/hello_sdl_java/src/main/java/com/smartdevicelink/java/SdlService.java +++ b/hello_sdl_java/src/main/java/com/smartdevicelink/java/SdlService.java @@ -203,10 +203,11 @@ public class SdlService { // some voice commands List<String> voice2 = Collections.singletonList("Cell two"); - MenuCell mainCell1 = new MenuCell("Test Cell 1", livio, null, new MenuSelectionListener() { + MenuCell mainCell1 = new MenuCell("Test Cell 1 (speak)", livio, null, new MenuSelectionListener() { @Override public void onTriggered(TriggerSource trigger) { Log.i(TAG, "Test cell 1 triggered. Source: "+ trigger.toString()); + showTest(); } }); @@ -242,6 +243,7 @@ public class SdlService { Log.i(TAG, "Clearing Menu. Source: "+ trigger.toString()); // Clear this thing sdlManager.getScreenManager().setMenu(Collections.<MenuCell>emptyList()); + showAlert("Menu Cleared"); } }); @@ -281,13 +283,20 @@ public class SdlService { */ private void showTest(){ sdlManager.getScreenManager().beginTransaction(); - sdlManager.getScreenManager().setTextField1("Command has been selected"); + sdlManager.getScreenManager().setTextField1("Test Cell 1 has been selected"); sdlManager.getScreenManager().setTextField2(""); sdlManager.getScreenManager().commit(null); sdlManager.sendRPC(new Speak(TTSChunkFactory.createSimpleTTSChunks(TEST_COMMAND_NAME))); } + private void showAlert(String text){ + Alert alert = new Alert(); + alert.setAlertText1(text); + alert.setDuration(5000); + sdlManager.sendRPC(alert); + } + public interface SdlServiceCallback{ void onEnd(); diff --git a/hello_sdl_java_ee/src/main/java/com/smartdevicelink/SdlService.java b/hello_sdl_java_ee/src/main/java/com/smartdevicelink/SdlService.java index 37f87dc55..aaf887222 100644 --- a/hello_sdl_java_ee/src/main/java/com/smartdevicelink/SdlService.java +++ b/hello_sdl_java_ee/src/main/java/com/smartdevicelink/SdlService.java @@ -169,10 +169,11 @@ public class SdlService { // some voice commands List<String> voice2 = Collections.singletonList("Cell two"); - MenuCell mainCell1 = new MenuCell("Test Cell 1", livio, null, new MenuSelectionListener() { + MenuCell mainCell1 = new MenuCell("Test Cell 1 (speak)", livio, null, new MenuSelectionListener() { @Override public void onTriggered(TriggerSource trigger) { Log.i(TAG, "Test cell 1 triggered. Source: "+ trigger.toString()); + showTest(); } }); @@ -208,6 +209,7 @@ public class SdlService { Log.i(TAG, "Clearing Menu. Source: "+ trigger.toString()); // Clear this thing sdlManager.getScreenManager().setMenu(Collections.<MenuCell>emptyList()); + showAlert("Menu Cleared"); } }); @@ -247,13 +249,20 @@ public class SdlService { */ private void showTest(){ sdlManager.getScreenManager().beginTransaction(); - sdlManager.getScreenManager().setTextField1("Command has been selected"); + sdlManager.getScreenManager().setTextField1("Test Cell 1 has been selected"); sdlManager.getScreenManager().setTextField2(""); sdlManager.getScreenManager().commit(null); sdlManager.sendRPC(new Speak(TTSChunkFactory.createSimpleTTSChunks(TEST_COMMAND_NAME))); } + private void showAlert(String text){ + Alert alert = new Alert(); + alert.setAlertText1(text); + alert.setDuration(5000); + sdlManager.sendRPC(alert); + } + public interface SdlServiceCallback{ void onEnd(); |