summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrett <3911458+BrettyWhite@users.noreply.github.com>2018-09-07 15:12:44 +0000
committerGitHub <noreply@github.com>2018-09-07 15:12:44 +0000
commitfdaffad6867750ef84ec54d9173188b8b3db3cc4 (patch)
treea44a44ee66f68a392eb21e876e8b535c7cbd6f33
parentec4358c6020ee7f56b3421ea1b529c840eda26a0 (diff)
parent1d3aa506d3fb391fb83b379933a9aa7cc4c976a9 (diff)
downloadsdl_android-fdaffad6867750ef84ec54d9173188b8b3db3cc4.tar.gz
Merge pull request #852 from smartdevicelink/feature/issue_782_set_app_icon
Feature/issue 782 - Add setAppIcon() to SdlManager
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/api/SdlManager.java52
1 files changed, 39 insertions, 13 deletions
diff --git a/sdl_android/src/main/java/com/smartdevicelink/api/SdlManager.java b/sdl_android/src/main/java/com/smartdevicelink/api/SdlManager.java
index 7c2b79734..873bb6425 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/api/SdlManager.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/api/SdlManager.java
@@ -5,6 +5,7 @@ import android.support.annotation.NonNull;
import android.util.Log;
import com.smartdevicelink.api.PermissionManager.PermissionManager;
+import com.smartdevicelink.api.datatypes.SdlArtwork;
import com.smartdevicelink.api.lockscreen.LockScreenConfig;
import com.smartdevicelink.api.lockscreen.LockScreenManager;
import com.smartdevicelink.exception.SdlException;
@@ -22,6 +23,7 @@ import com.smartdevicelink.proxy.interfaces.ISdlServiceListener;
import com.smartdevicelink.proxy.interfaces.IVideoStreamListener;
import com.smartdevicelink.proxy.interfaces.OnSystemCapabilityListener;
import com.smartdevicelink.proxy.rpc.SdlMsgVersion;
+import com.smartdevicelink.proxy.rpc.SetAppIcon;
import com.smartdevicelink.proxy.rpc.TTSChunk;
import com.smartdevicelink.proxy.rpc.TemplateColorScheme;
import com.smartdevicelink.proxy.rpc.enums.AppHMIType;
@@ -31,7 +33,6 @@ import com.smartdevicelink.proxy.rpc.enums.SystemCapabilityType;
import com.smartdevicelink.proxy.rpc.listeners.OnMultipleRequestListener;
import com.smartdevicelink.proxy.rpc.listeners.OnRPCListener;
import com.smartdevicelink.proxy.rpc.listeners.OnRPCNotificationListener;
-import com.smartdevicelink.proxy.rpc.listeners.OnRPCResponseListener;
import com.smartdevicelink.streaming.audio.AudioStreamingCodec;
import com.smartdevicelink.streaming.audio.AudioStreamingParams;
import com.smartdevicelink.streaming.video.VideoStreamingParameters;
@@ -58,18 +59,16 @@ public class SdlManager{
private static String TAG = "Sdl Manager";
private SdlProxyBase proxy;
-
- // Required parameters for builder
private String appId, appName, shortAppName;
private boolean isMediaApp;
private Language hmiLanguage;
+ private SdlArtwork appIcon;
private Vector<AppHMIType> hmiTypes;
private BaseTransportConfig transport;
private Context context;
private Vector<String> vrSynonyms;
private Vector<TTSChunk> ttsChunks;
private TemplateColorScheme dayColorScheme, nightColorScheme;
-
private SdlManagerListener managerListener;
private int state = -1;
public LockScreenConfig lockScreenConfig;
@@ -80,7 +79,7 @@ public class SdlManager{
private PermissionManager permissionManager;
private VideoStreamingManager videoStreamingManager;
private FileManager fileManager;
- private LockScreenManager lockscreenManager;
+ private LockScreenManager lockScreenManager;
/*
private AudioStreamManager audioStreamManager;
private ScreenManager screenManager;
@@ -126,7 +125,7 @@ public class SdlManager{
permissionManager != null && permissionManager.getState() != BaseSubManager.SETTING_UP &&
fileManager != null && fileManager.getState() != BaseSubManager.SETTING_UP &&
(videoStreamingManager == null || (videoStreamingManager != null && videoStreamingManager.getState() != BaseSubManager.SETTING_UP)) &&
- lockscreenManager != null && lockscreenManager.getState() != BaseSubManager.SETTING_UP
+ lockScreenManager != null && lockScreenManager.getState() != BaseSubManager.SETTING_UP
/*
audioStreamManager != null && audioStreamManager.getState() != BaseSubManager.SETTING_UP &&
screenManager != null && screenManager.getState() != BaseSubManager.SETTING_UP
@@ -136,6 +135,24 @@ public class SdlManager{
if(managerListener != null){
managerListener.onStart();
}
+
+ // Set the app icon
+ if (SdlManager.this.appIcon != null && SdlManager.this.appIcon.getName() != null) {
+ if (!fileManager.hasUploadedFile(SdlManager.this.appIcon)) {
+ fileManager.uploadArtwork(SdlManager.this.appIcon, new CompletionListener() {
+ @Override
+ public void onComplete(boolean success) {
+ if (success) {
+ SetAppIcon msg = new SetAppIcon(SdlManager.this.appIcon.getName());
+ _internalInterface.sendRPCRequest(msg);
+ }
+ }
+ });
+ } else {
+ SetAppIcon msg = new SetAppIcon(SdlManager.this.appIcon.getName());
+ _internalInterface.sendRPCRequest(msg);
+ }
+ }
}
}
};
@@ -155,8 +172,8 @@ public class SdlManager{
this.fileManager.start(subManagerListener);
if (lockScreenConfig.isEnabled()) {
- this.lockscreenManager = new LockScreenManager(lockScreenConfig, context, _internalInterface);
- this.lockscreenManager.start(subManagerListener);
+ this.lockScreenManager = new LockScreenManager(lockScreenConfig, context, _internalInterface);
+ this.lockScreenManager.start(subManagerListener);
}
/*
@@ -167,15 +184,15 @@ public class SdlManager{
*/
}
- private void dispose() {
+ public void dispose() {
this.permissionManager.dispose();
if(this.videoStreamingManager != null) {
this.videoStreamingManager.dispose();
}
this.fileManager.dispose();
- if (this.lockscreenManager != null) {
- this.lockscreenManager.dispose();
+ if (this.lockScreenManager != null) {
+ this.lockScreenManager.dispose();
}
/*
@@ -281,6 +298,15 @@ public class SdlManager{
return this;
}
+ /**
+ * Sets the icon for the app on HU <br>
+ * @param sdlArtwork
+ */
+ public Builder setAppIcon(final SdlArtwork sdlArtwork){
+ sdlManager.appIcon = sdlArtwork;
+ return this;
+ }
+
/**
* Sets the vector of AppHMIType <br>
* <strong>Note: This should be an ordered list from most -> least relevant</strong>
@@ -449,9 +475,9 @@ public class SdlManager{
* <strong>Note: LockScreenManager should be used only after SdlManager.start() CompletionListener callback is completed successfully.</strong>
* @return a LockScreenManager object
*/
- public LockScreenManager getLockscreenManager() {
+ public LockScreenManager getLockScreenManager() {
checkSdlManagerState();
- return lockscreenManager;
+ return lockScreenManager;
}