diff options
author | RHenigan <heniganr1@gmail.com> | 2022-02-11 10:28:41 -0500 |
---|---|---|
committer | RHenigan <heniganr1@gmail.com> | 2022-02-11 10:28:41 -0500 |
commit | 997b231bbee239863a167e4cf966580bf6a4d9e5 (patch) | |
tree | 2b4c632eef332f38a9ec902b2f4ad116b64d4c43 /android | |
parent | 71f80f40f69f06f9d68fadac8376595c7608afa2 (diff) | |
parent | b51cda07b5827614fa33c991fe3b09687ffe1950 (diff) | |
download | sdl_android-997b231bbee239863a167e4cf966580bf6a4d9e5.tar.gz |
Merge branch 'develop' into feature/android_12_fixes
Diffstat (limited to 'android')
37 files changed, 411 insertions, 192 deletions
diff --git a/android/sdl_android/build.gradle b/android/sdl_android/build.gradle index fbfb4e575..575ec5f93 100644 --- a/android/sdl_android/build.gradle +++ b/android/sdl_android/build.gradle @@ -40,6 +40,8 @@ android { } } +ext { VERSION_NAME = "$project.android.defaultConfig.versionName" } + dependencies { api fileTree(dir: 'libs', include: ['*.jar']) //api 'com.livio.taskmaster:taskmaster:0.6.0' diff --git a/android/sdl_android/gradle.properties b/android/sdl_android/gradle.properties index d93b695d2..d720ac795 100644 --- a/android/sdl_android/gradle.properties +++ b/android/sdl_android/gradle.properties @@ -1,6 +1,5 @@ GROUP=com.smartdevicelink POM_ARTIFACT_ID=sdl_android -VERSION_NAME=5.3.0 POM_NAME=sdl_android POM_PACKAGING=aar diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/AlertManagerTest.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/AlertManagerTest.java index 1655b3d08..1ebac1567 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/AlertManagerTest.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/AlertManagerTest.java @@ -68,9 +68,9 @@ public class AlertManagerTest { public Void answer(InvocationOnMock invocation) { Object[] args = invocation.getArguments(); OnPermissionChangeListener onPermissionChangeListener = (OnPermissionChangeListener) args[2]; - Map<FunctionID, PermissionStatus > allowedPermissions = new HashMap<>(); + Map<FunctionID, PermissionStatus> allowedPermissions = new HashMap<>(); int permissionGroupStatus = PermissionManager.PERMISSION_GROUP_STATUS_DISALLOWED; - onPermissionChangeListener.onPermissionsChange(allowedPermissions,permissionGroupStatus); + onPermissionChangeListener.onPermissionsChange(allowedPermissions, permissionGroupStatus); return null; } }; diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/PresentAlertOperationTest.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/PresentAlertOperationTest.java index 1283992a2..5f69010f1 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/PresentAlertOperationTest.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/PresentAlertOperationTest.java @@ -194,10 +194,10 @@ public class PresentAlertOperationTest { windowCapability = getWindowCapability(2); - presentAlertOperation = new PresentAlertOperation(internalInterface, alertView, windowCapability, speechCapabilities, fileManager, 1, alertCompletionListener, alertSoftButtonClearListener); + presentAlertOperation = new PresentAlertOperation(internalInterface, alertView, windowCapability, speechCapabilities, fileManager, 1, alertCompletionListener, alertSoftButtonClearListener); alert = presentAlertOperation.alertRpc(); assertEquals(alert.getAlertText1(), alertView.getText()); - assertEquals(alert.getAlertText2(),alertView.getSecondaryText() + " - " + alertView.getTertiaryText()); + assertEquals(alert.getAlertText2(), alertView.getSecondaryText() + " - " + alertView.getTertiaryText()); } @Test diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/ScreenManagerTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/ScreenManagerTests.java index b5cecf26c..b5c0059c4 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/ScreenManagerTests.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/ScreenManagerTests.java @@ -209,22 +209,19 @@ public class ScreenManagerTests { SoftButtonObject softButtonObject3 = new SoftButtonObject("object1", Arrays.asList(softButtonState1, softButtonState2), softButtonState1.getName(), null); SoftButtonObject softButtonObject4 = new SoftButtonObject("object2", Arrays.asList(softButtonState3, softButtonState4), softButtonState3.getName(), null); assertTrue(screenManager.checkAndAssignButtonIds(softButtonObjects, BaseScreenManager.ManagerLocation.SOFTBUTTON_MANAGER)); - - - - - } + @Test public void testAssigningIdsToSoftButtonObjects() { + SoftButtonState defaultState = new SoftButtonState("default", "hi", null); SoftButtonObject sbo1, sbo2, sbo3, sbo4, sbo5; // Case 1 - don't set id for any button (Manager should set ids automatically starting from 1 and up) - sbo1 = new SoftButtonObject(null, Collections.EMPTY_LIST, null, null); - sbo2 = new SoftButtonObject(null, Collections.EMPTY_LIST, null, null); - sbo3 = new SoftButtonObject(null, Collections.EMPTY_LIST, null, null); - sbo4 = new SoftButtonObject(null, Collections.EMPTY_LIST, null, null); - sbo5 = new SoftButtonObject(null, Collections.EMPTY_LIST, null, null); + sbo1 = new SoftButtonObject(null, defaultState, null); + sbo2 = new SoftButtonObject(null, defaultState, null); + sbo3 = new SoftButtonObject(null, defaultState, null); + sbo4 = new SoftButtonObject(null, defaultState, null); + sbo5 = new SoftButtonObject(null, defaultState, null); screenManager.checkAndAssignButtonIds(Arrays.asList(sbo1, sbo2, sbo3, sbo4, sbo5), BaseScreenManager.ManagerLocation.SOFTBUTTON_MANAGER); assertEquals("SoftButtonObject id doesn't match the expected value", 1, sbo1.getButtonId()); assertEquals("SoftButtonObject id doesn't match the expected value", 2, sbo2.getButtonId()); @@ -234,15 +231,15 @@ public class ScreenManagerTests { // Case 2 - Set ids for all buttons (Manager shouldn't alter the ids set by developer) - sbo1 = new SoftButtonObject(null, Collections.EMPTY_LIST, null, null); + sbo1 = new SoftButtonObject(null, defaultState, null); sbo1.setButtonId(100); - sbo2 = new SoftButtonObject(null, Collections.EMPTY_LIST, null, null); + sbo2 = new SoftButtonObject(null, defaultState, null); sbo2.setButtonId(200); - sbo3 = new SoftButtonObject(null, Collections.EMPTY_LIST, null, null); + sbo3 = new SoftButtonObject(null, defaultState, null); sbo3.setButtonId(300); - sbo4 = new SoftButtonObject(null, Collections.EMPTY_LIST, null, null); + sbo4 = new SoftButtonObject(null, defaultState, null); sbo4.setButtonId(400); - sbo5 = new SoftButtonObject(null, Collections.EMPTY_LIST, null, null); + sbo5 = new SoftButtonObject(null, defaultState, null); sbo5.setButtonId(500); screenManager.checkAndAssignButtonIds(Arrays.asList(sbo1, sbo2, sbo3, sbo4, sbo5), BaseScreenManager.ManagerLocation.SOFTBUTTON_MANAGER); assertEquals("SoftButtonObject id doesn't match the expected value", 100, sbo1.getButtonId()); @@ -253,13 +250,13 @@ public class ScreenManagerTests { // Case 3 - Set ids for some buttons (Manager shouldn't alter the ids set by developer. And it should assign ids for the ones that don't have id) - sbo1 = new SoftButtonObject(null, Collections.EMPTY_LIST, null, null); + sbo1 = new SoftButtonObject(null, defaultState, null); sbo1.setButtonId(50); - sbo2 = new SoftButtonObject(null, Collections.EMPTY_LIST, null, null); - sbo3 = new SoftButtonObject(null, Collections.EMPTY_LIST, null, null); - sbo4 = new SoftButtonObject(null, Collections.EMPTY_LIST, null, null); + sbo2 = new SoftButtonObject(null, defaultState, null); + sbo3 = new SoftButtonObject(null, defaultState, null); + sbo4 = new SoftButtonObject(null, defaultState, null); sbo4.setButtonId(100); - sbo5 = new SoftButtonObject(null, Collections.EMPTY_LIST, null, null); + sbo5 = new SoftButtonObject(null, defaultState, null); screenManager.checkAndAssignButtonIds(Arrays.asList(sbo1, sbo2, sbo3, sbo4, sbo5), BaseScreenManager.ManagerLocation.SOFTBUTTON_MANAGER); assertEquals("SoftButtonObject id doesn't match the expected value", 50, sbo1.getButtonId()); assertEquals("SoftButtonObject id doesn't match the expected value", 101, sbo2.getButtonId()); diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/SoftButtonManagerTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/SoftButtonManagerTests.java index becc01a74..67e7384e9 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/SoftButtonManagerTests.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/SoftButtonManagerTests.java @@ -44,6 +44,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; + import static junit.framework.TestCase.assertEquals; import static junit.framework.TestCase.assertFalse; import static junit.framework.TestCase.assertNull; @@ -350,8 +351,8 @@ public class SoftButtonManagerTests { softButtonStateList.add(softButtonState1); softButtonStateList2.add(softButtonState1); softButtonStateList2.add(softButtonState2); - softButtonObject1 = new SoftButtonObject("hi", softButtonStateList, "Hi", null); - softButtonObject2 = new SoftButtonObject("hi", softButtonStateList2, "Hi", null); + softButtonObject1 = new SoftButtonObject("hi", softButtonStateList, softButtonStateList.get(0).getName(), null); + softButtonObject2 = new SoftButtonObject("hi", softButtonStateList2, softButtonStateList2.get(0).getName(), null); assertNotEquals(softButtonObject1, softButtonObject2); // Case 5: SoftButtonStates are not the same, assertFalse @@ -365,8 +366,8 @@ public class SoftButtonManagerTests { assertNotEquals(softButtonObject1, softButtonObject2); // Case 7: SoftButtonObject currentStateName not same, assertFalse - softButtonObject1 = new SoftButtonObject("hi", softButtonStateList, "Hi", null); - softButtonObject2 = new SoftButtonObject("hi", softButtonStateList, "Hi2", null); + softButtonObject1 = new SoftButtonObject("hi", softButtonStateList2, softButtonStateList2.get(0).getName(), null); + softButtonObject2 = new SoftButtonObject("hi", softButtonStateList2, softButtonStateList2.get(1).getName(), null); assertNotEquals(softButtonObject1, softButtonObject2); } @@ -402,4 +403,117 @@ public class SoftButtonManagerTests { softButtonState2 = new SoftButtonState("object1-state1", "o1s1", artwork1); assertEquals(softButtonState1, softButtonState2); } + + /** + * Test constructing SoftButtonObject with an empty state list + */ + @Test + public void testConstructSoftButtonObjectWithEmptyStateList() { + List<SoftButtonState> stateList = new ArrayList<>(); + SoftButtonObject softButtonObject = new SoftButtonObject("hello_there", stateList, "general_kenobi", null); + assertNull(softButtonObject.getStates()); + } + + /** + * Test constructing SoftButtonObject with an nonempty state list + */ + @Test + public void testConstructSoftButtonObjectWithNonEmptyStateList() { + List<SoftButtonState> stateList = new ArrayList<>(); + SoftButtonState softButtonState = new SoftButtonState("general_kenobi", "General Kenobi", null); + stateList.add(softButtonState); + SoftButtonObject softButtonObject = new SoftButtonObject("hello_there", stateList, "general_kenobi", null); + assertEquals(stateList, softButtonObject.getStates()); + } + + /** + * Test constructing SoftButtonObject with an invalid initialStateName + */ + @Test + public void testConstructSoftButtonObjectWithInvalidInitialStateName() { + List<SoftButtonState> stateList = new ArrayList<>(); + SoftButtonState softButtonState = new SoftButtonState("general_kenobi", "General Kenobi", null); + stateList.add(softButtonState); + SoftButtonObject softButtonObject = new SoftButtonObject("hello_there", stateList, "hello_there", null); + assertNull(softButtonObject.getStates()); + } + + /** + * Test assigning an empty state list to existing SoftButtonObject + */ + @Test + public void testAssignEmptyStateListToSoftButtonObject() { + List<SoftButtonState> nonEmptyStateList = new ArrayList<>(); + List<SoftButtonState> emptyStateList = new ArrayList<>(); + SoftButtonState softButtonState = new SoftButtonState("general_kenobi", "General Kenobi", null); + nonEmptyStateList.add(softButtonState); + + SoftButtonObject softButtonObject = new SoftButtonObject("hello_there", nonEmptyStateList, "general_kenobi", null); + + softButtonObject.setStates(emptyStateList); + assertEquals(nonEmptyStateList, softButtonObject.getStates()); + } + + /** + * Test assigning a state list with the current state to existing SoftButtonObject + */ + @Test + public void testAssignStateListWithCurrentStateToSoftButtonObject() { + List<SoftButtonState> stateList1 = new ArrayList<>(); + SoftButtonState softButtonState1 = new SoftButtonState("hello_there", "Hello there", null); + stateList1.add(softButtonState1); + + List<SoftButtonState> stateList2 = new ArrayList<>(); + SoftButtonState softButtonState2 = new SoftButtonState("general_kenobi", "General Kenobi", null); + stateList2.add(softButtonState1); + stateList2.add(softButtonState2); + + SoftButtonObject softButtonObject = new SoftButtonObject("general_kenobi", stateList1, "hello_there", null); + + softButtonObject.setStates(stateList2); + + assertEquals(stateList2, softButtonObject.getStates()); + } + + /** + * Test assigning a state list without the current state to existing SoftButtonObject + */ + @Test + public void testAssignStateListWithoutCurrentStateToSoftButtonObject() { + List<SoftButtonState> stateList1 = new ArrayList<>(); + SoftButtonState softButtonState1 = new SoftButtonState("hello_there", "Hello there", null); + stateList1.add(softButtonState1); + + List<SoftButtonState> stateList2 = new ArrayList<>(); + SoftButtonState softButtonState2 = new SoftButtonState("general_kenobi", "General Kenobi", null); + stateList2.add(softButtonState2); + + SoftButtonObject softButtonObject = new SoftButtonObject("general_kenobi", stateList1, "hello_there", null); + + softButtonObject.setStates(stateList2); + + assertEquals(stateList2, softButtonObject.getStates()); + } + + /** + * Test assigning a state list with states that have the same name to existing SoftButtonObject + */ + @Test + public void testAssignSameNameStateListToSoftButtonObject() { + List<SoftButtonState> stateListUnique = new ArrayList<>(); + SoftButtonState softButtonState1 = new SoftButtonState("hello_there", "Hello there", null); + stateListUnique.add(softButtonState1); + + List<SoftButtonState> stateListDuplicateNames = new ArrayList<>(); + SoftButtonState softButtonState2 = new SoftButtonState("general_kenobi", "General Kenobi", null); + stateListDuplicateNames.add(softButtonState2); + SoftButtonState softButtonState3 = new SoftButtonState("general_kenobi", "General Kenobi Again", null); + stateListDuplicateNames.add(softButtonState3); + + SoftButtonObject softButtonObject = new SoftButtonObject("general_kenobi", stateListUnique, "hello_there", null); + + softButtonObject.setStates(stateListDuplicateNames); + + assertEquals(stateListUnique, softButtonObject.getStates()); + } } diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/choiceset/ChoiceSetManagerTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/choiceset/ChoiceSetManagerTests.java index f26a7a5c5..1315d2b66 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/choiceset/ChoiceSetManagerTests.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/choiceset/ChoiceSetManagerTests.java @@ -279,7 +279,7 @@ public class ChoiceSetManagerTests { newCSM.setKeyboardConfiguration(newCSM.defaultKeyboardConfiguration()); Field field = BaseChoiceSetManager.class.getDeclaredField("keyboardConfiguration"); field.setAccessible(true); - KeyboardProperties properties = (KeyboardProperties)field.get(newCSM); + KeyboardProperties properties = (KeyboardProperties) field.get(newCSM); assertEquals(properties, csm.defaultKeyboardConfiguration()); // Test presentKeyboard @@ -287,7 +287,7 @@ public class ChoiceSetManagerTests { newCSM.presentKeyboard("qwerty", newCSM.defaultKeyboardConfiguration(), null); field = BaseChoiceSetManager.class.getDeclaredField("keyboardConfiguration"); field.setAccessible(true); - properties = (KeyboardProperties)field.get(newCSM); + properties = (KeyboardProperties) field.get(newCSM); assertEquals(properties, csm.defaultKeyboardConfiguration()); } @@ -314,7 +314,7 @@ public class ChoiceSetManagerTests { Field field = BaseChoiceSetManager.class.getDeclaredField("keyboardConfiguration"); field.setAccessible(true); - KeyboardProperties getProperties = (KeyboardProperties)field.get(newCSM); + KeyboardProperties getProperties = (KeyboardProperties) field.get(newCSM); assertEquals(getProperties.getCustomKeys().size(), 1); } @@ -342,7 +342,7 @@ public class ChoiceSetManagerTests { Field field = BaseChoiceSetManager.class.getDeclaredField("keyboardConfiguration"); field.setAccessible(true); - KeyboardProperties getProperties = (KeyboardProperties)field.get(newCSM); + KeyboardProperties getProperties = (KeyboardProperties) field.get(newCSM); assertNull(getProperties.getCustomKeys()); } @@ -373,7 +373,7 @@ public class ChoiceSetManagerTests { Field field = BaseChoiceSetManager.class.getDeclaredField("keyboardConfiguration"); field.setAccessible(true); - KeyboardProperties getProperties = (KeyboardProperties)field.get(newCSM); + KeyboardProperties getProperties = (KeyboardProperties) field.get(newCSM); assertNull(getProperties.getMaskInputCharacters()); } diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/choiceset/PreloadPresentChoicesOperationTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/choiceset/PreloadPresentChoicesOperationTests.java index 0f3725f53..8a8b8c64e 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/choiceset/PreloadPresentChoicesOperationTests.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/choiceset/PreloadPresentChoicesOperationTests.java @@ -344,7 +344,7 @@ public class PreloadPresentChoicesOperationTests { when(internalInterface.getSdlMsgVersion()).thenReturn(new SdlMsgVersion(6, 0)); WindowCapability windowCapability = new WindowCapability(); HashSet<ChoiceCell> loadedCells = new HashSet<>(); - presentChoicesOperation = new PreloadPresentChoicesOperation(internalInterface, fileManager, choiceSet, InteractionMode.MANUAL_ONLY, null, null, TestValues.GENERAL_INTEGER,null, windowCapability, true, loadedCells, null, null); + presentChoicesOperation = new PreloadPresentChoicesOperation(internalInterface, fileManager, choiceSet, InteractionMode.MANUAL_ONLY, null, null, TestValues.GENERAL_INTEGER, null, windowCapability, true, loadedCells, null, null); presentChoicesOperation.finishOperation(false); assertEquals(Task.FINISHED, presentChoicesOperation.getState()); @@ -360,7 +360,7 @@ public class PreloadPresentChoicesOperationTests { when(internalInterface.getSdlMsgVersion()).thenReturn(new SdlMsgVersion(6, 0)); WindowCapability windowCapability = new WindowCapability(); HashSet<ChoiceCell> loadedCells = new HashSet<>(); - presentChoicesOperation = new PreloadPresentChoicesOperation(internalInterface, fileManager, choiceSet, InteractionMode.MANUAL_ONLY, null, null, TestValues.GENERAL_INTEGER,null, windowCapability, true, loadedCells, null, null); + presentChoicesOperation = new PreloadPresentChoicesOperation(internalInterface, fileManager, choiceSet, InteractionMode.MANUAL_ONLY, null, null, TestValues.GENERAL_INTEGER, null, windowCapability, true, loadedCells, null, null); presentChoicesOperation.cancelTask(); assertEquals(Task.CANCELED, presentChoicesOperation.getState()); diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuConfigurationUpdateOperationTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuConfigurationUpdateOperationTests.java index c52cf6186..c6281652f 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuConfigurationUpdateOperationTests.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuConfigurationUpdateOperationTests.java @@ -192,7 +192,7 @@ public class MenuConfigurationUpdateOperationTests { transactionQueue.add(operation, false); } - private Answer<Void> createSetGlobalPropertiesAnswer(final boolean success){ + private Answer<Void> createSetGlobalPropertiesAnswer(final boolean success) { return new Answer<Void>() { @Override public Void answer(InvocationOnMock invocation) { @@ -206,7 +206,7 @@ public class MenuConfigurationUpdateOperationTests { }; } - private WindowCapability createWindowCapability (boolean supportsList, boolean supportsTile) { + private WindowCapability createWindowCapability(boolean supportsList, boolean supportsTile) { WindowCapability windowCapability = new WindowCapability(); windowCapability.setMenuLayoutsAvailable(new ArrayList<MenuLayout>()); if (supportsList) { 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 6f8bff69d..863f0b4d9 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 @@ -145,7 +145,7 @@ public class MenuManagerTests { @Override public Void answer(InvocationOnMock invocation) { Object[] args = invocation.getArguments(); - List<RPCMessage> rpcs = (List<RPCMessage>) args[0]; + List<RPCMessage> rpcs = (List<RPCMessage>) args[0]; OnMultipleRequestListener listener = (OnMultipleRequestListener) args[1]; for (RPCMessage rpcMessage : rpcs) { @@ -261,12 +261,15 @@ public class MenuManagerTests { @Test public void testUpdatingOldWay() { + ISdl internalInterface = mock(ISdl.class); + when(internalInterface.getSdlMsgVersion()).thenReturn(new SdlMsgVersion(new Version(8, 0, 0))); + // Force Menu Manager to use the old way of deleting / sending all menuManager.setDynamicUpdatesMode(DynamicMenuUpdatesMode.FORCE_OFF); assertEquals(menuManager.dynamicMenuUpdatesMode, DynamicMenuUpdatesMode.FORCE_OFF); // when we only send one command to update, we should only be returned one add command List<MenuCell> newArray = Arrays.asList(mainCell1, mainCell4); - assertEquals(MenuReplaceUtilities.allCommandsForCells(newArray, menuManager.fileManager.get(), menuManager.windowCapability, MenuLayout.LIST).size(), 4); // 1 root cells, 1 sub menu root cell, 2 sub menu cells + assertEquals(MenuReplaceUtilities.allCommandsForCells(internalInterface, newArray, menuManager.fileManager.get(), menuManager.windowCapability, MenuLayout.LIST).size(), 4); // 1 root cells, 1 sub menu root cell, 2 sub menu cells menuManager.currentHMILevel = HMILevel.HMI_FULL; menuManager.setMenuCells(newArray); @@ -547,7 +550,7 @@ public class MenuManagerTests { // Sleep to give time to Taskmaster to run the operations sleep(); - assertEquals(0 , menuManager.currentMenuCells.size()); + assertEquals(0, menuManager.currentMenuCells.size()); } @Test diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuReplaceUtilitiesTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuReplaceUtilitiesTests.java index 61587dbdc..0c7285531 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuReplaceUtilitiesTests.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuReplaceUtilitiesTests.java @@ -34,13 +34,16 @@ package com.smartdevicelink.managers.screen.menu; import androidx.test.ext.junit.runners.AndroidJUnit4; +import com.smartdevicelink.managers.ISdl; import com.smartdevicelink.managers.file.FileManager; import com.smartdevicelink.managers.file.filetypes.SdlArtwork; import com.smartdevicelink.proxy.rpc.ImageField; +import com.smartdevicelink.proxy.rpc.SdlMsgVersion; import com.smartdevicelink.proxy.rpc.WindowCapability; import com.smartdevicelink.proxy.rpc.enums.ImageFieldName; import com.smartdevicelink.proxy.rpc.enums.MenuLayout; import com.smartdevicelink.test.TestValues; +import com.smartdevicelink.util.Version; import org.junit.Before; import org.junit.Test; @@ -210,7 +213,88 @@ public class MenuReplaceUtilitiesTests { } @Test + public void testWindowCapabilitySupportsPrimaryImage() { + WindowCapability windowCapability; + ISdl internalInterface = mock(ISdl.class); + MenuCell menuCell = mock(MenuCell.class); + + // Test case 0 + windowCapability = createWindowCapability(false, true); + when(menuCell.isSubMenuCell()).thenReturn(true); + when(internalInterface.getSdlMsgVersion()).thenReturn(new SdlMsgVersion(new Version(4, 9, 0))); + assertTrue(MenuReplaceUtilities.windowCapabilitySupportsPrimaryImage(internalInterface, windowCapability, menuCell)); + + // Test case 1 + windowCapability = createWindowCapability(false, false); + when(menuCell.isSubMenuCell()).thenReturn(true); + when(internalInterface.getSdlMsgVersion()).thenReturn(new SdlMsgVersion(new Version(4, 9, 0))); + assertFalse(MenuReplaceUtilities.windowCapabilitySupportsPrimaryImage(internalInterface, windowCapability, menuCell)); + + // Test case 2 + windowCapability = createWindowCapability(false, false); + when(menuCell.isSubMenuCell()).thenReturn(true); + when(internalInterface.getSdlMsgVersion()).thenReturn(new SdlMsgVersion(new Version(5, 0, 0))); + assertFalse(MenuReplaceUtilities.windowCapabilitySupportsPrimaryImage(internalInterface, windowCapability, menuCell)); + + // Test case 3 + windowCapability = createWindowCapability(true, false); + when(menuCell.isSubMenuCell()).thenReturn(true); + when(internalInterface.getSdlMsgVersion()).thenReturn(new SdlMsgVersion(new Version(5, 0, 0))); + assertTrue(MenuReplaceUtilities.windowCapabilitySupportsPrimaryImage(internalInterface, windowCapability, menuCell)); + + // Test case 4 + windowCapability = createWindowCapability(false, false); + when(menuCell.isSubMenuCell()).thenReturn(true); + when(internalInterface.getSdlMsgVersion()).thenReturn(new SdlMsgVersion(new Version(6, 0, 0))); + assertFalse(MenuReplaceUtilities.windowCapabilitySupportsPrimaryImage(internalInterface, windowCapability, menuCell)); + + // Test case 5 + windowCapability = createWindowCapability(true, false); + when(menuCell.isSubMenuCell()).thenReturn(true); + when(internalInterface.getSdlMsgVersion()).thenReturn(new SdlMsgVersion(new Version(6, 0, 0))); + assertTrue(MenuReplaceUtilities.windowCapabilitySupportsPrimaryImage(internalInterface, windowCapability, menuCell)); + + // Test case 6 + windowCapability = createWindowCapability(false, false); + when(menuCell.isSubMenuCell()).thenReturn(true); + when(internalInterface.getSdlMsgVersion()).thenReturn(new SdlMsgVersion(new Version(7, 0, 0))); + assertFalse(MenuReplaceUtilities.windowCapabilitySupportsPrimaryImage(internalInterface, windowCapability, menuCell)); + + // Test case 7 + windowCapability = createWindowCapability(false, false); + when(menuCell.isSubMenuCell()).thenReturn(true); + when(internalInterface.getSdlMsgVersion()).thenReturn(new SdlMsgVersion(new Version(7, 1, 0))); + assertFalse(MenuReplaceUtilities.windowCapabilitySupportsPrimaryImage(internalInterface, windowCapability, menuCell)); + + // Test case 8 + windowCapability = createWindowCapability(false, false); + when(menuCell.isSubMenuCell()).thenReturn(true); + when(internalInterface.getSdlMsgVersion()).thenReturn(new SdlMsgVersion(new Version(8, 0, 0))); + assertFalse(MenuReplaceUtilities.windowCapabilitySupportsPrimaryImage(internalInterface, windowCapability, menuCell)); + + // Test case 9 + windowCapability = createWindowCapability(false, true); + when(menuCell.isSubMenuCell()).thenReturn(true); + when(internalInterface.getSdlMsgVersion()).thenReturn(new SdlMsgVersion(new Version(8, 0, 0))); + assertTrue(MenuReplaceUtilities.windowCapabilitySupportsPrimaryImage(internalInterface, windowCapability, menuCell)); + + // Test case 10 + windowCapability = createWindowCapability(false, false); + when(menuCell.isSubMenuCell()).thenReturn(false); + when(internalInterface.getSdlMsgVersion()).thenReturn(new SdlMsgVersion(new Version(8, 0, 0))); + assertFalse(MenuReplaceUtilities.windowCapabilitySupportsPrimaryImage(internalInterface, windowCapability, menuCell)); + + // Test case 11 + windowCapability = createWindowCapability(true, false); + when(menuCell.isSubMenuCell()).thenReturn(false); + when(internalInterface.getSdlMsgVersion()).thenReturn(new SdlMsgVersion(new Version(8, 0, 0))); + assertTrue(MenuReplaceUtilities.windowCapabilitySupportsPrimaryImage(internalInterface, windowCapability, menuCell)); + } + + @Test public void testShouldCellIncludeImage() { + ISdl internalInterface = mock(ISdl.class); + when(internalInterface.getSdlMsgVersion()).thenReturn(new SdlMsgVersion(new Version(8, 0, 0))); MenuCell menuCell; WindowCapability windowCapability; FileManager fileManager; @@ -220,34 +304,34 @@ public class MenuReplaceUtilitiesTests { menuCell = new MenuCell(TestValues.GENERAL_STRING, TestValues.GENERAL_ARTWORK, voiceCommands, null); windowCapability = createWindowCapability(true, true); fileManager = createMockFileManager(true); - assertTrue(MenuReplaceUtilities.shouldCellIncludePrimaryImageFromCell(menuCell, fileManager, windowCapability)); + assertTrue(MenuReplaceUtilities.shouldCellIncludePrimaryImageFromCell(internalInterface, menuCell, fileManager, windowCapability)); // Case 2 - Image are not supported menuCell = new MenuCell(TestValues.GENERAL_STRING, TestValues.GENERAL_ARTWORK, voiceCommands, null); windowCapability = createWindowCapability(false, false); fileManager = createMockFileManager(true); - assertFalse(MenuReplaceUtilities.shouldCellIncludePrimaryImageFromCell(menuCell, fileManager, windowCapability)); + assertFalse(MenuReplaceUtilities.shouldCellIncludePrimaryImageFromCell(internalInterface, menuCell, fileManager, windowCapability)); // Case 3 - Artwork is null menuCell = new MenuCell(TestValues.GENERAL_STRING, null, voiceCommands, null); windowCapability = createWindowCapability(true, true); fileManager = createMockFileManager(true); - assertFalse(MenuReplaceUtilities.shouldCellIncludePrimaryImageFromCell(menuCell, fileManager, windowCapability)); + assertFalse(MenuReplaceUtilities.shouldCellIncludePrimaryImageFromCell(internalInterface, menuCell, fileManager, windowCapability)); // Case 4 - Artwork has not been uploaded menuCell = new MenuCell(TestValues.GENERAL_STRING, TestValues.GENERAL_ARTWORK, voiceCommands, null); windowCapability = createWindowCapability(true, true); fileManager = createMockFileManager(false); - assertFalse(MenuReplaceUtilities.shouldCellIncludePrimaryImageFromCell(menuCell, fileManager, windowCapability)); + assertFalse(MenuReplaceUtilities.shouldCellIncludePrimaryImageFromCell(internalInterface, menuCell, fileManager, windowCapability)); // Case 5 - Artwork is static icon menuCell = new MenuCell(TestValues.GENERAL_STRING, TestValues.GENERAL_ARTWORK_STATIC, voiceCommands, null); windowCapability = createWindowCapability(true, true); fileManager = createMockFileManager(false); - assertTrue(MenuReplaceUtilities.shouldCellIncludePrimaryImageFromCell(menuCell, fileManager, windowCapability)); + assertTrue(MenuReplaceUtilities.shouldCellIncludePrimaryImageFromCell(internalInterface, menuCell, fileManager, windowCapability)); } - private WindowCapability createWindowCapability (boolean supportsCmdIcon, boolean supportsSubMenuIcon) { + private WindowCapability createWindowCapability(boolean supportsCmdIcon, boolean supportsSubMenuIcon) { WindowCapability windowCapability = new WindowCapability(); windowCapability.setImageFields(new ArrayList<ImageField>()); if (supportsCmdIcon) { @@ -259,7 +343,7 @@ public class MenuReplaceUtilitiesTests { return windowCapability; } - private FileManager createMockFileManager (boolean hasUploadedFile) { + private FileManager createMockFileManager(boolean hasUploadedFile) { FileManager fileManager = mock(FileManager.class); when(fileManager.hasUploadedFile(any(SdlArtwork.class))).thenReturn(hasUploadedFile); return fileManager; @@ -308,7 +392,7 @@ public class MenuReplaceUtilitiesTests { List<MenuCell> menuCellList = new ArrayList<>(Arrays.asList(menuCell1, menuCell2, menuCell3, menuCell4)); addIdsToMenuCells(menuCellList, parentIdNotFound); - return menuCellList ; + return menuCellList; } private List<MenuCell> createNewMenuList() { @@ -338,6 +422,6 @@ public class MenuReplaceUtilitiesTests { List<MenuCell> newMenuList = new ArrayList<>(Arrays.asList(menuCell5)); addIdsToMenuCells(newMenuList, parentIdNotFound); - return newMenuList ; + return newMenuList; } } diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuShowOperationTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuShowOperationTests.java index ee90cee49..29c9b7ce4 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuShowOperationTests.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/MenuShowOperationTests.java @@ -108,7 +108,7 @@ public class MenuShowOperationTests { verify(internalInterface, Mockito.times(1)).sendRPC(any(ShowAppMenu.class)); } - private Answer<Void> createShowAppMenuAnswer(final boolean success, final Integer menuIdToAssert){ + private Answer<Void> createShowAppMenuAnswer(final boolean success, final Integer menuIdToAssert) { return new Answer<Void>() { @Override public Void answer(InvocationOnMock invocation) { @@ -118,7 +118,7 @@ public class MenuShowOperationTests { @Override public void run() { ShowAppMenu showAppMenu = (ShowAppMenu) request; - assertEquals(showAppMenu.getMenuID(), menuIdToAssert); + assertEquals(showAppMenu.getMenuID(), menuIdToAssert); } }); RPCResponse response = new RPCResponse(request.getFunctionID().toString()); diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/VoiceCommandUpdateOperationTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/VoiceCommandUpdateOperationTests.java index 67885a902..475e29983 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/VoiceCommandUpdateOperationTests.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/menu/VoiceCommandUpdateOperationTests.java @@ -117,13 +117,13 @@ public class VoiceCommandUpdateOperationTests { AddCommand addCommand = null; try { - deleteCommand = (DeleteCommand) ((List<Object>)invocation.getArguments()[0]).get(0); + deleteCommand = (DeleteCommand) ((List<Object>) invocation.getArguments()[0]).get(0); } catch (Exception e) { DebugTool.logInfo(TAG, "not DeleteCommands: " + e); } try { - addCommand = (AddCommand) ((List<Object>)invocation.getArguments()[0]).get(0); + addCommand = (AddCommand) ((List<Object>) invocation.getArguments()[0]).get(0); } catch (Exception e) { DebugTool.logInfo(TAG, "not AddCommands: " + e); } @@ -131,24 +131,24 @@ public class VoiceCommandUpdateOperationTests { if (deleteCommand != null) { DeleteCommandResponse badResponse = new DeleteCommandResponse(); badResponse.setSuccess(false); - List<DeleteCommand> deleteCommands = ((List<DeleteCommand>)invocation.getArguments()[0]); + List<DeleteCommand> deleteCommands = ((List<DeleteCommand>) invocation.getArguments()[0]); for (DeleteCommand command : deleteCommands) { badResponse.setCorrelationID(command.getCorrelationID()); - ((OnMultipleRequestListener)invocation.getArguments()[1]).onResponse(command.getCorrelationID(), badResponse); + ((OnMultipleRequestListener) invocation.getArguments()[1]).onResponse(command.getCorrelationID(), badResponse); } } else if (addCommand != null) { AddCommandResponse badResponse = new AddCommandResponse(); badResponse.setSuccess(false); - List<AddCommand> addCommands = ((List<AddCommand>)invocation.getArguments()[0]); + List<AddCommand> addCommands = ((List<AddCommand>) invocation.getArguments()[0]); for (AddCommand command : addCommands) { badResponse.setCorrelationID(command.getCorrelationID()); - ((OnMultipleRequestListener)invocation.getArguments()[1]).onResponse(command.getCorrelationID(), badResponse); + ((OnMultipleRequestListener) invocation.getArguments()[1]).onResponse(command.getCorrelationID(), badResponse); } } else { DebugTool.logInfo(TAG, "CallBacks failed"); return null; } - ((OnMultipleRequestListener)invocation.getArguments()[1]).onFinished(); + ((OnMultipleRequestListener) invocation.getArguments()[1]).onFinished(); return null; } }).when(internalInterface).sendRPCs(any(List.class), any(OnMultipleRequestListener.class)); @@ -181,13 +181,13 @@ public class VoiceCommandUpdateOperationTests { AddCommand addCommand = null; try { - deleteCommand = (DeleteCommand) ((List<Object>)invocation.getArguments()[0]).get(0); + deleteCommand = (DeleteCommand) ((List<Object>) invocation.getArguments()[0]).get(0); } catch (Exception e) { DebugTool.logInfo(TAG, "not DeleteCommands: " + e); } try { - addCommand = (AddCommand) ((List<Object>)invocation.getArguments()[0]).get(0); + addCommand = (AddCommand) ((List<Object>) invocation.getArguments()[0]).get(0); } catch (Exception e) { DebugTool.logInfo(TAG, "not AddCommands: " + e); } @@ -195,24 +195,24 @@ public class VoiceCommandUpdateOperationTests { if (deleteCommand != null) { DeleteCommandResponse successResponse = new DeleteCommandResponse(); successResponse.setSuccess(true); - List<DeleteCommand> deleteCommands = ((List<DeleteCommand>)invocation.getArguments()[0]); + List<DeleteCommand> deleteCommands = ((List<DeleteCommand>) invocation.getArguments()[0]); for (DeleteCommand command : deleteCommands) { successResponse.setCorrelationID(command.getCorrelationID()); - ((OnMultipleRequestListener)invocation.getArguments()[1]).onResponse(command.getCorrelationID(), successResponse); + ((OnMultipleRequestListener) invocation.getArguments()[1]).onResponse(command.getCorrelationID(), successResponse); } } else if (addCommand != null) { AddCommandResponse successResponse = new AddCommandResponse(); successResponse.setSuccess(true); - List<AddCommand> addCommands = ((List<AddCommand>)invocation.getArguments()[0]); + List<AddCommand> addCommands = ((List<AddCommand>) invocation.getArguments()[0]); for (AddCommand command : addCommands) { successResponse.setCorrelationID(command.getCorrelationID()); - ((OnMultipleRequestListener)invocation.getArguments()[1]).onResponse(command.getCorrelationID(), successResponse); + ((OnMultipleRequestListener) invocation.getArguments()[1]).onResponse(command.getCorrelationID(), successResponse); } } else { DebugTool.logInfo(TAG, "CallBacks failed"); return null; } - ((OnMultipleRequestListener)invocation.getArguments()[1]).onFinished(); + ((OnMultipleRequestListener) invocation.getArguments()[1]).onFinished(); return null; } }).when(internalInterface).sendRPCs(any(List.class), any(OnMultipleRequestListener.class)); @@ -245,13 +245,13 @@ public class VoiceCommandUpdateOperationTests { AddCommand addCommand = null; try { - deleteCommand = (DeleteCommand) ((List<Object>)invocation.getArguments()[0]).get(0); + deleteCommand = (DeleteCommand) ((List<Object>) invocation.getArguments()[0]).get(0); } catch (Exception e) { DebugTool.logInfo(TAG, "not DeleteCommands: " + e); } try { - addCommand = (AddCommand) ((List<Object>)invocation.getArguments()[0]).get(0); + addCommand = (AddCommand) ((List<Object>) invocation.getArguments()[0]).get(0); } catch (Exception e) { DebugTool.logInfo(TAG, "not AddCommands: " + e); } @@ -259,24 +259,24 @@ public class VoiceCommandUpdateOperationTests { if (deleteCommand != null) { DeleteCommandResponse successResponse = new DeleteCommandResponse(); successResponse.setSuccess(true); - List<DeleteCommand> deleteCommands = ((List<DeleteCommand>)invocation.getArguments()[0]); + List<DeleteCommand> deleteCommands = ((List<DeleteCommand>) invocation.getArguments()[0]); for (DeleteCommand command : deleteCommands) { successResponse.setCorrelationID(command.getCorrelationID()); - ((OnMultipleRequestListener)invocation.getArguments()[1]).onResponse(command.getCorrelationID(), successResponse); + ((OnMultipleRequestListener) invocation.getArguments()[1]).onResponse(command.getCorrelationID(), successResponse); } } else if (addCommand != null) { AddCommandResponse successResponse = new AddCommandResponse(); successResponse.setSuccess(true); - List<AddCommand> addCommands = ((List<AddCommand>)invocation.getArguments()[0]); + List<AddCommand> addCommands = ((List<AddCommand>) invocation.getArguments()[0]); for (AddCommand command : addCommands) { successResponse.setCorrelationID(command.getCorrelationID()); - ((OnMultipleRequestListener)invocation.getArguments()[1]).onResponse(command.getCorrelationID(), successResponse); + ((OnMultipleRequestListener) invocation.getArguments()[1]).onResponse(command.getCorrelationID(), successResponse); } } else { DebugTool.logInfo(TAG, "CallBacks failed"); return null; } - ((OnMultipleRequestListener)invocation.getArguments()[1]).onFinished(); + ((OnMultipleRequestListener) invocation.getArguments()[1]).onFinished(); return null; } }).when(internalInterface).sendRPCs(any(List.class), any(OnMultipleRequestListener.class)); @@ -298,7 +298,6 @@ public class VoiceCommandUpdateOperationTests { } - @Test public void testVoiceCommandsInListNotInSecondList() { VoiceCommand command1 = new VoiceCommand(Collections.singletonList("Command 1"), null); @@ -314,7 +313,7 @@ public class VoiceCommandUpdateOperationTests { List<VoiceCommand> voiceCommandList2 = new ArrayList<>(); voiceCommandList2.add(command1Clone); voiceCommandList2.add(command3); - VoiceCommandUpdateOperation voiceCommandUpdateOperation = new VoiceCommandUpdateOperation(internalInterface,null,null,null); + VoiceCommandUpdateOperation voiceCommandUpdateOperation = new VoiceCommandUpdateOperation(internalInterface, null, null, null); List<VoiceCommand> differencesList = voiceCommandUpdateOperation.voiceCommandsInListNotInSecondList(voiceCommandList, voiceCommandList2); assertEquals(differencesList.size(), 1); diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/TestValues.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/TestValues.java index da3bb5846..261d121a4 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/TestValues.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/TestValues.java @@ -1064,7 +1064,7 @@ public class TestValues { JSON_GENERAL_SEATS_OCCUPIED.put(JSON_OBJECT_GENERAL_SEATS_OCCUPIED); JSON_OBJECT_GENERAL_SEATS_BELTED.put(SeatStatus.KEY_SEAT_LOCATION, GENERAL_SEATLOCATION.serializeJSON()); - JSON_OBJECT_GENERAL_SEATS_BELTED.put(SeatStatus.KEY_CONDITION_ACTIVE,GENERAL_BOOLEAN); + JSON_OBJECT_GENERAL_SEATS_BELTED.put(SeatStatus.KEY_CONDITION_ACTIVE, GENERAL_BOOLEAN); JSON_GENERAL_SEATS_BELTED.put(JSON_OBJECT_GENERAL_SEATS_BELTED); JSON_HMIPERMISSIONS.put(HMIPermissions.KEY_ALLOWED, GENERAL_HMILEVEL_LIST); diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/Validator.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/Validator.java index 094b29794..235a9dfff 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/Validator.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/Validator.java @@ -2431,7 +2431,7 @@ public class Validator { log("validatePermissionItem", "Items are the same object. No defensive copy took place."); return false; } - */ + */ if (!item1.getRpcName().equals(item2.getRpcName())) { return false; } @@ -2509,7 +2509,7 @@ public class Validator { log("validateParameterPermissions", "Items are the same object. No defensive copy took place."); return false; } - */ + */ if (!validateStringList(item1.getAllowed(), item2.getAllowed())) { return false; } diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/protocol/SecurityQueryPayloadTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/protocol/SecurityQueryPayloadTests.java index 8c0c36041..c39e9bb42 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/protocol/SecurityQueryPayloadTests.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/protocol/SecurityQueryPayloadTests.java @@ -25,7 +25,7 @@ public class SecurityQueryPayloadTests { bqh.setQueryID(SecurityQueryID.SEND_HANDSHAKE_DATA); bqh.setQueryType(SecurityQueryType.REQUEST); bqh.setBulkData(null); - bqh.setJsonSize(0); + bqh.setJsonData(null); return bqh; } @@ -66,9 +66,9 @@ public class SecurityQueryPayloadTests { dummyBqh.setQueryType(SecurityQueryType.REQUEST); dummyBqh.setQueryID(SecurityQueryID.SEND_HANDSHAKE_DATA); dummyBqh.setCorrelationID(3); - dummyBqh.setJsonSize(0); + dummyBqh.setJsonData(new byte[0]); - byte[] assembledHeader = dummyBqh.assembleHeaderBytes(); + byte[] assembledHeader = dummyBqh.assembleBinaryData(); assertEquals(dummyBqh.getQueryType(), SecurityQueryType.valueOf(assembledHeader[0])); byte[] queryIDFromHeader = new byte[3]; System.arraycopy(assembledHeader, 1, queryIDFromHeader, 0, 3); @@ -81,7 +81,7 @@ public class SecurityQueryPayloadTests { public void testAssemblyAndParse() { SecurityQueryPayload bqh = createDummyBqh(); - byte[] bqhBytes = bqh.assembleHeaderBytes(); + byte[] bqhBytes = bqh.assembleBinaryData(); assertNotNull(bqhBytes); SecurityQueryPayload parsedBqh = SecurityQueryPayload.parseBinaryQueryHeader(bqhBytes); @@ -99,7 +99,7 @@ public class SecurityQueryPayloadTests { public void testCorruptHeader() { SecurityQueryPayload bqh = createDummyBqh(); - byte[] bqhBytes = bqh.assembleHeaderBytes(); + byte[] bqhBytes = bqh.assembleBinaryData(); assertNotNull(safeParse(bqhBytes)); @@ -114,13 +114,18 @@ public class SecurityQueryPayloadTests { } @Test - public void testJsonSetException() { - try { - SecurityQueryPayload bqh = createDummyBqh(); - bqh.setJsonData(null); - fail("Setting JSON data to null should have thrown an exception"); - } catch (Exception e) { - //Pass - } + public void testNullJsonData() { + SecurityQueryPayload bqh = createDummyBqh(); + bqh.setJsonData(null); + assertEquals(0, bqh.getJsonSize()); + assertEquals(null, bqh.getJsonData()); + } + + @Test + public void testNullBulkData() { + SecurityQueryPayload bqh = createDummyBqh(); + bqh.setBulkData(null); + assertEquals(0, bqh.getBulkDataSize()); + assertEquals(null, bqh.getBulkData()); } } diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/protocol/enums/SecurityQueryIDTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/protocol/enums/SecurityQueryIDTests.java index 4f73f8139..6e1ecf762 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/protocol/enums/SecurityQueryIDTests.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/protocol/enums/SecurityQueryIDTests.java @@ -39,7 +39,7 @@ public class SecurityQueryIDTests extends TestCase { assertNotNull("Send Handshake Data string match returned null", enumHandshakeData); assertNotNull("Send Internal Error string match returned null", enumInternalError); assertNotNull("Send Invalid QueryID string match returned null", enumInvalidSecurityQueryId); - } catch(NullPointerException exception) { + } catch (NullPointerException exception) { fail("Null enum list throws NullPointerException."); } } @@ -67,7 +67,7 @@ public class SecurityQueryIDTests extends TestCase { enumNull = (SecurityQueryID) SecurityQueryID.get(list, (byte[]) null); assertNull("Null lookup returns a null byte[] value", enumNull); - }catch (NullPointerException exception) { + } catch (NullPointerException exception) { fail("Null string throws NullPointerException."); } } diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/protocol/enums/SecurityQueryTypeTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/protocol/enums/SecurityQueryTypeTests.java index 6835da946..2567bbb18 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/protocol/enums/SecurityQueryTypeTests.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/protocol/enums/SecurityQueryTypeTests.java @@ -48,7 +48,7 @@ public class SecurityQueryTypeTests extends TestCase { assertNotNull("Invalid Query string byte match returned null", enumInvalidSecurityQueryType); - }catch (NullPointerException exception) { + } catch (NullPointerException exception) { fail("Null enum list throws NullPointerException."); } } diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/RPCGenericTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/RPCGenericTests.java index e4a61b9ed..2fa325419 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/RPCGenericTests.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/RPCGenericTests.java @@ -523,7 +523,7 @@ public class RPCGenericTests { assertTrue("The following RPCs don't have a constructor that has all the mandatory params: " + rpcsWithInvalidConstructor, rpcsWithInvalidConstructor.isEmpty()); } - private boolean annotationExists (AnnotatedElement element, String annotationName) { + private boolean annotationExists(AnnotatedElement element, String annotationName) { for (Annotation annotation : element.getDeclaredAnnotations()) { if (annotation.annotationType().getSimpleName().equalsIgnoreCase(annotationName)) { return true; @@ -532,7 +532,7 @@ public class RPCGenericTests { return false; } - private boolean isDeprecated (AnnotatedElement element) { + private boolean isDeprecated(AnnotatedElement element) { return annotationExists(element, "Deprecated"); } @@ -541,7 +541,7 @@ public class RPCGenericTests { for (Object anEnum : EnumSet.allOf(aClass)) { if (anEnum.toString().equals(elementName)) { try { - String value = ((Enum)anEnum).name(); + String value = ((Enum) anEnum).name(); field = aClass.getField(value); break; } catch (NoSuchFieldException e) { diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/AppCapabilityTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/AppCapabilityTests.java index 225dc393c..66099312e 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/AppCapabilityTests.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/AppCapabilityTests.java @@ -33,7 +33,7 @@ public class AppCapabilityTests extends TestCase { /** * Tests the expected values of the RPC message. */ - public void testRpcValues () { + public void testRpcValues() { // Test Values VideoStreamingCapability videoStreamingCapability = msg.getVideoStreamingCapability(); AppCapabilityType videoStreamingCapabilityType = msg.getAppCapabilityType(); @@ -50,10 +50,10 @@ public class AppCapabilityTests extends TestCase { assertNull(TestValues.NULL, msg.getVideoStreamingCapability()); } - public void testJson(){ + public void testJson() { JSONObject reference = new JSONObject(); - try{ + try { reference.put(KEY_APP_CAPABILITY_TYPE, TestValues.GENERAL_APPCAPABILITYTYPE); reference.put(KEY_VIDEO_STREAMING_CAPABILITY, TestValues.GENERAL_VIDEOSTREAMINGCAPABILITY); @@ -61,7 +61,7 @@ public class AppCapabilityTests extends TestCase { assertEquals(TestValues.MATCH, reference.length(), underTest.length()); Iterator<?> iterator = reference.keys(); - while(iterator.hasNext()){ + while (iterator.hasNext()) { String key = (String) iterator.next(); @@ -83,7 +83,7 @@ public class AppCapabilityTests extends TestCase { ); } } - } catch(JSONException e){ + } catch (JSONException e) { fail(TestValues.JSON_FAIL); } } diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/RoofStatusTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/RoofStatusTests.java index 4afc9d778..4c52ab7df 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/RoofStatusTests.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/RoofStatusTests.java @@ -54,13 +54,13 @@ public class RoofStatusTests extends TestCase { while (iterator.hasNext()) { String key = (String) iterator.next(); if (key.equals(RoofStatus.KEY_STATE)) { - Hashtable<String, Object> hs1 = JsonRPCMarshaller.deserializeJSONObject((JSONObject) JsonUtils.readObjectFromJsonObject(reference, key)); - Hashtable<String, Object> hs2 = JsonRPCMarshaller.deserializeJSONObject((JSONObject) JsonUtils.readObjectFromJsonObject(underTest, key)); + Hashtable<String, Object> hs1 = JsonRPCMarshaller.deserializeJSONObject((JSONObject) JsonUtils.readObjectFromJsonObject(reference, key)); + Hashtable<String, Object> hs2 = JsonRPCMarshaller.deserializeJSONObject((JSONObject) JsonUtils.readObjectFromJsonObject(underTest, key)); assertTrue(Validator.validateWindowStates(new WindowState(hs1), new WindowState(hs2))); } else if (key.equals(RoofStatus.KEY_LOCATION)) { - Hashtable<String, Object> hs1 = JsonRPCMarshaller.deserializeJSONObject((JSONObject) JsonUtils.readObjectFromJsonObject(reference, key)); - Hashtable<String, Object> hs2 = JsonRPCMarshaller.deserializeJSONObject((JSONObject) JsonUtils.readObjectFromJsonObject(underTest, key)); + Hashtable<String, Object> hs1 = JsonRPCMarshaller.deserializeJSONObject((JSONObject) JsonUtils.readObjectFromJsonObject(reference, key)); + Hashtable<String, Object> hs2 = JsonRPCMarshaller.deserializeJSONObject((JSONObject) JsonUtils.readObjectFromJsonObject(underTest, key)); assertTrue(Validator.validateGrid(new Grid(hs1), new Grid(hs2))); diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/VideoStreamingCapabilityTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/VideoStreamingCapabilityTests.java index c13199223..1bcb659a4 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/VideoStreamingCapabilityTests.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/VideoStreamingCapabilityTests.java @@ -35,7 +35,7 @@ public class VideoStreamingCapabilityTests extends TestCase { msg.setPixelPerInch(TestValues.GENERAL_DOUBLE); msg.setScale(TestValues.GENERAL_DOUBLE); msg.setAdditionalVideoStreamingCapabilities(TestValues.GENERAL_ADDITIONAL_CAPABILITY_LIST); - msg.setPreferredFPS(TestValues.GENERAL_INTEGER); + msg.setPreferredFPS(TestValues.GENERAL_INTEGER); } /** @@ -51,7 +51,7 @@ public class VideoStreamingCapabilityTests extends TestCase { Double pixelPerInch = msg.getPixelPerInch(); Double scale = msg.getScale(); List<VideoStreamingCapability> additionalVideoStreamingCapabilities = msg.getAdditionalVideoStreamingCapabilities(); - Integer preferredFPS = msg.getPreferredFPS(); + Integer preferredFPS = msg.getPreferredFPS(); // Valid Tests assertEquals(TestValues.MATCH, (List<VideoStreamingFormat>) TestValues.GENERAL_VIDEOSTREAMINGFORMAT_LIST, format); @@ -75,7 +75,7 @@ public class VideoStreamingCapabilityTests extends TestCase { assertNull(TestValues.NULL, msg.getPixelPerInch()); assertNull(TestValues.NULL, msg.getScale()); assertNull(TestValues.NULL, msg.getAdditionalVideoStreamingCapabilities()); - assertNull(TestValues.NULL, msg.getPreferredFPS()); + assertNull(TestValues.NULL, msg.getPreferredFPS()); } public void testJson() { @@ -90,7 +90,7 @@ public class VideoStreamingCapabilityTests extends TestCase { reference.put(VideoStreamingCapability.KEY_DIAGONAL_SCREEN_SIZE, TestValues.GENERAL_DOUBLE); reference.put(VideoStreamingCapability.KEY_PIXEL_PER_INCH, TestValues.GENERAL_DOUBLE); reference.put(VideoStreamingCapability.KEY_SCALE, TestValues.GENERAL_DOUBLE); - reference.put(VideoStreamingCapability.KEY_PREFERRED_FPS, TestValues.GENERAL_INTEGER); + reference.put(VideoStreamingCapability.KEY_PREFERRED_FPS, TestValues.GENERAL_INTEGER); JSONObject underTest = msg.serializeJSON(); assertEquals(TestValues.MATCH, reference.length(), underTest.length()); @@ -123,14 +123,14 @@ public class VideoStreamingCapabilityTests extends TestCase { } @Test - public void testFormatMethod(){ + public void testFormatMethod() { List<VideoStreamingCapability> additionalCapabilities = msg.getAdditionalVideoStreamingCapabilities(); msg.format(null, false); assertEquals(additionalCapabilities, msg.getAdditionalVideoStreamingCapabilities()); } @Test - public void testFormatWillRemoveSelf(){ + public void testFormatWillRemoveSelf() { List<VideoStreamingCapability> additionalCapabilities = msg.getAdditionalVideoStreamingCapabilities(); additionalCapabilities.add(msg); msg.format(null, false); diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/WindowCapabilityTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/WindowCapabilityTests.java index 0ad5e466d..756791a5a 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/WindowCapabilityTests.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/datatypes/WindowCapabilityTests.java @@ -220,7 +220,7 @@ public class WindowCapabilityTests extends TestCase { imageFieldNameListTest.add((ImageFieldName) underTestArray.get(i)); } assertTrue(TestValues.TRUE, imageFieldNameListReference.containsAll(imageFieldNameListTest) && imageFieldNameListTest.containsAll(imageFieldNameListReference)); - } else if (key.equals(WindowCapability.KEY_KEYBOARD_CAPABILITIES)){ + } else if (key.equals(WindowCapability.KEY_KEYBOARD_CAPABILITIES)) { JSONObject jsonReference = JsonUtils.readJsonObjectFromJsonObject(reference, key); JSONObject jsonUnderTest = JsonUtils.readJsonObjectFromJsonObject(underTest, key); diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/AppCapabilityTypeTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/AppCapabilityTypeTests.java index dd1f08080..22db62763 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/AppCapabilityTypeTests.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/enums/AppCapabilityTypeTests.java @@ -13,7 +13,7 @@ public class AppCapabilityTypeTests extends TestCase { /** * Verifies that the enum values are not null upon valid assignment. */ - public void testValidEnums () { + public void testValidEnums() { String example = "VIDEO_STREAMING"; AppCapabilityType enumVideoStreaming = AppCapabilityType.valueForString(example); @@ -23,7 +23,7 @@ public class AppCapabilityTypeTests extends TestCase { /** * Verifies that an invalid assignment is null. */ - public void testInvalidEnum () { + public void testInvalidEnum() { String example = "VidEOs_Treamin"; try { AppCapabilityType temp = AppCapabilityType.valueForString(example); @@ -37,7 +37,7 @@ public class AppCapabilityTypeTests extends TestCase { /** * Verifies that a null assignment is invalid. */ - public void testNullEnum () { + public void testNullEnum() { String example = null; try { AppCapabilityType temp = AppCapabilityType.valueForString(example); diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnAppCapabilityUpdatedTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnAppCapabilityUpdatedTests.java index eaca5122c..c9717bf97 100644 --- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnAppCapabilityUpdatedTests.java +++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/test/rpc/notifications/OnAppCapabilityUpdatedTests.java @@ -19,7 +19,7 @@ import static junit.framework.TestCase.fail; public class OnAppCapabilityUpdatedTests extends BaseRpcTests { @Override - protected RPCMessage createMessage(){ + protected RPCMessage createMessage() { OnAppCapabilityUpdated msg = new OnAppCapabilityUpdated(); msg.setAppCapability(TestValues.GENERAL_APPCAPABILITY); @@ -27,22 +27,22 @@ public class OnAppCapabilityUpdatedTests extends BaseRpcTests { } @Override - protected String getMessageType(){ + protected String getMessageType() { return RPCMessage.KEY_NOTIFICATION; } @Override - protected String getCommandType(){ + protected String getCommandType() { return FunctionID.ON_APP_CAPABILITY_UPDATED.toString(); } @Override - protected JSONObject getExpectedParameters(int sdlVersion){ + protected JSONObject getExpectedParameters(int sdlVersion) { JSONObject result = new JSONObject(); - try{ + try { result.put(OnAppCapabilityUpdated.KEY_APP_CAPABILITY, TestValues.GENERAL_APPCAPABILITY.serializeJSON()); - }catch(JSONException e){ + } catch (JSONException e) { fail(TestValues.JSON_FAIL); } @@ -53,9 +53,9 @@ public class OnAppCapabilityUpdatedTests extends BaseRpcTests { * Tests the expected values of the RPC message. */ @Test - public void testRpcValues () { + public void testRpcValues() { // Test Values - AppCapability appCapability = ( (OnAppCapabilityUpdated) msg ).getAppCapability(); + AppCapability appCapability = ((OnAppCapabilityUpdated) msg).getAppCapability(); // Valid Tests assertEquals(TestValues.MATCH, TestValues.GENERAL_APPCAPABILITY, appCapability); diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/encoder/VirtualDisplayEncoder.java b/android/sdl_android/src/main/java/com/smartdevicelink/encoder/VirtualDisplayEncoder.java index 3eba6af30..322ce0f23 100644 --- a/android/sdl_android/src/main/java/com/smartdevicelink/encoder/VirtualDisplayEncoder.java +++ b/android/sdl_android/src/main/java/com/smartdevicelink/encoder/VirtualDisplayEncoder.java @@ -228,9 +228,7 @@ public class VirtualDisplayEncoder { mCaptureThread.stopAsync(); try { mCaptureThread.join(); - } catch(InterruptedException e) { - - } + } catch (InterruptedException e) {} mCaptureThread = null; } if (encoderThread != null) { @@ -328,7 +326,7 @@ public class VirtualDisplayEncoder { mBlit = blit; mWidth = width; mHeight = height; - mFrameIntervalNsec = (long)(1000000000 / fps); + mFrameIntervalNsec = (long) (1000000000 / fps); mStartedCallback = onStarted; } diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManager.java index 866b6e80b..9fcb65b12 100644 --- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManager.java +++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManager.java @@ -91,6 +91,19 @@ public class SdlManager extends BaseSdlManager { private VideoStreamManager videoStreamManager; private AudioStreamManager audioStreamManager; + private Handler handler = new Handler(Looper.getMainLooper()); + private Runnable changeRegistrationRunnable = new Runnable() { + @Override + public void run() { + checkLifecycleConfiguration(); + DebugTool.logInfo(TAG, "Retry Change Registration Count: " + changeRegistrationRetry); + } + }; + + public SdlManager() { + DebugTool.logWarning(TAG, "SdlManager must be created with SdlManager.Builder"); + } + /** * Starts up a SdlManager, and calls provided callback called once all BaseSubManagers are done setting up */ @@ -211,14 +224,9 @@ public class SdlManager extends BaseSdlManager { void retryChangeRegistration() { changeRegistrationRetry++; if (changeRegistrationRetry < MAX_RETRY) { - final Handler handler = new Handler(Looper.getMainLooper()); - handler.postDelayed(new Runnable() { - @Override - public void run() { - checkLifecycleConfiguration(); - DebugTool.logInfo(TAG, "Retry Change Registration Count: " + changeRegistrationRetry); - } - }, 3000); + if (handler != null && changeRegistrationRunnable != null) { + handler.postDelayed(changeRegistrationRunnable, 3000); + } } } @@ -258,6 +266,15 @@ public class SdlManager extends BaseSdlManager { this.lifecycleManager.stop(); } + if (handler != null) { + if (changeRegistrationRunnable != null) { + handler.removeCallbacks(changeRegistrationRunnable); + changeRegistrationRunnable = null; + } + + handler = null; + } + if (managerListener != null) { managerListener.onDestroy(); managerListener = null; @@ -447,7 +464,7 @@ public class SdlManager extends BaseSdlManager { @Override public boolean removeOnRPCNotificationListener(FunctionID notificationId, OnRPCNotificationListener listener) { - return lifecycleManager.getInternalInterface(SdlManager.this).removeOnRPCNotificationListener(notificationId, listener); + return lifecycleManager.getInternalInterface(SdlManager.this).removeOnRPCNotificationListener(notificationId, listener); } @Override @@ -457,7 +474,7 @@ public class SdlManager extends BaseSdlManager { @Override public boolean removeOnRPCRequestListener(FunctionID functionID, OnRPCRequestListener listener) { - return lifecycleManager.getInternalInterface(SdlManager.this).removeOnRPCRequestListener(functionID, listener); + return lifecycleManager.getInternalInterface(SdlManager.this).removeOnRPCRequestListener(functionID, listener); } @Override @@ -467,29 +484,29 @@ public class SdlManager extends BaseSdlManager { @Override public boolean removeOnRPCListener(FunctionID responseId, OnRPCListener listener) { - return lifecycleManager.getInternalInterface(SdlManager.this).removeOnRPCListener(responseId, listener); + return lifecycleManager.getInternalInterface(SdlManager.this).removeOnRPCListener(responseId, listener); } @Override public RegisterAppInterfaceResponse getRegisterAppInterfaceResponse() { - return lifecycleManager.getInternalInterface(SdlManager.this).getRegisterAppInterfaceResponse(); + return lifecycleManager.getInternalInterface(SdlManager.this).getRegisterAppInterfaceResponse(); } @Override public boolean isTransportForServiceAvailable(SessionType serviceType) { - return lifecycleManager.getInternalInterface(SdlManager.this).isTransportForServiceAvailable(serviceType); + return lifecycleManager.getInternalInterface(SdlManager.this).isTransportForServiceAvailable(serviceType); } @NonNull @Override public SdlMsgVersion getSdlMsgVersion() { - return lifecycleManager.getInternalInterface(SdlManager.this).getSdlMsgVersion(); + return lifecycleManager.getInternalInterface(SdlManager.this).getSdlMsgVersion(); } @NonNull @Override public Version getProtocolVersion() { - return lifecycleManager.getInternalInterface(SdlManager.this).getProtocolVersion(); + return lifecycleManager.getInternalInterface(SdlManager.this).getProtocolVersion(); } @Override @@ -504,12 +521,12 @@ public class SdlManager extends BaseSdlManager { @Override public Taskmaster getTaskmaster() { - return lifecycleManager.getInternalInterface(SdlManager.this).getTaskmaster(); + return lifecycleManager.getInternalInterface(SdlManager.this).getTaskmaster(); } @Override public SystemCapabilityManager getSystemCapabilityManager() { - return lifecycleManager.getInternalInterface(SdlManager.this).getSystemCapabilityManager(); + return lifecycleManager.getInternalInterface(SdlManager.this).getSystemCapabilityManager(); } @Override diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleManager.java index 6d4fddb3d..21758d47e 100644 --- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleManager.java +++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleManager.java @@ -114,7 +114,7 @@ public class LifecycleManager extends BaseLifecycleManager { return; } - for (TransportRecord record: activeTransports) { + for (TransportRecord record : activeTransports) { if (record.getType() == TransportType.BLUETOOTH) { String address = record.getAddress(); if (address != null && !address.isEmpty()) { diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenManager.java index 97e8c8bca..3f6cfb4f3 100644 --- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenManager.java +++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/lockscreen/LockScreenManager.java @@ -205,7 +205,7 @@ public class LockScreenManager extends BaseSubManager { driverDistStatus = DriverDistractionState.DD_ON.equals(ddState.getState()); mLockscreenWarningMsg = ddState.getLockscreenWarningMessage(); boolean previousDismissibleState = isLockscreenDismissible; - if(ddState.getLockscreenDismissibility() != null ) { + if (ddState.getLockscreenDismissibility() != null) { isLockscreenDismissible = ddState.getLockscreenDismissibility(); } //If the param is null, we assume it stays as the previous value diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/video/VideoStreamManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/video/VideoStreamManager.java index cce131baa..dc91e65c2 100644 --- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/video/VideoStreamManager.java +++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/video/VideoStreamManager.java @@ -153,13 +153,13 @@ public class VideoStreamManager extends BaseVideoStreamManager { @Override public void onServiceEnded(SdlSession session, SessionType type) { if (SessionType.NAV.equals(type)) { - if (remoteDisplay !=null){ + if (remoteDisplay != null) { stopStreaming(withPendingRestart); } stateMachine.transitionToState(StreamingStateMachine.NONE); transitionToState(SETTING_UP); - if (withPendingRestart){ + if (withPendingRestart) { VideoStreamManager manager = VideoStreamManager.this; manager.internalInterface.startVideoService(manager.getLastCachedStreamingParameters(), manager.isEncrypted, withPendingRestart); } @@ -221,7 +221,7 @@ public class VideoStreamManager extends BaseVideoStreamManager { public void onCapabilityRetrieved(Object capability) { VideoStreamingParameters params = (parameters == null) ? new VideoStreamingParameters() : new VideoStreamingParameters(parameters); - VideoStreamingCapability castedCapability = ((VideoStreamingCapability)capability); + VideoStreamingCapability castedCapability = ((VideoStreamingCapability) capability); // means only scale received if (castedCapability.getPreferredResolution() == null && @@ -297,12 +297,12 @@ public class VideoStreamManager extends BaseVideoStreamManager { @Override public void onCapabilityRetrieved(Object capability) { VideoStreamingParameters params = new VideoStreamingParameters(); - VideoStreamingCapability castedCapability = ((VideoStreamingCapability)capability); + VideoStreamingCapability castedCapability = ((VideoStreamingCapability) capability); VideoStreamManager.this.originalCapability = castedCapability; params.update(castedCapability, vehicleMake);//Streaming parameters are ready time to stream VideoStreamManager.this.parameters = params; checkState(); - } + } @Override public void onError(String info) { @@ -351,12 +351,13 @@ public class VideoStreamManager extends BaseVideoStreamManager { */ public void startRemoteDisplayStream(Context context, Class<? extends SdlRemoteDisplay> remoteDisplayClass, VideoStreamingParameters parameters, final boolean encrypted, VideoStreamingRange supportedLandscapeStreamingRange, VideoStreamingRange supportedPortraitStreamingRange) { configureGlobalParameters(context, remoteDisplayClass, encrypted, supportedPortraitStreamingRange, supportedLandscapeStreamingRange); - if(majorProtocolVersion >= 5 && !internalInterface.getSystemCapabilityManager().isCapabilitySupported(SystemCapabilityType.VIDEO_STREAMING)){ + if (majorProtocolVersion >= 5 && !internalInterface.getSystemCapabilityManager().isCapabilitySupported(SystemCapabilityType.VIDEO_STREAMING)) { stateMachine.transitionToState(StreamingStateMachine.ERROR); return; } processCapabilitiesWithPendingStart(encrypted, parameters); } + /** * Starts streaming a remote display to the module if there is a connected session. This method of streaming requires the device to be on API level 19 or higher * @@ -368,7 +369,7 @@ public class VideoStreamManager extends BaseVideoStreamManager { * @param encrypted a flag of if the stream should be encrypted. Only set if you have a supplied encryption library that the module can understand. */ @Deprecated - public void startRemoteDisplayStream(Context context, Class<? extends SdlRemoteDisplay> remoteDisplayClass, VideoStreamingParameters parameters, final boolean encrypted){ + public void startRemoteDisplayStream(Context context, Class<? extends SdlRemoteDisplay> remoteDisplayClass, VideoStreamingParameters parameters, final boolean encrypted) { configureGlobalParameters(context, remoteDisplayClass, encrypted, null, null); boolean isCapabilitySupported = internalInterface.getSystemCapabilityManager() != null && internalInterface.getSystemCapabilityManager().isCapabilitySupported(SystemCapabilityType.VIDEO_STREAMING); if (majorProtocolVersion >= 5 && !isCapabilitySupported) { @@ -577,7 +578,7 @@ public class VideoStreamManager extends BaseVideoStreamManager { return (stateMachine.getState() == StreamingStateMachine.READY) || (stateMachine.getState() == StreamingStateMachine.STARTED) || (stateMachine.getState() == StreamingStateMachine.STOPPED); - } + } /** * Check if video is currently streaming and visible @@ -671,8 +672,8 @@ public class VideoStreamManager extends BaseVideoStreamManager { //A good time to refresh spatial data DisplayMetrics displayMetrics = new DisplayMetrics(); VideoStreamManager.this.remoteDisplay.getDisplay().getMetrics(displayMetrics); - displayMetrics.widthPixels = (int) (parameters.getResolution().getResolutionWidth() * parameters.getScale()); - displayMetrics.heightPixels = (int) (parameters.getResolution().getResolutionHeight() * parameters.getScale()); + displayMetrics.widthPixels = (int) (parameters.getResolution().getResolutionWidth() * parameters.getScale()); + displayMetrics.heightPixels = (int) (parameters.getResolution().getResolutionHeight() * parameters.getScale()); createTouchScalar(parameters.getResolution(), displayMetrics); if (hapticManager != null) { remoteDisplay.getMainView().post(new Runnable() { @@ -804,16 +805,16 @@ public class VideoStreamManager extends BaseVideoStreamManager { return parameters; } - private List<VideoStreamingCapability> getSupportedCapabilities(VideoStreamingCapability rootCapability){ + private List<VideoStreamingCapability> getSupportedCapabilities(VideoStreamingCapability rootCapability) { List<VideoStreamingCapability> validCapabilities = new ArrayList<>(); - if (rootCapability == null){ + if (rootCapability == null) { return null; } List<VideoStreamingCapability> allCapabilities = new ArrayList<>(); List<VideoStreamingCapability> additionalCapabilities = rootCapability.getAdditionalVideoStreamingCapabilities(); - if (additionalCapabilities != null){ + if (additionalCapabilities != null) { allCapabilities.addAll(additionalCapabilities); } rootCapability.setAdditionalVideoStreamingCapabilities(null); @@ -847,7 +848,7 @@ public class VideoStreamManager extends BaseVideoStreamManager { return validCapabilities; } - private Boolean inRange(VideoStreamingCapability capability, VideoStreamingRange range){ + private Boolean inRange(VideoStreamingCapability capability, VideoStreamingRange range) { if (capability == null) { return false; } @@ -855,7 +856,7 @@ public class VideoStreamManager extends BaseVideoStreamManager { return true; } - if (isZeroRange(range)){ + if (isZeroRange(range)) { return false; } @@ -868,7 +869,7 @@ public class VideoStreamManager extends BaseVideoStreamManager { ImageResolution resolution = capability.getPreferredResolution(); if (resolution != null) { Double currentAspectRatio = normalizeAspectRatio(resolution); - if (!range.isAspectRatioInRange(currentAspectRatio)){ + if (!range.isAspectRatioInRange(currentAspectRatio)) { return false; } } @@ -892,9 +893,9 @@ public class VideoStreamManager extends BaseVideoStreamManager { if (width <= 0.0 || height <= 0.0) { return 0.0; } else if (width < height) { - return height/width; + return height / width; } else if (width > height) { - return width/height; + return width / height; } else { return 1.0; } @@ -910,14 +911,14 @@ public class VideoStreamManager extends BaseVideoStreamManager { } } - private Boolean isZeroRange(VideoStreamingRange range){ - if (range == null || range.getMaximumResolution() == null || range.getMinimumResolution() == null){ + private Boolean isZeroRange(VideoStreamingRange range) { + if (range == null || range.getMaximumResolution() == null || range.getMinimumResolution() == null) { return false; } return isZeroResolution(range.getMaximumResolution()) && isZeroResolution(range.getMinimumResolution()); } - private boolean isZeroResolution(Resolution resolution){ + private boolean isZeroResolution(Resolution resolution) { if (resolution == null) { return false; } diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/video/resolution/VideoStreamingRange.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/video/resolution/VideoStreamingRange.java index f94220eef..cac0d62d9 100644 --- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/video/resolution/VideoStreamingRange.java +++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/video/resolution/VideoStreamingRange.java @@ -108,7 +108,7 @@ public class VideoStreamingRange { if (maximumAspectRatio == null && minimumAspectRatio == null) { return true; } - if (aspectRatio == null){ + if (aspectRatio == null) { return false; } diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexBluetoothTransport.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexBluetoothTransport.java index 31cea21c8..2eea57b98 100644 --- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexBluetoothTransport.java +++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/MultiplexBluetoothTransport.java @@ -117,7 +117,7 @@ public class MultiplexBluetoothTransport extends MultiplexBaseTransport { * A method to retrieve the currently connected bluetooth device * @return the connected bluetooth device if connected, null otherwise. */ - public BluetoothDevice getConnectedDevice(){ + public BluetoothDevice getConnectedDevice() { return connectedDevice; } diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlBroadcastReceiver.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlBroadcastReceiver.java index 15fee7227..c5ce98395 100644 --- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlBroadcastReceiver.java +++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlBroadcastReceiver.java @@ -313,7 +313,7 @@ public abstract class SdlBroadcastReceiver extends BroadcastReceiver { //If the device is not null the listener should start as well as the //case where this app was installed after BT connected and is the //only SDL app installed on the device. (Rare corner case) - if(device != null || sdlAppInfoList.size() == 1) { + if (device != null || sdlAppInfoList.size() == 1) { SdlDeviceListener sdlDeviceListener = getSdlDeviceListener(context, device); if (!sdlDeviceListener.isRunning()) { sdlDeviceListener.start(); diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java index cafd92eda..3404f4dd4 100644 --- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java +++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/SdlRouterService.java @@ -2002,7 +2002,7 @@ public class SdlRouterService extends Service { bluetoothTransport.setStateManually(MultiplexBluetoothTransport.STATE_NONE); bluetoothTransport = null; } - if (errorBundle != null && errorBundle.getByte(MultiplexBaseTransport.ERROR_REASON_KEY) == MultiplexBaseTransport.REASON_SPP_ERROR) { + if (errorBundle != null && errorBundle.getByte(MultiplexBaseTransport.ERROR_REASON_KEY) == MultiplexBaseTransport.REASON_SPP_ERROR && bluetoothAvailable()) { notifySppError(); } break; @@ -2803,8 +2803,8 @@ public class SdlRouterService extends Service { } /* **************************************************************************************************************************************** - // *********************************************************** LEGACY **************************************************************** - //*****************************************************************************************************************************************/ + // *********************************************************** LEGACY **************************************************************** + //*****************************************************************************************************************************************/ private boolean legacyModeEnabled = false; private void enableLegacyMode(boolean enable) { @@ -2821,9 +2821,9 @@ public class SdlRouterService extends Service { } - /* **************************************************************************************************************************************** - // *********************************************************** UTILITY **************************************************************** - //*****************************************************************************************************************************************/ + /* **************************************************************************************************************************************** + // *********************************************************** UTILITY **************************************************************** + //*****************************************************************************************************************************************/ private void debugPacket(byte[] bytes) { //DEBUG @@ -3005,9 +3005,9 @@ public class SdlRouterService extends Service { pingIntent = null; } - /* **************************************************************************************************************************************** - // ********************************************************** TINY CLASSES ************************************************************ - //*****************************************************************************************************************************************/ + /* **************************************************************************************************************************************** + // ********************************************************** TINY CLASSES ************************************************************ + //*****************************************************************************************************************************************/ /** * This class enables us to compare two router services @@ -3201,9 +3201,9 @@ public class SdlRouterService extends Service { return appId; } - /*public long getAppId() { - return appId; - }*/ + /*public long getAppId() { + return appId; + }*/ /** * This is a convenience variable and may not be used or useful in different protocols diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/transport/utl/SdlDeviceListener.java b/android/sdl_android/src/main/java/com/smartdevicelink/transport/utl/SdlDeviceListener.java index 41ada091d..bbb64717a 100644 --- a/android/sdl_android/src/main/java/com/smartdevicelink/transport/utl/SdlDeviceListener.java +++ b/android/sdl_android/src/main/java/com/smartdevicelink/transport/utl/SdlDeviceListener.java @@ -111,7 +111,7 @@ public class SdlDeviceListener { // set timeout = if first time seeing BT device, 30s, if not 15s int timeout = connectedDevice != null && isFirstStatusCheck(connectedDevice.getAddress()) ? 30000 : 15000; //Set our preference as false for this device for now - if(connectedDevice != null) { + if (connectedDevice != null) { setSDLConnectedStatus(contextWeakReference.get(), connectedDevice.getAddress(), false); } bluetoothHandler = new TransportHandler(this); @@ -190,7 +190,7 @@ public class SdlDeviceListener { */ public void sendStartService() { SdlDeviceListener sdlListener = this.provider.get(); - SdlPacket serviceProbe = SdlPacketFactory.createStartSession(SessionType.RPC, 0x00, (byte)0x01, (byte)0x00, false); + SdlPacket serviceProbe = SdlPacketFactory.createStartSession(SessionType.RPC, 0x00, (byte) 0x01, (byte) 0x00, false); serviceProbe.putTag(ControlFrameTags.RPC.StartService.PROTOCOL_VERSION, MAX_PROTOCOL_VERSION.toString()); byte[] constructed = serviceProbe.constructPacket(); if (sdlListener.bluetoothTransport != null && sdlListener.bluetoothTransport.getState() == MultiplexBluetoothTransport.STATE_CONNECTED) { @@ -216,7 +216,7 @@ public class SdlDeviceListener { } else { hashID = BitConverter.intFromByteArray(packet.getPayload(), 0); } - byte[] stopService = SdlPacketFactory.createEndSession(SessionType.RPC, (byte)packet.getSessionId(), 0, (byte)packet.getVersion(), hashID).constructPacket(); + byte[] stopService = SdlPacketFactory.createEndSession(SessionType.RPC, (byte) packet.getSessionId(), 0, (byte) packet.getVersion(), hashID).constructPacket(); if (sdlListener.bluetoothTransport != null && sdlListener.bluetoothTransport.getState() == MultiplexBluetoothTransport.STATE_CONNECTED) { sdlListener.bluetoothTransport.write(stopService, 0, stopService.length); } diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/util/AndroidTools.java b/android/sdl_android/src/main/java/com/smartdevicelink/util/AndroidTools.java index 0b9125352..b99958fae 100644 --- a/android/sdl_android/src/main/java/com/smartdevicelink/util/AndroidTools.java +++ b/android/sdl_android/src/main/java/com/smartdevicelink/util/AndroidTools.java @@ -392,10 +392,10 @@ public class AndroidTools { XmlResourceParser parser = resources.getXml(xmlFieldId); return SdlAppInfo.deserializeSupportedVehicles(parser); } catch (PackageManager.NameNotFoundException e) { - DebugTool.logError(TAG, "Failed to get OEM vehicle data filter: " + e.getMessage()+ " - assume vehicle data is supported"); + DebugTool.logError(TAG, "Failed to get OEM vehicle data filter: " + e.getMessage() + " - assume vehicle data is supported"); return null; } catch (Resources.NotFoundException ex) { - DebugTool.logError(TAG, "Failed to find resource: " + ex.getMessage()+ " - assume vehicle data is supported"); + DebugTool.logError(TAG, "Failed to find resource: " + ex.getMessage() + " - assume vehicle data is supported"); return null; } } diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/util/SdlAppInfo.java b/android/sdl_android/src/main/java/com/smartdevicelink/util/SdlAppInfo.java index 7d5ade055..bfdec946e 100644 --- a/android/sdl_android/src/main/java/com/smartdevicelink/util/SdlAppInfo.java +++ b/android/sdl_android/src/main/java/com/smartdevicelink/util/SdlAppInfo.java @@ -136,7 +136,7 @@ public class SdlAppInfo { if (!contextPackageName.equals(packageName)) { try { Context appContext = context.createPackageContext(packageName, 0); - if (appContext == null){ + if (appContext == null) { DebugTool.logError(TAG, "Failed to create context with the given package name"); return; } @@ -240,7 +240,7 @@ public class SdlAppInfo { if (model == null && modelYear == null && trim == null) { vehicleMakesList.add(vehicleMake); - } else if (model != null){ + } else if (model != null) { vehicleMake.setModel(model); if (modelYear != null) { vehicleMake.setModelYear(modelYear); @@ -271,13 +271,13 @@ public class SdlAppInfo { * @return true if vehicle type is supported. */ public static boolean checkIfVehicleSupported(List<VehicleType> supportedVehicleList, VehicleType connectedVehicle) { - if (supportedVehicleList == null || supportedVehicleList.isEmpty() || connectedVehicle == null || connectedVehicle.getStore() == null|| connectedVehicle.getStore().isEmpty()) { + if (supportedVehicleList == null || supportedVehicleList.isEmpty() || connectedVehicle == null || connectedVehicle.getStore() == null || connectedVehicle.getStore().isEmpty()) { return true; } if (supportedVehicleList.contains(connectedVehicle)) { return true; } - for (VehicleType supportedVehicle: supportedVehicleList) { + for (VehicleType supportedVehicle : supportedVehicleList) { boolean areVehicleMakesEqual = CompareUtils.areStringsEqual(supportedVehicle.getMake(), connectedVehicle.getMake(), true, false); if (areVehicleMakesEqual) { String supportedVehicleModel = supportedVehicle.getModel(); |