diff options
author | Bretty White <geekman3454@protonmail.com> | 2018-07-18 16:06:10 -0400 |
---|---|---|
committer | Bretty White <geekman3454@protonmail.com> | 2018-07-18 16:06:10 -0400 |
commit | 77f9fb3b227035f4b0b919552bcd63d2698c3da3 (patch) | |
tree | aaef79e67b9fc5e48a2defd03ca6d45f41d12bd1 | |
parent | 641370971f169459c5193365298286f435c4c81d (diff) | |
download | sdl_android-77f9fb3b227035f4b0b919552bcd63d2698c3da3.tar.gz |
potential changes
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(); |