diff options
author | John Thrun <jthrun@uievolution.com> | 2017-10-11 14:15:26 -0700 |
---|---|---|
committer | John Thrun <jthrun@uievolution.com> | 2017-10-13 09:24:28 -0700 |
commit | 0e96dc4514ac21babe32ad6612bd62c99f0d4d31 (patch) | |
tree | 964bf7ac0fc99e2d7d1c0ac5af5bc4915352062a | |
parent | 8e0625498fc8ddb6ce5181d1270ec498ab730d80 (diff) | |
download | sdl_android-0e96dc4514ac21babe32ad6612bd62c99f0d4d31.tar.gz |
Integrate with enhanced video streaming changes.
3 files changed, 17 insertions, 37 deletions
diff --git a/sdl_android/src/main/java/com/smartdevicelink/haptic/HapticInterfaceManager.java b/sdl_android/src/main/java/com/smartdevicelink/haptic/HapticInterfaceManager.java index e02177db1..9a6e44897 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/haptic/HapticInterfaceManager.java +++ b/sdl_android/src/main/java/com/smartdevicelink/haptic/HapticInterfaceManager.java @@ -21,16 +21,13 @@ **************************************************************************************************/ package com.smartdevicelink.haptic; -import android.util.Log; import android.view.View; import android.view.ViewGroup; -import com.smartdevicelink.exception.SdlException; -import com.smartdevicelink.proxy.SdlProxyBase; +import com.smartdevicelink.proxy.interfaces.ISdl; import com.smartdevicelink.proxy.rpc.HapticRect; import com.smartdevicelink.proxy.rpc.Rectangle; import com.smartdevicelink.proxy.rpc.SendHapticData; -import com.smartdevicelink.util.CorrelationIdGenerator; import java.lang.ref.WeakReference; import java.util.ArrayList; @@ -46,9 +43,13 @@ import java.util.List; public class HapticInterfaceManager { private static final String TAG = "Haptic"; - private WeakReference<SdlProxyBase> proxyHolder; + private WeakReference<ISdl> proxyHolder; private List<HapticRect> userHapticData; + public HapticInterfaceManager(ISdl proxy) { + this.proxyHolder = new WeakReference<>(proxy); + } + /** * Sets haptic data and sends update to the HU. To be used by app code instead of letting * Presentation find the Views and automatically send to HU. @@ -58,22 +59,14 @@ public class HapticInterfaceManager { */ public void setHapticData(List<HapticRect> hapticData) { userHapticData = hapticData; - SdlProxyBase proxy = proxyHolder.get(); + ISdl proxy = proxyHolder.get(); if (proxy != null) { SendHapticData msg = new SendHapticData(); msg.setHapticRectData(userHapticData); - try { - proxy.sendRPCRequest(msg); - } catch (SdlException e) { - Log.e(TAG, "failed to send user haptic RPC", e); - } + proxy.sendRPCRequest(msg); } } - public HapticInterfaceManager(SdlProxyBase proxy) { - this.proxyHolder = new WeakReference<>(proxy); - } - /** * Sends haptic data found by searching for focusable and clickable Views in the view heirarchy * to the HU. Should be called by Presentation's OnShowListener. @@ -82,7 +75,7 @@ public class HapticInterfaceManager { * the root or parent View */ public void refreshHapticData(View root) { - SdlProxyBase proxy = proxyHolder.get(); + ISdl proxy = proxyHolder.get(); if ((userHapticData == null) && (proxy != null)) { List<HapticRect> hapticRects = new ArrayList<>(); findHapticRects(root, hapticRects); @@ -90,11 +83,7 @@ public class HapticInterfaceManager { SendHapticData msg = new SendHapticData(); msg.setHapticRectData(hapticRects); - try { - proxy.sendRPCRequest(msg); - } catch (SdlException e) { - Log.e(TAG, "failed to send haptic RPC", e); - } + proxy.sendRPCRequest(msg); } } diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java index e1e80d5a0..cb8e2c6f3 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java @@ -49,6 +49,7 @@ import com.smartdevicelink.SdlConnection.SdlSession; import com.smartdevicelink.encoder.VirtualDisplayEncoder;
import com.smartdevicelink.exception.SdlException;
import com.smartdevicelink.exception.SdlExceptionCause;
+import com.smartdevicelink.haptic.HapticInterfaceManager;
import com.smartdevicelink.marshal.JsonRPCMarshaller;
import com.smartdevicelink.protocol.ProtocolMessage;
import com.smartdevicelink.protocol.enums.FunctionID;
@@ -6240,6 +6241,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> SdlRemoteDisplay remoteDisplay;
IVideoStreamListener streamListener;
float[] touchScalar = {1.0f,1.0f}; //x, y
+ private HapticInterfaceManager hapticManager;
public VideoStreamingManager(Context context,ISdl iSdl){
this.context = context;
@@ -6258,6 +6260,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> }
}
});
+ hapticManager = new HapticInterfaceManager(iSdl);
}
public void startVideoStreaming(Class<? extends SdlRemoteDisplay> remoteDisplayClass, VideoStreamingParameters parameters, boolean encrypted){
@@ -6310,6 +6313,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> //Remote display has been created.
//Now is a good time to do parsing for spatial data
VideoStreamingManager.this.remoteDisplay = remoteDisplay;
+ hapticManager.refreshHapticData(remoteDisplay.getMainView());
//Get touch scalars
ImageResolution resolution = null;
@@ -6335,6 +6339,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> public void onInvalidated(SdlRemoteDisplay remoteDisplay) {
//Our view has been invalidated
//A good time to refresh spatial data
+ hapticManager.refreshHapticData(remoteDisplay.getMainView());
}
} ));
Thread showPresentation = new Thread(fTask);
diff --git a/sdl_android/src/test/java/com/smartdevicelink/haptic/HapticInterfaceManagerTest.java b/sdl_android/src/test/java/com/smartdevicelink/haptic/HapticInterfaceManagerTest.java index 438042cc1..87c547bb1 100644 --- a/sdl_android/src/test/java/com/smartdevicelink/haptic/HapticInterfaceManagerTest.java +++ b/sdl_android/src/test/java/com/smartdevicelink/haptic/HapticInterfaceManagerTest.java @@ -24,8 +24,7 @@ package com.smartdevicelink.haptic; import android.view.View; import android.view.ViewGroup; -import com.smartdevicelink.exception.SdlException; -import com.smartdevicelink.proxy.SdlProxyBase; +import com.smartdevicelink.proxy.interfaces.ISdl; import com.smartdevicelink.proxy.rpc.HapticRect; import com.smartdevicelink.proxy.rpc.Rectangle; import com.smartdevicelink.proxy.rpc.SendHapticData; @@ -54,7 +53,7 @@ import static org.mockito.Mockito.*; @RunWith(MockitoJUnitRunner.Strict.class) public class HapticInterfaceManagerTest extends TestCase { @Mock - private SdlProxyBase mockProxy; + private ISdl mockProxy; @Captor private ArgumentCaptor<SendHapticData> captor; @@ -87,12 +86,6 @@ public class HapticInterfaceManagerTest extends TestCase { } @Test - public void testSetHapticDataException() throws Exception { - doThrow(SdlException.class).when(mockProxy).sendRPCRequest(any(SendHapticData.class)); - hapticMgr.setHapticData(null); - } - - @Test public void testRefreshHapticData() throws Exception { View root = createViews(); hapticMgr.refreshHapticData(root); @@ -105,13 +98,6 @@ public class HapticInterfaceManagerTest extends TestCase { } @Test - public void testRefreshHapticDataException() throws Exception { - doThrow(SdlException.class).when(mockProxy).sendRPCRequest(any(SendHapticData.class)); - View root = createViews(); - hapticMgr.refreshHapticData(root); - } - - @Test public void testRefreshHapticDataNull() throws Exception { hapticMgr.refreshHapticData(null); verify(mockProxy).sendRPCRequest(captor.capture()); |