summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrettyWhite <geekman3454@protonmail.com>2019-05-10 10:08:27 -0400
committerBrettyWhite <geekman3454@protonmail.com>2019-05-10 10:08:27 -0400
commitfc9c51ecd15a2f0ea077b7e9ec3da199e897f722 (patch)
tree24f48af82cfac6c1d914b2d2c3dbff6b29b3b05a
parente00162407fd36bcc659d601906b33547c786cf4f (diff)
downloadsdl_android-fc9c51ecd15a2f0ea077b7e9ec3da199e897f722.tar.gz
fix npe and enhance hello examples
-rwxr-xr-xandroid/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/SdlService.java14
-rw-r--r--base/src/main/java/com/smartdevicelink/managers/screen/menu/BaseMenuManager.java20
-rw-r--r--hello_sdl_java/src/main/java/com/smartdevicelink/java/SdlService.java13
-rw-r--r--hello_sdl_java_ee/src/main/java/com/smartdevicelink/SdlService.java13
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();