diff options
author | BrettyWhite <geekman3454@protonmail.com> | 2019-03-12 16:42:52 -0400 |
---|---|---|
committer | BrettyWhite <geekman3454@protonmail.com> | 2019-03-12 16:42:52 -0400 |
commit | 6425b7f6958155a67a4eb315997412326d597d59 (patch) | |
tree | 378f8d555fc2bf66020c26cdb0b87f5ba8c0e200 | |
parent | 1c9285ded27b208baa8df1a4f89bd94e2dab837c (diff) | |
download | sdl_android-6425b7f6958155a67a4eb315997412326d597d59.tar.gz |
download cloud icon if possible
-rw-r--r-- | base/src/main/java/com/smartdevicelink/util/FileUtls.java | 26 | ||||
-rw-r--r-- | javaSE/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleManager.java | 21 |
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: |