diff options
Diffstat (limited to 'base/src/main/java/com/smartdevicelink/managers/screen/PresentAlertOperation.java')
-rw-r--r-- | base/src/main/java/com/smartdevicelink/managers/screen/PresentAlertOperation.java | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/base/src/main/java/com/smartdevicelink/managers/screen/PresentAlertOperation.java b/base/src/main/java/com/smartdevicelink/managers/screen/PresentAlertOperation.java index a85901d3c..31163627c 100644 --- a/base/src/main/java/com/smartdevicelink/managers/screen/PresentAlertOperation.java +++ b/base/src/main/java/com/smartdevicelink/managers/screen/PresentAlertOperation.java @@ -77,6 +77,8 @@ public class PresentAlertOperation extends Task { boolean isAlertPresented; static int SOFTBUTTON_COUNT = 4; private BaseAlertManager.AlertSoftButtonClearListener alertSoftButtonClearListener; + Boolean alertIconUploaded; + private List<SdlArtwork> artworksToBeUploaded; public PresentAlertOperation(ISdl internalInterface, AlertView alertView, WindowCapability currentCapabilities, List<SpeechCapabilities> speechCapabilities, FileManager fileManager, Integer cancelId, AlertCompletionListener listener, BaseAlertManager.AlertSoftButtonClearListener alertSoftButtonClearListener) { super("PresentAlertOperation"); @@ -89,6 +91,7 @@ public class PresentAlertOperation extends Task { this.cancelId = cancelId; this.isAlertPresented = false; this.alertSoftButtonClearListener = alertSoftButtonClearListener; + alertIconUploaded = false; this.alertView.canceledListener = new AlertCanceledListener() { @Override @@ -237,10 +240,15 @@ public class PresentAlertOperation extends Task { * @param listener - CompletionListener called when all images have been uploaded. */ private void uploadImages(final CompletionListener listener) { - List<SdlArtwork> artworksToBeUploaded = new ArrayList<>(); + artworksToBeUploaded = new ArrayList<>(); - if (supportsAlertIcon() && fileManager.get() != null && fileManager.get().fileNeedsUpload(alertView.getIcon())) { - artworksToBeUploaded.add(alertView.getIcon()); + if (supportsAlertIcon() && alertView.getIcon() != null && fileManager.get() != null) { + if (fileManager.get().fileNeedsUpload(alertView.getIcon())) { + artworksToBeUploaded.add(alertView.getIcon()); + + } else if (fileManager.get().hasUploadedFile(alertView.getIcon()) || alertView.getIcon().isStaticIcon()) { + alertIconUploaded = true; + } } if (alertView.getSoftButtons() != null) { @@ -275,6 +283,9 @@ public class PresentAlertOperation extends Task { } else { DebugTool.logInfo(TAG, "All alert images uploaded"); } + if (artworksToBeUploaded.contains(alertView.getIcon()) && (errors == null || !errors.containsKey(alertView.getIcon().getName()))) { + alertIconUploaded = true; + } listener.onComplete(true); } }); @@ -362,9 +373,7 @@ public class PresentAlertOperation extends Task { alert = assembleAlertText(alert); alert.setDuration(alertView.getTimeout() * 1000); - if (alertView.getIcon() != null && supportsAlertIcon() && !(fileManager.get().hasUploadedFile(alertView.getIcon()))) { - alert.setAlertIcon(alertView.getIcon().getImageRPC()); - } + alert.setAlertIcon(alertIconUploaded ? alertView.getIcon().getImageRPC() : null); alert.setProgressIndicator(alertView.isShowWaitIndicator()); alert.setCancelID(this.cancelId); |