Skip to content

Commit

Permalink
feat(android): added display help center collections method
Browse files Browse the repository at this point in the history
  • Loading branch information
piotr pietruszewski committed Jun 14, 2021
1 parent b2b1659 commit 5b57716
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 0 deletions.
Expand Up @@ -18,6 +18,7 @@ public class IntercomErrorCodes {
public static final String DISPLAY_ARTICLE = "207";
public static final String SET_LAUNCHER_VISIBILITY = "208";
public static final String SET_BOTTOM_PADDING = "209";
public static final String DISPLAY_HELP_CENTER_COLLECTIONS = "210";
public static final String HANDLE_PUSH_MESSAGE = "301";
public static final String SEND_TOKEN_TO_INTERCOM = "302";
}
Expand Down
13 changes: 13 additions & 0 deletions android/src/main/java/com/intercomreactnative/IntercomHelpers.java
Expand Up @@ -153,6 +153,19 @@ public static List<Object> recursivelyDeconstructReadableArray(ReadableArray rea
return deconstructedList;
}

public static List<String> readableArrayToStringList(ReadableArray readableArray) {
List<String> deconstructedList = new ArrayList<>();
for (int i = 0; i < readableArray.size(); i++) {
ReadableType indexType = readableArray.getType(i);
switch (indexType) {
case String:
deconstructedList.add(i, readableArray.getString(i));
break;
}
}
return deconstructedList;
}

public static UserAttributes buildUserAttributes(ReadableMap readableMap) {
UserAttributes.Builder builder = new UserAttributes.Builder();
ReadableMapKeySetIterator iterator = readableMap.keySetIterator();
Expand Down
31 changes: 31 additions & 0 deletions android/src/main/java/com/intercomreactnative/IntercomModule.java
Expand Up @@ -11,10 +11,12 @@
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.module.annotations.ReactModule;
import com.google.firebase.messaging.RemoteMessage;

import java.util.List;
import java.util.Map;

import io.intercom.android.sdk.Intercom;
Expand Down Expand Up @@ -272,6 +274,34 @@ public void displayHelpCenter(Promise promise) {
}
}

@ReactMethod
public void displayHelpCenterCollections(ReadableArray collectionsId, Promise promise) {
try {
List<String> list = IntercomHelpers.readableArrayToStringList(collectionsId);
Intercom.client().displayHelpCenterCollections(list);
Log.d(NAME, "displayHelpCenterCollections");
promise.resolve(true);
} catch (Exception err) {
Log.e(NAME, "displayHelpCenterCollections error:");
Log.e(NAME, err.toString());
promise.reject(IntercomErrorCodes.DISPLAY_HELP_CENTER_COLLECTIONS, err.toString());
}
}

@ReactMethod
public void displayHelpCenterCollections(ReadableArray collectionsId, Promise promise) {
try {
List<String> list = IntercomHelpers.readableArrayToStringList(collectionsId);
Intercom.client().displayHelpCenterCollections(list);
Log.d(NAME, "displayHelpCenterCollections");
promise.resolve(true);
} catch (Exception err) {
Log.e(NAME, "displayHelpCenterCollections error:");
Log.e(NAME, err.toString());
promise.reject(IntercomErrorCodes.DISPLAY_HELP_CENTER_COLLECTIONS, err.toString());
}
}

@ReactMethod
public void displayCarousel(String carouselId, Promise promise) {
try {
Expand All @@ -284,6 +314,7 @@ public void displayCarousel(String carouselId, Promise promise) {
promise.reject(IntercomErrorCodes.DISPLAY_CAROUSEL, err.toString());
}
}

@ReactMethod
public void displayArticle(String articleId, Promise promise) {
try {
Expand Down
8 changes: 8 additions & 0 deletions example/src/App.tsx
Expand Up @@ -19,6 +19,7 @@ import type { Registration } from '../../lib/typescript';
const CAROUSEL_ID = ''; //Provide carouselId
const EVENT_NAME = ''; //Provide eventName
const ARTICLE_ID = ''; //Provide articleId
const COLLECTIONS: string[] = []; //Provide help center collections ids

export default function App() {
const [count, setCount] = useState<number>(0);
Expand Down Expand Up @@ -163,6 +164,13 @@ export default function App() {
Intercom.displayHelpCenter();
}}
/>
<Button
disabled={!loggedUser}
title={'Display Help Center Collections'}
onPress={() => {
Intercom.displayHelpCenterCollections(COLLECTIONS);
}}
/>
<Button
disabled={!loggedUser}
title={'Display Carousel'}
Expand Down

0 comments on commit 5b57716

Please sign in to comment.