From e8997dadc54d77087d68d6221291c4c5a4dabe40 Mon Sep 17 00:00:00 2001 From: Salma ElTarzi Date: Tue, 8 Aug 2017 15:14:10 +0200 Subject: [PATCH 1/7] :bug: Fix bug where callbacks could only get invoked once --- .../RNInstabugReactnativeModule.java | 15 +++++++++------ index.js | 17 +++++++++++++++-- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/android/src/main/java/com/instabug/reactlibrary/RNInstabugReactnativeModule.java b/android/src/main/java/com/instabug/reactlibrary/RNInstabugReactnativeModule.java index dab3e1f..c2339d0 100644 --- a/android/src/main/java/com/instabug/reactlibrary/RNInstabugReactnativeModule.java +++ b/android/src/main/java/com/instabug/reactlibrary/RNInstabugReactnativeModule.java @@ -909,7 +909,7 @@ public class RNInstabugReactnativeModule extends ReactContextBaseJavaModule { Runnable preInvocationRunnable = new Runnable() { @Override public void run() { - preInvocationHandler.invoke(); + sendEvent(getReactApplicationContext(), "IBGpreInvocationHandler", null); } }; mInstabug.setPreInvocation(preInvocationRunnable); @@ -933,7 +933,7 @@ public class RNInstabugReactnativeModule extends ReactContextBaseJavaModule { Runnable preSendingRunnable = new Runnable() { @Override public void run() { - preSendingHandler.invoke(); + sendEvent(getReactApplicationContext(), "IBGpreSendingHandler", null); } }; mInstabug.setPreSendingRunnable(preSendingRunnable); @@ -957,7 +957,10 @@ public class RNInstabugReactnativeModule extends ReactContextBaseJavaModule { mInstabug.setOnSdkDismissedCallback(new OnSdkDismissedCallback() { @Override public void onSdkDismissed(DismissType issueState, Bug.Type bugType) { - postInvocationHandler.invoke(); + WritableMap params = Arguments.createMap(); + params.putString("issueState",issueState.toString()); + params.putString("bugType",bugType.toString()); + sendEvent(getReactApplicationContext(), "IBGpostInvocationHandler", params); } }); @@ -1022,7 +1025,7 @@ public class RNInstabugReactnativeModule extends ReactContextBaseJavaModule { Runnable willShowSurveyRunnable = new Runnable() { @Override public void run() { - willShowSurveyHandler.invoke(); + sendEvent(getReactApplicationContext(), "IBGWillShowSurvey", null); } }; mInstabug.setPreShowingSurveyRunnable(willShowSurveyRunnable); @@ -1044,7 +1047,7 @@ public class RNInstabugReactnativeModule extends ReactContextBaseJavaModule { Runnable didDismissSurveyRunnable = new Runnable() { @Override public void run() { - didDismissSurveyHandler.invoke(); + sendEvent(getReactApplicationContext(), "IBGDidDismissSurvey", null); } }; mInstabug.setAfterShowingSurveyRunnable(didDismissSurveyRunnable); @@ -1115,7 +1118,7 @@ public class RNInstabugReactnativeModule extends ReactContextBaseJavaModule { Runnable onNewMessageRunnable = new Runnable() { @Override public void run() { - onNewMessageHandler.invoke(); + sendEvent(getReactApplicationContext(), "IBGonNewMessageHandler", null); } }; mInstabug.setNewMessageHandler(onNewMessageRunnable); diff --git a/index.js b/index.js index 824c9bd..0a555b8 100644 --- a/index.js +++ b/index.js @@ -95,7 +95,8 @@ module.exports = { 'IBGpreSendingHandler', preSendingHandler ); - + } else { + DeviceEventEmitter.addListener('IBGpreSendingHandler', preSendingHandler); } Instabug.setPreSendingHandler(preSendingHandler); @@ -115,6 +116,8 @@ module.exports = { 'IBGpreInvocationHandler', preInvocationHandler ); + } else { + DeviceEventEmitter.addListener('IBGpreInvocationHandler', preInvocationHandler); } Instabug.setPreInvocationHandler(preInvocationHandler); @@ -137,6 +140,10 @@ module.exports = { postInvocationHandler(payload['dismissType'], payload['reportType']); } ); + } else { + DeviceEventEmitter.addListener('IBGpostInvocationHandler', function(payload) { + postInvocationHandler(payload.issueState, payload.bugType); + }); } Instabug.setPostInvocationHandler(postInvocationHandler); @@ -398,9 +405,11 @@ module.exports = { 'IBGonNewMessageHandler', onNewMessageHandler ); + } else { + DeviceEventEmitter.addListener('IBGonNewMessageHandler', onNewMessageHandler); } - Instabug.setOnNewMessageHandler(onNewMessgaeHandler); + Instabug.setOnNewMessageHandler(onNewMessageHandler); }, @@ -680,6 +689,8 @@ module.exports = { 'IBGWillShowSurvey', willShowSurveyHandler ); + } else { + DeviceEventEmitter.addListener('IBGWillShowSurvey', willShowSurveyHandler); } Instabug.setWillShowSurveyHandler(willShowSurveyHandler); @@ -699,6 +710,8 @@ module.exports = { 'IBGDidDismissSurvey', didDismissSurveyHandler ); + } else { + DeviceEventEmitter.addListener('IBGDidDismissSurvey', didDismissSurveyHandler); } Instabug.setDidDismissSurveyHandler(didDismissSurveyHandler); From 43a466229ed6db50e7337c05b53714b44fcc8bd9 Mon Sep 17 00:00:00 2001 From: Salma ElTarzi Date: Tue, 8 Aug 2017 15:15:13 +0200 Subject: [PATCH 2/7] :bug: Fix bug where appendTags() accepted a string, and not an array of tags --- .../instabug/reactlibrary/RNInstabugReactnativeModule.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/com/instabug/reactlibrary/RNInstabugReactnativeModule.java b/android/src/main/java/com/instabug/reactlibrary/RNInstabugReactnativeModule.java index c2339d0..6bc357c 100644 --- a/android/src/main/java/com/instabug/reactlibrary/RNInstabugReactnativeModule.java +++ b/android/src/main/java/com/instabug/reactlibrary/RNInstabugReactnativeModule.java @@ -212,9 +212,12 @@ public class RNInstabugReactnativeModule extends ReactContextBaseJavaModule { * @param tags */ @ReactMethod - public void appendTags(String tags) { + public void appendTags(ReadableArray tags) { try { - String[] result = tags.split(","); + String[] result = new String[tags.size()]; + for(int i = 0; i < tags.size(); i++) { + result[i] = tags.getString(i); + } mInstabug.addTags(result); } catch (Exception e) { e.printStackTrace(); From 5f6aa905c0608370755ce7ffc6f0d4a17eae5228 Mon Sep 17 00:00:00 2001 From: Salma ElTarzi Date: Tue, 8 Aug 2017 15:17:38 +0200 Subject: [PATCH 3/7] :fire: Remove setPrimaryColor() from android --- index.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 0a555b8..e153f37 100644 --- a/index.js +++ b/index.js @@ -323,7 +323,9 @@ module.exports = { * @param {color} primaryColor A color to set the UI elements of the SDK to. */ setPrimaryColor: function (primaryColor) { - Instabug.setPrimaryColor(primaryColor); + if(Platform.OS == "ios") { + Instabug.setPrimaryColor(primaryColor); + } }, /** From 669f94e93685459cd283a00fb20a602fc56c5c3e Mon Sep 17 00:00:00 2001 From: Salma ElTarzi Date: Tue, 8 Aug 2017 15:21:44 +0200 Subject: [PATCH 4/7] :art: Refactor auto generated build method alignment. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d6d8344..7d09202 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "homepage": "https://github.com/Instabug/instabug-reactnative#readme", "rnpm": { "android": { - "packageInstance": "new RNInstabugReactnativePackage.Builder(\"YOUR_ANDROID_APPLICATION_TOKEN\",MainApplication.this)\n.setInvocationEvent(\"shake\")\n.setPrimaryColor(\"#1D82DC\")\n.setFloatingEdge(\"left\")\n.setFloatingButtonOffsetFromTop(250)\n.build()" + "packageInstance": "new RNInstabugReactnativePackage.Builder(\"YOUR_ANDROID_APPLICATION_TOKEN\",MainApplication.this)\n .setInvocationEvent(\"shake\")\n .setPrimaryColor(\"#1D82DC\")\n .setFloatingEdge(\"left\")\n .setFloatingButtonOffsetFromTop(250)\n .build()" } } } \ No newline at end of file From ce3266e3dadbf66552d4758af377ffa7da01f724 Mon Sep 17 00:00:00 2001 From: Salma ElTarzi Date: Tue, 8 Aug 2017 17:36:25 +0200 Subject: [PATCH 5/7] :art: Refactor auto generate build method alignment. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7d09202..3d5838c 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "homepage": "https://github.com/Instabug/instabug-reactnative#readme", "rnpm": { "android": { - "packageInstance": "new RNInstabugReactnativePackage.Builder(\"YOUR_ANDROID_APPLICATION_TOKEN\",MainApplication.this)\n .setInvocationEvent(\"shake\")\n .setPrimaryColor(\"#1D82DC\")\n .setFloatingEdge(\"left\")\n .setFloatingButtonOffsetFromTop(250)\n .build()" + "packageInstance": "\t\tnew RNInstabugReactnativePackage.Builder(\"YOUR_ANDROID_APPLICATION_TOKEN\",MainApplication.this)\n\t\t\t\t\t\t\t.setInvocationEvent(\"shake\")\n\t\t\t\t\t\t\t.setPrimaryColor(\"#1D82DC\")\n\t\t\t\t\t\t\t.setFloatingEdge(\"left\")\n\t\t\t\t\t\t\t.setFloatingButtonOffsetFromTop(250)\n\t\t\t\t\t\t\t.build()" } } } \ No newline at end of file From 7e3d97af275d61118c06b1b7ef885b5ab85e2122 Mon Sep 17 00:00:00 2001 From: Salma ElTarzi Date: Tue, 8 Aug 2017 17:39:20 +0200 Subject: [PATCH 6/7] :art: Convert directly from an readable array to an array of strings --- .../reactlibrary/RNInstabugReactnativeModule.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/android/src/main/java/com/instabug/reactlibrary/RNInstabugReactnativeModule.java b/android/src/main/java/com/instabug/reactlibrary/RNInstabugReactnativeModule.java index 6bc357c..f30f5d5 100644 --- a/android/src/main/java/com/instabug/reactlibrary/RNInstabugReactnativeModule.java +++ b/android/src/main/java/com/instabug/reactlibrary/RNInstabugReactnativeModule.java @@ -33,6 +33,7 @@ import com.instabug.reactlibrary.utils.ArrayUtil; import com.instabug.reactlibrary.utils.MapUtil; import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; import java.util.Locale; import java.util.Map; @@ -214,11 +215,9 @@ public class RNInstabugReactnativeModule extends ReactContextBaseJavaModule { @ReactMethod public void appendTags(ReadableArray tags) { try { - String[] result = new String[tags.size()]; - for(int i = 0; i < tags.size(); i++) { - result[i] = tags.getString(i); - } - mInstabug.addTags(result); + Object[] objectArray = ArrayUtil.toArray(tags); + String[] stringArray = Arrays.copyOf(objectArray, objectArray.length, String[].class); + mInstabug.addTags(stringArray); } catch (Exception e) { e.printStackTrace(); } From 718dfec51ee0ec05bd20997eb298f6c2cc35f503 Mon Sep 17 00:00:00 2001 From: Salma ElTarzi Date: Tue, 8 Aug 2017 17:40:12 +0200 Subject: [PATCH 7/7] :art: Add proper indentation to the method --- .../instabug/reactlibrary/RNInstabugReactnativeModule.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/com/instabug/reactlibrary/RNInstabugReactnativeModule.java b/android/src/main/java/com/instabug/reactlibrary/RNInstabugReactnativeModule.java index f30f5d5..27c105c 100644 --- a/android/src/main/java/com/instabug/reactlibrary/RNInstabugReactnativeModule.java +++ b/android/src/main/java/com/instabug/reactlibrary/RNInstabugReactnativeModule.java @@ -960,8 +960,8 @@ public class RNInstabugReactnativeModule extends ReactContextBaseJavaModule { @Override public void onSdkDismissed(DismissType issueState, Bug.Type bugType) { WritableMap params = Arguments.createMap(); - params.putString("issueState",issueState.toString()); - params.putString("bugType",bugType.toString()); + params.putString("issueState", issueState.toString()); + params.putString("bugType", bugType.toString()); sendEvent(getReactApplicationContext(), "IBGpostInvocationHandler", params); } });