diff options
author | Julian Kast <julian@livio.com> | 2020-06-24 14:05:42 -0400 |
---|---|---|
committer | Julian Kast <julian@livio.com> | 2020-06-24 14:05:42 -0400 |
commit | 34bc2e5cb233d3fb2387c6ec1995762c3674d301 (patch) | |
tree | 501f2ac62b38b3ec04fbd5693cac4e80fb4e9031 | |
parent | ab4ac0649751b3aae62e61420eb49c967917854f (diff) | |
download | sdl_android-34bc2e5cb233d3fb2387c6ec1995762c3674d301.tar.gz |
Changed logic of when listeners get added
-rwxr-xr-x | android/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/SdlService.java | 32 | ||||
-rw-r--r-- | base/src/main/java/com/smartdevicelink/managers/screen/BaseSubscribeButtonManager.java | 27 |
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); } }); |