summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBretty White <geekman3454@protonmail.com>2018-07-18 16:06:10 -0400
committerBretty White <geekman3454@protonmail.com>2018-07-18 16:06:10 -0400
commit77f9fb3b227035f4b0b919552bcd63d2698c3da3 (patch)
treeaaef79e67b9fc5e48a2defd03ca6d45f41d12bd1
parent641370971f169459c5193365298286f435c4c81d (diff)
downloadsdl_android-77f9fb3b227035f4b0b919552bcd63d2698c3da3.tar.gz
potential changes
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/api/InitializationListener.java9
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/api/ProxyBridge.java24
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/api/SdlManager.java39
3 files changed, 70 insertions, 2 deletions
diff --git a/sdl_android/src/main/java/com/smartdevicelink/api/InitializationListener.java b/sdl_android/src/main/java/com/smartdevicelink/api/InitializationListener.java
new file mode 100644
index 000000000..f7a342ff0
--- /dev/null
+++ b/sdl_android/src/main/java/com/smartdevicelink/api/InitializationListener.java
@@ -0,0 +1,9 @@
+package com.smartdevicelink.api;
+
+public interface InitializationListener {
+ /**
+ * Returns whether a initialization was successful or not
+ * @param success - success or fail
+ */
+ void OnInitialized(boolean success);
+}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/api/ProxyBridge.java b/sdl_android/src/main/java/com/smartdevicelink/api/ProxyBridge.java
index 4dadad170..e5f049126 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/api/ProxyBridge.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/api/ProxyBridge.java
@@ -3,10 +3,10 @@ package com.smartdevicelink.api;
import android.util.SparseArray;
import com.smartdevicelink.protocol.enums.FunctionID;
+import com.smartdevicelink.proxy.IProxyListener;
import com.smartdevicelink.proxy.RPCMessage;
import com.smartdevicelink.proxy.callbacks.OnServiceEnded;
import com.smartdevicelink.proxy.callbacks.OnServiceNACKed;
-import com.smartdevicelink.proxy.interfaces.IProxyListenerBase;
import com.smartdevicelink.proxy.rpc.AddCommandResponse;
import com.smartdevicelink.proxy.rpc.AddSubMenuResponse;
import com.smartdevicelink.proxy.rpc.AlertManeuverResponse;
@@ -28,6 +28,7 @@ import com.smartdevicelink.proxy.rpc.GetSystemCapabilityResponse;
import com.smartdevicelink.proxy.rpc.GetVehicleDataResponse;
import com.smartdevicelink.proxy.rpc.GetWayPointsResponse;
import com.smartdevicelink.proxy.rpc.ListFilesResponse;
+import com.smartdevicelink.proxy.rpc.OnAppInterfaceUnregistered;
import com.smartdevicelink.proxy.rpc.OnAudioPassThru;
import com.smartdevicelink.proxy.rpc.OnButtonEvent;
import com.smartdevicelink.proxy.rpc.OnButtonPress;
@@ -50,6 +51,7 @@ import com.smartdevicelink.proxy.rpc.PerformAudioPassThruResponse;
import com.smartdevicelink.proxy.rpc.PerformInteractionResponse;
import com.smartdevicelink.proxy.rpc.PutFileResponse;
import com.smartdevicelink.proxy.rpc.ReadDIDResponse;
+import com.smartdevicelink.proxy.rpc.RegisterAppInterfaceResponse;
import com.smartdevicelink.proxy.rpc.ResetGlobalPropertiesResponse;
import com.smartdevicelink.proxy.rpc.ScrollableMessageResponse;
import com.smartdevicelink.proxy.rpc.SendHapticDataResponse;
@@ -68,6 +70,7 @@ import com.smartdevicelink.proxy.rpc.SubscribeButtonResponse;
import com.smartdevicelink.proxy.rpc.SubscribeVehicleDataResponse;
import com.smartdevicelink.proxy.rpc.SubscribeWayPointsResponse;
import com.smartdevicelink.proxy.rpc.SystemRequestResponse;
+import com.smartdevicelink.proxy.rpc.UnregisterAppInterfaceResponse;
import com.smartdevicelink.proxy.rpc.UnsubscribeButtonResponse;
import com.smartdevicelink.proxy.rpc.UnsubscribeVehicleDataResponse;
import com.smartdevicelink.proxy.rpc.UnsubscribeWayPointsResponse;
@@ -76,16 +79,33 @@ import com.smartdevicelink.proxy.rpc.enums.SdlDisconnectedReason;
import java.util.concurrent.CopyOnWriteArrayList;
-public class ProxyBridge implements IProxyListenerBase{
+public class ProxyBridge implements IProxyListener{
private final Object RPC_LISTENER_LOCK = new Object();
protected SparseArray<CopyOnWriteArrayList<OnRPCListener>> rpcListeners = null;
final LifecycleListener lifecycleListener;
+ @Override
+ public void onProxyOpened() {}
+
+ @Override
+ public void onRegisterAppInterfaceResponse(RegisterAppInterfaceResponse response) {
+ if(response.getSuccess()){
+ lifecycleListener.onProxyConnected();
+ }
+ }
+
+ @Override
+ public void onOnAppInterfaceUnregistered(OnAppInterfaceUnregistered notification) {}
+
+ @Override
+ public void onUnregisterAppInterfaceResponse(UnregisterAppInterfaceResponse response) {}
+
public interface OnRPCListener {
void onRpcReceived(int functionID, RPCMessage message);
}
protected interface LifecycleListener{
+ void onProxyConnected();
void onProxyClosed(String info, Exception e, SdlDisconnectedReason reason);
void onServiceEnded(OnServiceEnded serviceEnded);
void onServiceNACKed(OnServiceNACKed serviceNACKed);
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 5c2516969..3b037981a 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/api/SdlManager.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/api/SdlManager.java
@@ -2,6 +2,7 @@ package com.smartdevicelink.api;
import android.content.Context;
import android.support.annotation.NonNull;
+import android.util.Log;
import com.smartdevicelink.exception.SdlException;
import com.smartdevicelink.protocol.enums.FunctionID;
@@ -65,6 +66,9 @@ public class SdlManager implements ProxyBridge.LifecycleListener {
private final ProxyBridge proxyBridge= new ProxyBridge(this);
//public LockScreenConfig lockScreenConfig;
+ private InitializationListener initListener;
+ private boolean initialized = false;
+
// Managers
/*
private FileManager fileManager;
@@ -75,6 +79,27 @@ public class SdlManager implements ProxyBridge.LifecycleListener {
private PermissionManager permissionManager;
*/
+ InitializationListener subManagerListener = new InitializationListener() {
+ boolean allSucceeded = true;
+ int subManagerCount = 1; // Update per amount of sub managers implemented
+ @Override
+ public void OnInitialized(boolean success) {
+ if(!success){
+ allSucceeded = false;
+ }
+ subManagerCount--;
+ if(subManagerCount <= 0){
+ if(allSucceeded){
+ initialized = true;
+ }
+ if(initListener != null){
+ initListener.OnInitialized(allSucceeded);
+ initListener = null;
+ }
+ }
+ }
+ };
+
private void initialize(){
// instantiate managers
@@ -380,6 +405,20 @@ public class SdlManager implements ProxyBridge.LifecycleListener {
// LIFECYCLE / OTHER
+ // STARTUP
+ public void start(InitializationListener listener){
+ initListener = listener;
+ if(initialized){
+ listener.OnInitialized(true);
+ }
+ }
+
+ @Override
+ public void onProxyConnected() {
+ Log.d(TAG, "Proxy is connected. Now initializing.");
+ this.initialize();
+ }
+
@Override
public void onProxyClosed(String info, Exception e, SdlDisconnectedReason reason){
this.dispose();