summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrettyWhite <geekman3454@protonmail.com>2019-03-12 16:42:52 -0400
committerBrettyWhite <geekman3454@protonmail.com>2019-03-12 16:42:52 -0400
commit6425b7f6958155a67a4eb315997412326d597d59 (patch)
tree378f8d555fc2bf66020c26cdb0b87f5ba8c0e200
parent1c9285ded27b208baa8df1a4f89bd94e2dab837c (diff)
downloadsdl_android-6425b7f6958155a67a4eb315997412326d597d59.tar.gz
download cloud icon if possible
-rw-r--r--base/src/main/java/com/smartdevicelink/util/FileUtls.java26
-rw-r--r--javaSE/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleManager.java21
2 files changed, 47 insertions, 0 deletions
diff --git a/base/src/main/java/com/smartdevicelink/util/FileUtls.java b/base/src/main/java/com/smartdevicelink/util/FileUtls.java
index 45ac19870..019c97c76 100644
--- a/base/src/main/java/com/smartdevicelink/util/FileUtls.java
+++ b/base/src/main/java/com/smartdevicelink/util/FileUtls.java
@@ -1,7 +1,13 @@
package com.smartdevicelink.util;
+import android.support.annotation.NonNull;
+
+import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.net.URLConnection;
import java.nio.file.Files;
import java.nio.file.LinkOption;
import java.nio.file.Path;
@@ -38,4 +44,24 @@ public class FileUtls {
return null;
}
+
+ public static byte[] downloadFile(@NonNull String urlStr){
+ try {
+ URL url = new URL(urlStr);
+ URLConnection connection = url.openConnection();
+ InputStream inputStream = connection.getInputStream();
+ ByteArrayOutputStream buffer = new ByteArrayOutputStream();
+
+ int nRead;
+ byte[] data = new byte[4096];
+
+ while ((nRead = inputStream.read(data, 0, data.length)) != -1) {
+ buffer.write(data, 0, nRead);
+ }
+ return buffer.toByteArray();
+ }catch (Exception e){
+ DebugTool.logError("Unable to download file - " + urlStr, e);
+ return null;
+ }
+ }
}
diff --git a/javaSE/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleManager.java b/javaSE/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleManager.java
index 06262f87d..f9c79ccdb 100644
--- a/javaSE/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleManager.java
+++ b/javaSE/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleManager.java
@@ -23,6 +23,7 @@ import com.smartdevicelink.transport.BaseTransportConfig;
import com.smartdevicelink.transport.WebSocketServerConfig;
import com.smartdevicelink.util.CorrelationIdGenerator;
import com.smartdevicelink.util.DebugTool;
+import com.smartdevicelink.util.FileUtls;
import com.smartdevicelink.util.Version;
import java.util.HashMap;
@@ -241,6 +242,26 @@ public class LifecycleManager extends BaseLifecycleManager {
}
};
handleOffboardTransmissionThread.start();
+ }else if (onSystemRequest.getRequestType() == RequestType.ICON_URL) {
+ //Download the icon file and send SystemRequest RPC
+ Thread handleOffBoardTransmissionThread = new Thread() {
+ @Override
+ public void run() {
+ byte[] file = FileUtls.downloadFile(onSystemRequest.getUrl());
+ if (file != null) {
+ SystemRequest systemRequest = new SystemRequest();
+ systemRequest.setFileName(onSystemRequest.getUrl());
+ systemRequest.setBulkData(file);
+ systemRequest.setRequestType(RequestType.ICON_URL);
+ if (isConnected()) {
+ sendRPCMessagePrivate(systemRequest);
+ }
+ } else {
+ DebugTool.logError("File was null at: " + onSystemRequest.getUrl());
+ }
+ }
+ };
+ handleOffBoardTransmissionThread.start();
}
break;
case ON_APP_INTERFACE_UNREGISTERED: