diff --git a/android/.idea/gradle.xml b/android/.idea/gradle.xml index f5f1ec4..57ec115 100644 --- a/android/.idea/gradle.xml +++ b/android/.idea/gradle.xml @@ -1,13 +1,17 @@ + diff --git a/android/src/main/java/com/reactlibrary/RNWootricModule.java b/android/src/main/java/com/reactlibrary/RNWootricModule.java index 2d0bee4..9998a33 100644 --- a/android/src/main/java/com/reactlibrary/RNWootricModule.java +++ b/android/src/main/java/com/reactlibrary/RNWootricModule.java @@ -1,5 +1,8 @@ package com.reactlibrary; +import android.app.Activity; +import android.util.Log; + import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.bridge.ReactContextBaseJavaModule; import com.facebook.react.bridge.ReactMethod; @@ -54,66 +57,105 @@ public String getName() { @ReactMethod public void configureWithClientID(String clientId, String accountToken) { - wootric = Wootric.init(getCurrentActivity(), clientId, accountToken); + Activity currentActivity = getCurrentActivity(); + + if (currentActivity == null) { + Log.e("WOOTRIC", "Current activity is null"); + return; + } + + try { + wootric = Wootric.init(currentActivity, clientId, accountToken); + } catch (Exception e) { + Log.e("WOOTRIC", e.toString()); + } } @ReactMethod public void setEndUserEmail(String email) { + if (wootric == null) return; + wootric.setEndUserEmail(email); } @ReactMethod public void setSurveyImmediately(boolean surveyImmediately) { + if (wootric == null) return; + wootric.setSurveyImmediately(surveyImmediately); } @ReactMethod public void setEndUserCreatedAt(double createdAt) { + if (wootric == null) return; + wootric.setEndUserCreatedAt((long) createdAt); } @ReactMethod public void setEndUserExternalId(String externalId) { + if (wootric == null) return; + wootric.setEndUserExternalId(externalId); } @ReactMethod public void setEndUserPhoneNumber(String phoneNumber) { + if (wootric == null) return; + wootric.setEndUserPhoneNumber(phoneNumber); } @ReactMethod public void setEndUserProperties(ReadableMap properties) { + if (wootric == null) return; + wootric.setProperties(toHashMap(properties)); } @ReactMethod public void showOptOut(boolean flag) { + if (wootric == null) return; + wootric.setShowOptOut(flag); } @ReactMethod public void setFirstSurveyAfter(int value) { + if (wootric == null) return; + wootric.setFirstSurveyDelay(value); } @ReactMethod public void setCustomLanguage(String language) { + if (wootric == null) return; + wootric.setLanguageCode(language); } @ReactMethod public void setCustomProductName(String productName) { + if (wootric == null) return; + wootric.setProductName(productName); } @ReactMethod public void setCustomAudience(String audience) { + if (wootric == null) return; + wootric.setRecommendTarget(audience); } @ReactMethod public void showSurvey() { - wootric.survey(); + if (wootric == null) return; + + try { + wootric.survey(); + } catch (Exception e) { + Log.e("WOOTRIC", e.toString()); + } } } diff --git a/android/src/main/java/com/reactlibrary/RNWootricPackage.java b/android/src/main/java/com/reactlibrary/RNWootricPackage.java index 428b352..76a7d49 100644 --- a/android/src/main/java/com/reactlibrary/RNWootricPackage.java +++ b/android/src/main/java/com/reactlibrary/RNWootricPackage.java @@ -6,21 +6,27 @@ import com.facebook.react.bridge.ReactApplicationContext; import com.facebook.react.uimanager.ViewManager; -import java.util.Arrays; +import java.util.ArrayList; import java.util.Collections; import java.util.List; public class RNWootricPackage implements ReactPackage { - @Override - public List createNativeModules(ReactApplicationContext reactContext) { - return Arrays.asList(new RNWootricModule(reactContext)); - } - // Deprecated from RN 0.47 public List> createJSModules() { return Collections.emptyList(); } + @Override + public List createNativeModules( + ReactApplicationContext reactContext) { + List modules = new ArrayList<>(); + + modules.add(new RNWootricModule(reactContext)); + + return modules; + } + + @Override public List createViewManagers(ReactApplicationContext reactContext) { return Collections.emptyList();