Skip to content

Commit 0d735b1

Browse files
Update ChoiceSetManager capability handling
1 parent c744b2d commit 0d735b1

3 files changed

Lines changed: 38 additions & 68 deletions

File tree

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ public void setUp() throws Exception{
9393

9494
ISdl internalInterface = mock(ISdl.class);
9595
FileManager fileManager = mock(FileManager.class);
96-
preloadChoicesOperation = new PreloadChoicesOperation(internalInterface, fileManager, windowCapability, true, cellsToPreload, null);
96+
preloadChoicesOperation = new PreloadChoicesOperation(internalInterface, fileManager, null,windowCapability, true, cellsToPreload, null);
9797
}
9898

9999
/**
@@ -109,7 +109,7 @@ public void setUpNullWindowCapability() {
109109

110110
ISdl internalInterface = mock(ISdl.class);
111111
FileManager fileManager = mock(FileManager.class);
112-
preloadChoicesOperationNullCapability = new PreloadChoicesOperation(internalInterface, fileManager, null, true, cellsToPreload, null);
112+
preloadChoicesOperationNullCapability = new PreloadChoicesOperation(internalInterface, fileManager, null, null, true, cellsToPreload, null);
113113
}
114114

115115
/**
@@ -136,7 +136,7 @@ public void setUpEmptyWindowCapability() {
136136

137137
ISdl internalInterface = mock(ISdl.class);
138138
FileManager fileManager = mock(FileManager.class);
139-
preloadChoicesOperationEmptyCapability = new PreloadChoicesOperation(internalInterface, fileManager, windowCapability, true, cellsToPreload, null);
139+
preloadChoicesOperationEmptyCapability = new PreloadChoicesOperation(internalInterface, fileManager, null, windowCapability, true, cellsToPreload, null);
140140
}
141141

142142

base/src/main/java/com/smartdevicelink/managers/screen/choiceset/BaseChoiceSetManager.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ abstract class BaseChoiceSetManager extends BaseSubManager {
8484
OnSystemCapabilityListener onDisplayCapabilityListener;
8585
HMILevel currentHMILevel;
8686
WindowCapability defaultMainWindowCapability;
87+
String displayName;
8788
SystemContext currentSystemContext;
8889
HashSet<ChoiceCell> preloadedChoices, pendingPreloadChoices;
8990
ChoiceSet pendingPresentationSet;
@@ -208,7 +209,7 @@ public void preloadChoices(@NonNull List<ChoiceCell> choices, @Nullable final Co
208209
pendingPreloadChoices.addAll(choicesToUpload);
209210

210211
if (fileManager.get() != null) {
211-
PreloadChoicesOperation preloadChoicesOperation = new PreloadChoicesOperation(internalInterface, fileManager.get(), defaultMainWindowCapability, isVROptional, choicesToUpload, new CompletionListener() {
212+
PreloadChoicesOperation preloadChoicesOperation = new PreloadChoicesOperation(internalInterface, fileManager.get(), displayName, defaultMainWindowCapability, isVROptional, choicesToUpload, new CompletionListener() {
212213
@Override
213214
public void onComplete(boolean success) {
214215
if (success){
@@ -520,6 +521,7 @@ public void onCapabilityRetrieved(Object capability) {
520521
DebugTool.logError("SoftButton Manager - Capabilities sent here are null or empty");
521522
}else {
522523
DisplayCapability display = capabilities.get(0);
524+
displayName = display.getDisplayName();
523525
for (WindowCapability windowCapability : display.getWindowCapabilities()) {
524526
int currentWindowID = windowCapability.getWindowID() != null ? windowCapability.getWindowID() : PredefinedWindows.DEFAULT_WINDOW.getValue();
525527
if (currentWindowID == PredefinedWindows.DEFAULT_WINDOW.getValue()) {

base/src/main/java/com/smartdevicelink/managers/screen/choiceset/PreloadChoicesOperation.java

Lines changed: 32 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import android.support.annotation.NonNull;
3939

4040
import com.smartdevicelink.managers.CompletionListener;
41+
import com.smartdevicelink.managers.ManagerUtility;
4142
import com.smartdevicelink.managers.file.FileManager;
4243
import com.smartdevicelink.managers.file.MultipleFileCompletionListener;
4344
import com.smartdevicelink.managers.file.filetypes.SdlArtwork;
@@ -46,10 +47,8 @@
4647
import com.smartdevicelink.proxy.rpc.Choice;
4748
import com.smartdevicelink.proxy.rpc.CreateInteractionChoiceSet;
4849
import com.smartdevicelink.proxy.rpc.Image;
49-
import com.smartdevicelink.proxy.rpc.ImageField;
50-
import com.smartdevicelink.managers.ManagerUtility;
51-
import com.smartdevicelink.proxy.rpc.TextField;
5250
import com.smartdevicelink.proxy.rpc.WindowCapability;
51+
import com.smartdevicelink.proxy.rpc.enums.DisplayType;
5352
import com.smartdevicelink.proxy.rpc.enums.ImageFieldName;
5453
import com.smartdevicelink.proxy.rpc.enums.Result;
5554
import com.smartdevicelink.proxy.rpc.enums.TextFieldName;
@@ -68,16 +67,18 @@ class PreloadChoicesOperation extends AsynchronousOperation {
6867
private WeakReference<ISdl> internalInterface;
6968
private WeakReference<FileManager> fileManager;
7069
private WindowCapability defaultMainWindowCapability;
70+
private String displayName;
7171
private HashSet<ChoiceCell> cellsToUpload;
7272
private CompletionListener completionListener;
7373
private boolean isRunning;
7474
private boolean isVROptional;
7575

76-
PreloadChoicesOperation(ISdl internalInterface, FileManager fileManager, WindowCapability defaultMainWindowCapability,
76+
PreloadChoicesOperation(ISdl internalInterface, FileManager fileManager, String displayName, WindowCapability defaultMainWindowCapability,
7777
Boolean isVROptional, HashSet<ChoiceCell> cellsToPreload, CompletionListener listener){
7878
super();
7979
this.internalInterface = new WeakReference<>(internalInterface);
8080
this.fileManager = new WeakReference<>(fileManager);
81+
this.displayName = displayName;
8182
this.defaultMainWindowCapability = defaultMainWindowCapability;
8283
this.isVROptional = isVROptional;
8384
this.cellsToUpload = cellsToPreload;
@@ -229,53 +230,46 @@ private CreateInteractionChoiceSet choiceFromCell(ChoiceCell cell){
229230
}
230231

231232
// HELPERS
232-
233-
/**
234-
* Check WindowCapability for setting MenuName
235-
* @return true if capability is null or capability exist, false if capability is not there
236-
*/
237-
boolean shouldSendChoiceText() {
238-
return (defaultMainWindowCapability != null && defaultMainWindowCapability.getTextFields() != null) ? ManagerUtility.WindowCapabilityUtility.hasTextFieldOfName(defaultMainWindowCapability, TextFieldName.menuName) : true;
233+
private boolean shouldSendChoiceText() {
234+
if (this.displayName != null && this.displayName.equals(DisplayType.GEN3_8_INCH)){
235+
return true;
236+
}
237+
return (defaultMainWindowCapability != null && defaultMainWindowCapability.getTextFields() != null)
238+
? ManagerUtility.WindowCapabilityUtility.hasTextFieldOfName(defaultMainWindowCapability, TextFieldName.menuName)
239+
: true;
239240
}
240241

241-
/**
242-
* Check WindowCapability for setting MenuName
243-
* @return true if capability is null or capability exist, false if capability is not there
244-
*/
245-
boolean shouldSendChoiceSecondaryText() {
246-
return (defaultMainWindowCapability != null && defaultMainWindowCapability.getTextFields() != null) ? ManagerUtility.WindowCapabilityUtility.hasTextFieldOfName(defaultMainWindowCapability, TextFieldName.secondaryText) : true;
242+
private boolean shouldSendChoiceSecondaryText() {
243+
return (defaultMainWindowCapability != null && defaultMainWindowCapability.getTextFields() != null)
244+
? ManagerUtility.WindowCapabilityUtility.hasTextFieldOfName(defaultMainWindowCapability, TextFieldName.secondaryText)
245+
: true;
247246
}
248247

249-
/**
250-
* Check WindowCapability for setting tertiaryText
251-
* @return true if capability is null or capability exist, false if capability is not there
252-
*/
253-
boolean shouldSendChoiceTertiaryText() {
254-
return (defaultMainWindowCapability != null && defaultMainWindowCapability.getTextFields() != null) ? ManagerUtility.WindowCapabilityUtility.hasTextFieldOfName(defaultMainWindowCapability, TextFieldName.tertiaryText) : true;
248+
private boolean shouldSendChoiceTertiaryText() {
249+
return (defaultMainWindowCapability != null && defaultMainWindowCapability.getTextFields() != null)
250+
? ManagerUtility.WindowCapabilityUtility.hasTextFieldOfName(defaultMainWindowCapability, TextFieldName.tertiaryText)
251+
: true;
255252
}
256253

257-
/**
258-
* Check WindowCapability for setting choiceImage
259-
* @return true if capability is null or capability exist, false if capability is not there
260-
*/
261-
boolean shouldSendChoicePrimaryImage() {
262-
return (defaultMainWindowCapability != null && defaultMainWindowCapability.getImageFields() != null) ? ManagerUtility.WindowCapabilityUtility.hasImageFieldOfName(defaultMainWindowCapability, ImageFieldName.choiceImage) : true;
254+
private boolean shouldSendChoicePrimaryImage() {
255+
return (defaultMainWindowCapability != null && defaultMainWindowCapability.getImageFields() != null)
256+
? ManagerUtility.WindowCapabilityUtility.hasImageFieldOfName(defaultMainWindowCapability, ImageFieldName.choiceImage)
257+
: true;
263258
}
264259

265-
/**
266-
* Check WindowCapability for setting choiceSecondaryImage
267-
* @return true if capability is null or capability exist, false if capability is not there
268-
*/
269-
boolean shouldSendChoiceSecondaryImage() {
270-
return (defaultMainWindowCapability != null && defaultMainWindowCapability.getImageFields() != null) ? ManagerUtility.WindowCapabilityUtility.hasImageFieldOfName(defaultMainWindowCapability, ImageFieldName.choiceSecondaryImage) : true;
260+
private boolean shouldSendChoiceSecondaryImage() {
261+
return (defaultMainWindowCapability != null && defaultMainWindowCapability.getImageFields() != null)
262+
? ManagerUtility.WindowCapabilityUtility.hasImageFieldOfName(defaultMainWindowCapability, ImageFieldName.choiceSecondaryImage)
263+
: true;
271264
}
265+
272266
List<SdlArtwork> artworksToUpload(){
273-
List<SdlArtwork> artworksToUpload = new ArrayList<>(cellsToUpload.size());
267+
List<SdlArtwork> artworksToUpload = new ArrayList<>();
274268
for (ChoiceCell cell : cellsToUpload){
275-
if (ManagerUtility.WindowCapabilityUtility.hasImageFieldOfName(defaultMainWindowCapability, ImageFieldName.choiceImage) && artworkNeedsUpload(cell.getArtwork())){
269+
if (shouldSendChoicePrimaryImage() && artworkNeedsUpload(cell.getArtwork())){
276270
artworksToUpload.add(cell.getArtwork());
277271
}
278-
if (ManagerUtility.WindowCapabilityUtility.hasImageFieldOfName(defaultMainWindowCapability, ImageFieldName.choiceSecondaryImage) && artworkNeedsUpload(cell.getSecondaryArtwork())){
272+
if (shouldSendChoiceSecondaryImage() && artworkNeedsUpload(cell.getSecondaryArtwork())){
279273
artworksToUpload.add(cell.getSecondaryArtwork());
280274
}
281275
}
@@ -288,30 +282,4 @@ boolean artworkNeedsUpload(SdlArtwork artwork){
288282
}
289283
return false;
290284
}
291-
292-
@Deprecated
293-
boolean hasImageFieldOfName(ImageFieldName name){
294-
if (defaultMainWindowCapability == null ){ return false; }
295-
if (defaultMainWindowCapability.getImageTypeSupported() == null || defaultMainWindowCapability.getImageTypeSupported().isEmpty()) { return false; }
296-
if (defaultMainWindowCapability.getImageFields() != null){
297-
for (ImageField field : defaultMainWindowCapability.getImageFields()){
298-
if (field != null && field.getName() != null && field.getName().equals(name)){
299-
return true;
300-
}
301-
}
302-
}
303-
return false;
304-
}
305-
@Deprecated
306-
boolean hasTextFieldOfName(TextFieldName name){
307-
if (defaultMainWindowCapability == null ){ return false; }
308-
if (defaultMainWindowCapability.getTextFields() != null){
309-
for (TextField field : defaultMainWindowCapability.getTextFields()){
310-
if (field != null && field.getName() != null && field.getName().equals(name)){
311-
return true;
312-
}
313-
}
314-
}
315-
return false;
316-
}
317285
}

0 commit comments

Comments
 (0)