summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Thrun <jthrun@uievolution.com>2017-10-11 14:15:26 -0700
committerJohn Thrun <jthrun@uievolution.com>2017-10-13 09:24:28 -0700
commit0e96dc4514ac21babe32ad6612bd62c99f0d4d31 (patch)
tree964bf7ac0fc99e2d7d1c0ac5af5bc4915352062a
parent8e0625498fc8ddb6ce5181d1270ec498ab730d80 (diff)
downloadsdl_android-0e96dc4514ac21babe32ad6612bd62c99f0d4d31.tar.gz
Integrate with enhanced video streaming changes.
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/haptic/HapticInterfaceManager.java31
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java5
-rw-r--r--sdl_android/src/test/java/com/smartdevicelink/haptic/HapticInterfaceManagerTest.java18
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());