summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulian Kast <julian@livio.com>2020-06-24 14:05:42 -0400
committerJulian Kast <julian@livio.com>2020-06-24 14:05:42 -0400
commit34bc2e5cb233d3fb2387c6ec1995762c3674d301 (patch)
tree501f2ac62b38b3ec04fbd5693cac4e80fb4e9031
parentab4ac0649751b3aae62e61420eb49c967917854f (diff)
downloadsdl_android-34bc2e5cb233d3fb2387c6ec1995762c3674d301.tar.gz
Changed logic of when listeners get added
-rwxr-xr-xandroid/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/SdlService.java32
-rw-r--r--base/src/main/java/com/smartdevicelink/managers/screen/BaseSubscribeButtonManager.java27
2 files changed, 19 insertions, 40 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 f59202735..752ee3ee2 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
@@ -188,7 +188,6 @@ public class SdlService extends Service {
performWelcomeSpeak();
performWelcomeShow();
preloadChoices();
- subscribeToAllButtons();
}
}
});
@@ -356,7 +355,7 @@ public class SdlService extends Service {
});
// Send the entire menu off to be created
- sdlManager.getScreenManager().setMenu(Arrays.asList(mainCell1, mainCell2, mainCell3, mainCell4, mainCell5, mainCell6));
+ sdlManager.getScreenManager().setMenu(Arrays.asList(mainCell1, mainCell2, mainCell3, mainCell4, mainCell5));
}
/**
@@ -367,35 +366,6 @@ public class SdlService extends Service {
}
/**
- * Attempts to add a listener to all hard buttons
- */
- private void subscribeToAllButtons(){
- onButtonListener = new OnButtonListener() {
- @Override
- public void onPress(ButtonName buttonName, OnButtonPress buttonPress) {
- Log.i(TAG, "onPress: " + buttonName + " " + buttonPress);
- }
-
- @Override
- public void onEvent(ButtonName buttonName, OnButtonEvent buttonEvent) {
- Log.i(TAG, "onEvent" + buttonName + " " + buttonEvent);
-
- }
-
- @Override
- public void onError(String info) {
- Log.i(TAG, "onError: "+ info);
- }
- };
-
- ButtonName[] buttonNames = ButtonName.values();
-
- for(ButtonName buttonName : buttonNames){
- sdlManager.getScreenManager().addButtonListener(buttonName,onButtonListener);
- }
- }
-
- /**
* Use the Screen Manager to set the initial screen text and set the image.
* Because we are setting multiple items, we will call beginTransaction() first,
* and finish with commit() when we are done.
diff --git a/base/src/main/java/com/smartdevicelink/managers/screen/BaseSubscribeButtonManager.java b/base/src/main/java/com/smartdevicelink/managers/screen/BaseSubscribeButtonManager.java
index cf2d1a50d..28b88eef9 100644
--- a/base/src/main/java/com/smartdevicelink/managers/screen/BaseSubscribeButtonManager.java
+++ b/base/src/main/java/com/smartdevicelink/managers/screen/BaseSubscribeButtonManager.java
@@ -70,13 +70,12 @@ abstract class BaseSubscribeButtonManager extends BaseSubManager {
}
if (buttonName == null) {
listener.onError("ButtonName cannot be null");
- Log.e(TAG, "ButtonName cannot be null");
return;
}
if (onButtonListeners.get(buttonName) == null) {
- onButtonListeners.put(buttonName, new CopyOnWriteArrayList<OnButtonListener>());
subscribeButtonRequest(buttonName, listener);
+ return;
}
if (onButtonListeners.get(buttonName).contains(listener)) {
@@ -87,21 +86,29 @@ abstract class BaseSubscribeButtonManager extends BaseSubManager {
}
/**
- * Unsubscribes form button and/or listener sent by developer
+ * Unsubscribe form button and/or listener sent by developer
* @param buttonName Is the button that the developer wants to unsubscribe from
* @param listener - the listener that was sent by developer
*/
void removeButtonListener(final ButtonName buttonName, final OnButtonListener listener) {
-
- if (onButtonListeners.get(buttonName) == null) {
+
+ if(listener == null){
+ Log.e(TAG, "OnButtonListener cannot be null: ");
return;
}
- if (!onButtonListeners.get(buttonName).contains(listener)) {
+
+ if(buttonName == null){
+ listener.onError("ButtonName cannot be null");
+ Log.e(TAG, "ButtonName cannot be null");
+ }
+
+ if (onButtonListeners.get(buttonName) == null || !onButtonListeners.get(buttonName).contains(listener)) {
+ Log.e(TAG, "Attempting to unsubscribe to the "+ buttonName + " subscribe button which is not currently subscribed: ");
return;
}
- onButtonListeners.get(buttonName).remove(listener);
- if (onButtonListeners.get(buttonName).size() > 0) {
+ if (onButtonListeners.get(buttonName).size() > 1) {
+ onButtonListeners.get(buttonName).remove(listener);
return;
}
@@ -137,11 +144,13 @@ abstract class BaseSubscribeButtonManager extends BaseSubManager {
@Override
public void onResponse(int correlationId, RPCResponse response) {
Log.d(TAG, "Successfully subscribed to button named " + buttonName);
+ onButtonListeners.put(buttonName, new CopyOnWriteArrayList<OnButtonListener>());
+ onButtonListeners.get(buttonName).add(listener);
}
@Override
public void onError(int correlationId, Result resultCode, String info) {
- Log.e(TAG, "Attempt to subscribe to subscribe button named " + buttonName + " " + info);
+ Log.e(TAG, "Attempt to subscribe to subscribe button named " + buttonName + " Failed " + info);
listener.onError(info);
}
});