From fcb8e7eaf2e2692bfe8f4404ae387b32afaf5095 Mon Sep 17 00:00:00 2001 From: Amit Davidi Date: Thu, 27 Feb 2020 15:34:26 +0200 Subject: [PATCH] Make invoke handler not-need proguard exclusion defs --- .../main/java/com/wix/detox/DetoxActionHandlers.kt | 8 ++++---- .../src/main/java/com/wix/detox/DetoxManager.java | 14 ++++++++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/detox/android/detox/src/main/java/com/wix/detox/DetoxActionHandlers.kt b/detox/android/detox/src/main/java/com/wix/detox/DetoxActionHandlers.kt index 2c173ff1f4..f715e9813e 100644 --- a/detox/android/detox/src/main/java/com/wix/detox/DetoxActionHandlers.kt +++ b/detox/android/detox/src/main/java/com/wix/detox/DetoxActionHandlers.kt @@ -41,10 +41,10 @@ class ReactNativeReloadActionHandler( } } -class InvokeActionHandler @JvmOverloads constructor( +class InvokeActionHandler( private val methodInvocation: MethodInvocation, private val wsClient: WebSocketClient, - private val errorParser: (e: Throwable?) -> String = Log::getStackTraceString) + private val errorParse: (e: Throwable?) -> String) : DetoxActionHandler { override fun handle(params: String, messageId: Long) { @@ -53,10 +53,10 @@ class InvokeActionHandler @JvmOverloads constructor( wsClient.sendAction("invokeResult", mapOf("result" to invocationResult), messageId) } catch (e: InvocationTargetException) { Log.e(LOG_TAG, "Exception", e) - wsClient.sendAction("error", mapOf("error" to "${errorParser(e.targetException)}\nCheck device logs for full details!\n"), messageId) + wsClient.sendAction("error", mapOf("error" to "${errorParse(e.targetException)}\nCheck device logs for full details!\n"), messageId) } catch (e: Exception) { Log.i(LOG_TAG, "Test exception", e) - wsClient.sendAction("testFailed", mapOf("details" to "${errorParser(e)}\nCheck device logs for full details!\n"), messageId) + wsClient.sendAction("testFailed", mapOf("details" to "${errorParse(e)}\nCheck device logs for full details!\n"), messageId) } } } diff --git a/detox/android/detox/src/main/java/com/wix/detox/DetoxManager.java b/detox/android/detox/src/main/java/com/wix/detox/DetoxManager.java index cb18a90e29..5f53c601d4 100644 --- a/detox/android/detox/src/main/java/com/wix/detox/DetoxManager.java +++ b/detox/android/detox/src/main/java/com/wix/detox/DetoxManager.java @@ -4,11 +4,8 @@ import android.os.Bundle; import android.os.Handler; import android.os.Looper; -import androidx.annotation.NonNull; import android.util.Log; -import com.github.anrwatchdog.ANRError; -import com.github.anrwatchdog.ANRWatchDog; import com.wix.detox.instruments.DetoxInstrumentsManager; import com.wix.detox.reactnative.ReactNativeExtension; import com.wix.detox.systeminfo.Environment; @@ -17,9 +14,11 @@ import java.util.HashMap; import java.util.Map; +import androidx.annotation.NonNull; import androidx.test.platform.app.InstrumentationRegistry; import kotlin.Unit; import kotlin.jvm.functions.Function0; +import kotlin.jvm.functions.Function1; /** * Created by rotemm on 04/01/2017. @@ -32,6 +31,13 @@ class DetoxManager implements WebSocketClient.ActionHandler { private final static String DETOX_SESSION_ID_ARG_KEY = "detoxSessionId"; private final static String DETOX_RECORDING_PATH_ARG_KEY = "detoxInstrumRecPath"; + private final static Function1 errorParseFn = new Function1() { + @Override + public String invoke(Throwable t) { + return Log.getStackTraceString(t); + } + }; + private String detoxServerUrl; private String detoxSessionId; @@ -150,8 +156,8 @@ private void initActionHandlers() { actionHandlers.clear(); actionHandlers.put("isReady", readyActionHandler); actionHandlers.put("reactNativeReload", new ReactNativeReloadActionHandler(reactNativeHostHolder, wsClient, testEngineFacade)); - actionHandlers.put("invoke", new InvokeActionHandler(new MethodInvocation(), wsClient)); actionHandlers.put("currentStatus", new QueryStatusActionHandler(wsClient, testEngineFacade)); + actionHandlers.put("invoke", new InvokeActionHandler(new MethodInvocation(), wsClient, errorParseFn)); actionHandlers.put("cleanup", new CleanupActionHandler(wsClient, testEngineFacade, new Function0() { @Override public Unit invoke() {