summaryrefslogtreecommitdiff
path: root/base/src/main/java/com/smartdevicelink/managers/screen/PresentAlertOperation.java
diff options
context:
space:
mode:
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.java21
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);