Skip to content

Commit 0bda034

Browse files
Merge pull request #1747 from smartdevicelink/release/5.3.0_RC
Release/5.3.0
2 parents c3553b7 + 7ccf3c2 commit 0bda034

File tree

104 files changed

+6972
-3893
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

104 files changed

+6972
-3893
lines changed

CHANGELOG.md

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,51 @@
1-
# 5.2.0 Release Notes
1+
# 5.3.0 Release Notes
22

33
## Summary:
44
||Version|
55
|--|--|
6-
| **Protocol** | 5.4.0
7-
| **RPC** | 7.1.0
6+
| **Protocol** | 5.4.1
7+
| **RPC** | 8.0.0
88
| **Tested Targeting** | Android 30
99

1010

11-
## Bug Fixes / Enhancements:
12-
13-
- [MenuManager sending secondary image with menuCells when menuCommandSecondaryImage is not supported.](https://github.com/smartdevicelink/sdl_java_suite/issues/1688)
11+
## Features:
1412

15-
- [IllegalArgumentException when starting video stream with custom RPC MTU](https://github.com/smartdevicelink/sdl_java_suite/issues/1667)
13+
- [[SDL 0293] Enable OEM exclusive apps support](https://github.com/smartdevicelink/sdl_java_suite/issues/1588)
1614

17-
- [Send voiceCommand with duplicate strings](https://github.com/smartdevicelink/sdl_java_suite/issues/1664)
18-
19-
- [Two voiceCommands contains the same string](https://github.com/smartdevicelink/sdl_java_suite/issues/1677)
15+
## Bug Fixes / Enhancements:
2016

21-
- [java.lang.NegativeArraySizeException Crash at SdlPsm.java line 241 com.smartdevicelink.transport.SdlPsm.transitionOnInput](https://github.com/smartdevicelink/sdl_java_suite/issues/1678)
17+
- [New TaskMaster release needs to be added to Java Suite Library ](https://github.com/smartdevicelink/sdl_java_suite/issues/1745)
2218

23-
- [Exception handling variances](https://github.com/smartdevicelink/sdl_java_suite/issues/1687)
19+
- [File Manager will upload the same file multiple times](https://github.com/smartdevicelink/sdl_java_suite/issues/1736)
2420

25-
- [Allow SdlDeviceListener to start after BT connection](https://github.com/smartdevicelink/sdl_java_suite/pull/1685)
21+
- [Fix description for `SeatControlCapabilities` and `RadioControlCapabilities`](https://github.com/smartdevicelink/sdl_java_suite/issues/1739)
2622

27-
- [voiceCommand that contains no string should be removed](https://github.com/smartdevicelink/sdl_java_suite/issues/1675)
23+
- [AudioStreamManager and AlertManager have the same queue ID](https://github.com/smartdevicelink/sdl_java_suite/issues/1742)
2824

29-
- [Image returned as "not uploaded" in certain circumstances when it's already uploaded, leading to the image being unusable](https://github.com/smartdevicelink/sdl_java_suite/issues/1692)
25+
- [java.lang.IndexOutOfBoundsException Crash: SdlRouterService.java line 3275 ](https://github.com/smartdevicelink/sdl_java_suite/issues/1741)
3026

31-
- [Primary Graphic not sent to SDL Core for Media Template ](https://github.com/smartdevicelink/sdl_java_suite/issues/1690)
27+
- [Old devices with SDL 2.0 can't display text fields and SoftButtons](https://github.com/smartdevicelink/sdl_java_suite/issues/1729)
3228

33-
- [Race condition leads to NPE in TransportManager](https://github.com/smartdevicelink/sdl_java_suite/issues/1703)
29+
- [Swapping de-duplicated menu items causes incorrect unique titles](https://github.com/smartdevicelink/sdl_java_suite/issues/1723)
3430

35-
- [Avoid deleting and setting identical voice commands](https://github.com/smartdevicelink/sdl_java_suite/issues/1676)
31+
- [MenuCell title update issue](https://github.com/smartdevicelink/sdl_java_suite/issues/1651)
3632

37-
- [Sdl disconnection is not notified to the app](https://github.com/smartdevicelink/sdl_java_suite/issues/1697)
33+
- [Refactor the Menu Manager to Use Queues ](https://github.com/smartdevicelink/sdl_java_suite/issues/1605)
3834

39-
- [PredefinedLayout.NON_MEDIA not found in templatesAvailable](https://github.com/smartdevicelink/sdl_java_suite/issues/1705)
35+
- [Security queries are not implemented to spec](https://github.com/smartdevicelink/sdl_java_suite/issues/1720)
4036

41-
- [Lockscreen should show again after dismissal if a DD notification is received where DismissalEnabled is false](https://github.com/smartdevicelink/sdl_java_suite/issues/1695)
37+
- [Choice Set Present followed directly by a Delete can have undefined behavior](https://github.com/smartdevicelink/sdl_java_suite/issues/1718)
4238

43-
- [Choice Cells and Menu Cells do not take which properties are available into account for uniqueness](https://github.com/smartdevicelink/sdl_java_suite/issues/1682)
39+
- [Back-to-back choice sets can fail](https://github.com/smartdevicelink/sdl_java_suite/issues/1717)
4440

45-
- [BSON library should be updated to the latest version (1.2.5)](https://github.com/smartdevicelink/sdl_java_suite/issues/1712)
41+
- [Github CI fails even though tests pass locally ](https://github.com/smartdevicelink/sdl_java_suite/issues/1731)
4642

43+
- [Handler instances using deprecated constructors ](https://github.com/smartdevicelink/sdl_java_suite/issues/1696)
4744

45+
- [[SDL 0236] Update mismatch in TireStatus structure](https://github.com/smartdevicelink/sdl_java_suite/issues/1089)
4846

47+
- [Choices not saved as preloaded if some choices fail](https://github.com/smartdevicelink/sdl_java_suite/issues/1715)
4948

49+
- [MenuManager should print warning when trying to send AddSubMenu with voice commands](https://github.com/smartdevicelink/sdl_java_suite/issues/1760)
5050

51+
- [Spelling/ Grammar Updates](https://github.com/smartdevicelink/sdl_java_suite/issues/1754)

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
5.2.0
1+
5.3.0

android/sdl_android/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ android {
55
defaultConfig {
66
minSdkVersion 16
77
targetSdkVersion 30
8-
versionCode 20
8+
versionCode 21
99
versionName new File(projectDir.path, ('/../../VERSION')).text.trim()
1010
buildConfigField "String", "VERSION_NAME", '\"' + versionName + '\"'
1111
resValue "string", "SDL_LIB_VERSION", '\"' + versionName + '\"'
@@ -42,7 +42,7 @@ android {
4242

4343
dependencies {
4444
api fileTree(dir: 'libs', include: ['*.jar'])
45-
//api 'com.livio.taskmaster:taskmaster:0.4.0'
45+
//api 'com.livio.taskmaster:taskmaster:0.6.0'
4646
api 'com.smartdevicelink:bson_java_port:1.2.5'
4747
api 'androidx.lifecycle:lifecycle-extensions:2.2.0'
4848
api 'androidx.annotation:annotation:1.1.0'

android/sdl_android/gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
GROUP=com.smartdevicelink
22
POM_ARTIFACT_ID=sdl_android
3-
VERSION_NAME=5.2.0
3+
VERSION_NAME=5.3.0
44

55
POM_NAME=sdl_android
66
POM_PACKAGING=aar
-17.2 KB
Binary file not shown.
17.2 KB
Binary file not shown.

android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/file/FileManagerTests.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -850,6 +850,42 @@ public void run() {
850850
});
851851
}
852852

853+
/**
854+
* Tests to make sure files are not being uploaded to head unit multiple times in a row
855+
*/
856+
@Test
857+
public void testFileNotOnHmi() {
858+
final ISdl internalInterface = createISdlMock();
859+
860+
doAnswer(onListFilesSuccess).when(internalInterface).sendRPC(any(ListFiles.class));
861+
doAnswer(onPutFileSuccess).when(internalInterface).sendRPC(any(PutFile.class));
862+
863+
final SdlArtwork validFile2 = new SdlArtwork(TestValues.GENERAL_STRING + "2", FileType.GRAPHIC_JPEG, TestValues.GENERAL_STRING.getBytes(), false);
864+
865+
final List<SdlArtwork> list = Arrays.asList(validFile2, validFile2);
866+
867+
FileManagerConfig fileManagerConfig = new FileManagerConfig();
868+
869+
final FileManager fileManager = new FileManager(internalInterface, mTestContext, fileManagerConfig);
870+
fileManager.start(new CompletionListener() {
871+
@Override
872+
public void onComplete(boolean success) {
873+
fileManager.uploadArtworks(list, new MultipleFileCompletionListener() {
874+
@Override
875+
public void onComplete(final Map<String, String> errors) {
876+
assertOnMainThread(new Runnable() {
877+
@Override
878+
public void run() {
879+
verify(internalInterface, times(1)).sendRPC(any(PutFile.class));
880+
}
881+
});
882+
}
883+
});
884+
}
885+
});
886+
}
887+
888+
853889
/**
854890
* Test custom overridden SdlFile equals method
855891
*/

android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/file/filetypes/SdlArtworkTests.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ public void testClone() {
3737
}
3838

3939
public static boolean equalTest(SdlArtwork original, SdlArtwork clone) {
40+
if (original == null && clone == null) {
41+
return true;
42+
}
4043

4144
assertNotNull(original);
4245
assertNotNull(clone);

android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/lifecycle/SystemCapabilityManagerTests.java

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import com.smartdevicelink.proxy.rpc.SetDisplayLayoutResponse;
3333
import com.smartdevicelink.proxy.rpc.SoftButtonCapabilities;
3434
import com.smartdevicelink.proxy.rpc.SystemCapability;
35+
import com.smartdevicelink.proxy.rpc.TextField;
3536
import com.smartdevicelink.proxy.rpc.VideoStreamingCapability;
3637
import com.smartdevicelink.proxy.rpc.WindowCapability;
3738
import com.smartdevicelink.proxy.rpc.WindowTypeCapabilities;
@@ -52,6 +53,7 @@
5253
import com.smartdevicelink.proxy.rpc.enums.SpeechCapabilities;
5354
import com.smartdevicelink.proxy.rpc.enums.SystemCapabilityType;
5455
import com.smartdevicelink.proxy.rpc.enums.SystemContext;
56+
import com.smartdevicelink.proxy.rpc.enums.TextFieldName;
5557
import com.smartdevicelink.proxy.rpc.enums.WindowType;
5658
import com.smartdevicelink.proxy.rpc.listeners.OnMultipleRequestListener;
5759
import com.smartdevicelink.proxy.rpc.listeners.OnRPCListener;
@@ -689,6 +691,35 @@ public void testGetAndAddListenerForDisplaysCapability() {
689691
verify(internalInterface, times(0)).sendRPC(any(GetSystemCapability.class));
690692
}
691693

694+
/**
695+
* Test to verify that we can get null for templatesAvailable without hitting an NPE and
696+
* test media field conversion for NON_MEDIA to NON-MEDIA for Sync bug.
697+
*/
698+
@Test
699+
public void testMediaFieldConversion() {
700+
SystemCapabilityManager systemCapabilityManager = new SystemCapabilityManager(new InternalSDLInterface());
701+
702+
RegisterAppInterfaceResponse raiResponse = new RegisterAppInterfaceResponse();
703+
DisplayCapabilities displayCapabilities = new DisplayCapabilities();
704+
displayCapabilities.setGraphicSupported(false);
705+
TextField textField = new TextField();
706+
textField.setName(TextFieldName.mainField1);
707+
displayCapabilities.setTextFields(Collections.singletonList(textField));
708+
raiResponse.setDisplayCapabilities(displayCapabilities);
709+
raiResponse.setSuccess(true);
710+
systemCapabilityManager.parseRAIResponse(raiResponse);
711+
712+
WindowCapability windowCapability = systemCapabilityManager.getDefaultMainWindowCapability();
713+
assertNull(windowCapability.getTemplatesAvailable());
714+
715+
List<String> templates = new ArrayList<>();
716+
templates.add("NON_MEDIA");
717+
displayCapabilities.setTemplatesAvailable(templates);
718+
systemCapabilityManager.parseRAIResponse(raiResponse);
719+
windowCapability = systemCapabilityManager.getDefaultMainWindowCapability();
720+
assertTrue(windowCapability.getTemplatesAvailable().contains("NON-MEDIA"));
721+
}
722+
692723
@Test
693724
public void testListConversion() {
694725
SystemCapabilityManager systemCapabilityManager = createSampleManager();

android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/ScreenManagerTests.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,15 @@ public void testInstantiation() {
6868
assertNull(screenManager.getTextField2Type());
6969
assertNull(screenManager.getTextField3Type());
7070
assertNull(screenManager.getTextField4Type());
71-
assertNull(screenManager.getMenu());
71+
assertTrue(screenManager.getMenu().isEmpty());
7272
assertNull(screenManager.getVoiceCommands());
7373
assertTrue(screenManager.getSoftButtonObjects().isEmpty());
7474
assertNull(screenManager.getSoftButtonObjectByName("test"));
7575
assertNull(screenManager.getSoftButtonObjectById(1));
7676
assertEquals(screenManager.getDynamicMenuUpdatesMode(), DynamicMenuUpdatesMode.ON_WITH_COMPAT_MODE);
7777
assertEquals(screenManager.getState(), BaseSubManager.READY);
78-
assertNull(screenManager.getMenuConfiguration());
78+
assertNull(screenManager.getMenuConfiguration().getMenuLayout());
79+
assertNull(screenManager.getMenuConfiguration().getSubMenuLayout());
7980
}
8081

8182
@Test
@@ -147,10 +148,9 @@ public void testSetMenuManagerFields() {
147148
screenManager.setMenu(TestValues.GENERAL_MENUCELL_LIST);
148149
screenManager.setMenuConfiguration(TestValues.GENERAL_MENU_CONFIGURATION);
149150

150-
assertEquals(screenManager.getMenu(), TestValues.GENERAL_MENUCELL_LIST);
151151
assertEquals(screenManager.getDynamicMenuUpdatesMode(), DynamicMenuUpdatesMode.FORCE_ON);
152-
// Should not set because of improper RAI response and improper HMI states
153-
assertNull(screenManager.getMenuConfiguration());
152+
assertEquals(screenManager.getMenu(), TestValues.GENERAL_MENUCELL_LIST);
153+
assertEquals(screenManager.getMenuConfiguration(), TestValues.GENERAL_MENU_CONFIGURATION);
154154
}
155155

156156
@Test

android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/TextAndGraphicManagerTests.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -275,6 +275,7 @@ public void testDispose() {
275275

276276
@Test
277277
public void testOperationManagement() {
278+
textAndGraphicManager.transactionQueue.pause();
278279
textAndGraphicManager.isDirty = true;
279280
textAndGraphicManager.updateOperation = null;
280281
textAndGraphicManager.update(null);

android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/screen/choiceset/ChoiceCellTests.java

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public void testSettersAndGetters() {
6161
choiceCell.setVoiceCommands(TestValues.GENERAL_STRING_LIST);
6262
choiceCell.setArtwork(artwork);
6363
choiceCell.setSecondaryArtwork(artwork);
64-
choiceCell.setUniqueText(TestValues.GENERAL_STRING);
64+
choiceCell.setUniqueTextId(TestValues.GENERAL_INT);
6565

6666
// use getters and assert equality
6767
assertEquals(choiceCell.getText(), TestValues.GENERAL_STRING);
@@ -71,7 +71,7 @@ public void testSettersAndGetters() {
7171
assertEquals(choiceCell.getArtwork(), artwork);
7272
assertEquals(choiceCell.getSecondaryArtwork(), artwork);
7373
assertEquals(choiceCell.getChoiceId(), MAX_ID);
74-
assertEquals(choiceCell.getUniqueText(), TestValues.GENERAL_STRING);
74+
assertEquals(choiceCell.getUniqueTextId(), TestValues.GENERAL_INTEGER);
7575
}
7676

7777
@Test
@@ -121,14 +121,27 @@ public void testCellEquality() {
121121
choiceCell3.setSecondaryText(TestValues.GENERAL_STRING);
122122
choiceCell3.setTertiaryText(TestValues.GENERAL_STRING);
123123

124-
//UniqueText should not be taken into consideration when checking equality
125-
choiceCell.setUniqueText(TestValues.GENERAL_STRING);
126-
choiceCell2.setUniqueText(TestValues.GENERAL_STRING);
127-
choiceCell3.setUniqueText(TestValues.GENERAL_STRING);
128-
129124
// Make sure our overridden method works, even though these are different objects in memory
130125
assertTrue(choiceCell.equals(choiceCell2));
131126
assertFalse(choiceCell.equals(choiceCell3));
132127

133128
}
129+
130+
@Test
131+
public void testGetUniqueCellText() {
132+
ChoiceCell choiceCell = new ChoiceCell("Test");
133+
ChoiceCell choiceCell2 = new ChoiceCell("Test");
134+
choiceCell2.setUniqueTextId(2);
135+
ChoiceCell choiceCell3 = new ChoiceCell("Test");
136+
choiceCell3.setUniqueTextId(3);
137+
138+
assertEquals((int) choiceCell.getUniqueTextId(), 1);
139+
assertEquals(choiceCell.getUniqueText(), "Test");
140+
141+
assertEquals((int) choiceCell2.getUniqueTextId(), 2);
142+
assertEquals(choiceCell2.getUniqueText(), "Test (2)");
143+
144+
assertEquals((int) choiceCell3.getUniqueTextId(), 3);
145+
assertEquals(choiceCell3.getUniqueText(), "Test (3)");
146+
}
134147
}

0 commit comments

Comments
 (0)