Search in sources :

Example 21 with WritableArray

use of com.facebook.react.bridge.WritableArray in project stringee-react-native by stringeecom.

the class Utils method getConversationMap.

public static WritableMap getConversationMap(Conversation conversation) {
    WritableMap conversationMap = Arguments.createMap();
    conversationMap.putString("id", conversation.getId());
    conversationMap.putString("localId", conversation.getLocalId());
    conversationMap.putString("name", conversation.getName());
    conversationMap.putBoolean("isDistinct", conversation.isDistinct());
    conversationMap.putBoolean("isGroup", conversation.isGroup());
    conversationMap.putDouble("updatedAt", conversation.getUpdateAt());
    conversationMap.putString("lastMsgSender", conversation.getLastMsgSender());
    conversationMap.putString("text", conversation.getText());
    conversationMap.putInt("lastMsgType", conversation.getLastMsgType().getValue());
    conversationMap.putInt("unreadCount", conversation.getTotalUnread());
    conversationMap.putString("lastMsgId", conversation.getLastMsgId());
    conversationMap.putString("creator", conversation.getCreator());
    conversationMap.putDouble("created", conversation.getCreateAt());
    conversationMap.putDouble("lastMsgSeq", conversation.getLastMsgSeqReceived());
    conversationMap.putDouble("lastMsgCreatedAt", conversation.getLastTimeNewMsg());
    conversationMap.putInt("lastMsgState", conversation.getLastMsgState().getValue());
    if (conversation.getLastMsg() != null) {
        try {
            Bundle bundle = jsonToBundle(conversation.getLastMsg());
            WritableMap lastMsgMap = Arguments.fromBundle(bundle);
            conversationMap.putMap("text", lastMsgMap);
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
    List<User> participants = conversation.getParticipants();
    WritableArray participantsMap = Arguments.createArray();
    for (int j = 0; j < participants.size(); j++) {
        WritableMap userMap = getUserMap(participants.get(j));
        participantsMap.pushMap(userMap);
    }
    conversationMap.putArray("participants", participantsMap);
    String pinMsgId = conversation.getPinnedMsgId();
    if (pinMsgId != null) {
        if (!TextUtils.isEmpty(pinMsgId)) {
            conversationMap.putString("pinMsgId", pinMsgId);
        } else {
            conversationMap.putString("pinMsgId", null);
        }
    } else {
        conversationMap.putString("pinMsgId", null);
    }
    return conversationMap;
}
Also used : WritableMap(com.facebook.react.bridge.WritableMap) User(com.stringee.messaging.User) WritableArray(com.facebook.react.bridge.WritableArray) Bundle(android.os.Bundle) JSONException(org.json.JSONException)

Example 22 with WritableArray

use of com.facebook.react.bridge.WritableArray in project stringee-react-native by stringeecom.

the class Utils method getChatProfileMap.

public static WritableMap getChatProfileMap(ChatProfile chatProfile) {
    WritableMap conversationMap = Arguments.createMap();
    conversationMap.putString("id", chatProfile.getId());
    conversationMap.putString("background", chatProfile.getBackground());
    conversationMap.putString("hour", chatProfile.getBusinessHour());
    conversationMap.putString("language", chatProfile.getLanguage());
    conversationMap.putString("logoUrl", chatProfile.getLogoUrl());
    conversationMap.putString("popupAnswerUrl", chatProfile.getPopupAnswerUrl());
    conversationMap.putString("portal", chatProfile.getPortalId());
    conversationMap.putBoolean("autoCreateTicket", chatProfile.isAutoCreateTicket());
    conversationMap.putBoolean("enabled", chatProfile.isEnabledBusinessHour());
    conversationMap.putBoolean("facebookAsLivechat", chatProfile.isFacebookAsLivechat());
    conversationMap.putInt("projectId", chatProfile.getProjectId());
    conversationMap.putBoolean("zaloAsLivechat", chatProfile.isZaloAsLivechat());
    List<Queue> queues = chatProfile.getQueues();
    WritableArray queuesMap = Arguments.createArray();
    for (int j = 0; j < queues.size(); j++) {
        WritableMap queueMap = getQueueMap(queues.get(j));
        queuesMap.pushMap(queueMap);
    }
    conversationMap.putArray("queues", queuesMap);
    return conversationMap;
}
Also used : WritableMap(com.facebook.react.bridge.WritableMap) WritableArray(com.facebook.react.bridge.WritableArray) Queue(com.stringee.messaging.Queue)

Example 23 with WritableArray

use of com.facebook.react.bridge.WritableArray in project stringee-react-native by stringeecom.

the class RNStringeeClientModule method getLastUnreadConversations.

@ReactMethod
public void getLastUnreadConversations(final String instanceId, final int count, final Callback callback) {
    StringeeClient mClient = StringeeManager.getInstance().getClientsMap().get(instanceId);
    if (mClient == null) {
        callback.invoke(false, -1, "StringeeClient is not initialized");
        return;
    }
    mClient.getLastUnreadConversations(count, new CallbackListener<List<Conversation>>() {

        @Override
        public void onSuccess(List<Conversation> conversations) {
            WritableArray params = Arguments.createArray();
            for (int i = 0; i < conversations.size(); i++) {
                WritableMap param = Utils.getConversationMap(conversations.get(i));
                params.pushMap(param);
            }
            callback.invoke(true, 0, "Success", params);
        }

        @Override
        public void onError(StringeeError error) {
            callback.invoke(false, error.getCode(), error.getMessage());
        }
    });
}
Also used : WritableMap(com.facebook.react.bridge.WritableMap) WritableArray(com.facebook.react.bridge.WritableArray) StringeeError(com.stringee.exception.StringeeError) StringeeClient(com.stringee.StringeeClient) ArrayList(java.util.ArrayList) List(java.util.List) Conversation(com.stringee.messaging.Conversation) ReactMethod(com.facebook.react.bridge.ReactMethod)

Example 24 with WritableArray

use of com.facebook.react.bridge.WritableArray in project stringee-react-native by stringeecom.

the class RNStringeeClientModule method getUnreadConversationsAfter.

@ReactMethod
public void getUnreadConversationsAfter(final String instanceId, final double datetime, final int count, final Callback callback) {
    StringeeClient mClient = StringeeManager.getInstance().getClientsMap().get(instanceId);
    if (mClient == null) {
        callback.invoke(false, -1, "StringeeClient is not initialized");
        return;
    }
    mClient.getUnreadConversationsAfter((long) datetime, count, new CallbackListener<List<Conversation>>() {

        @Override
        public void onSuccess(List<Conversation> conversations) {
            WritableArray params = Arguments.createArray();
            for (int i = 0; i < conversations.size(); i++) {
                WritableMap param = Utils.getConversationMap(conversations.get(i));
                params.pushMap(param);
            }
            callback.invoke(true, 0, "Success", params);
        }

        @Override
        public void onError(StringeeError error) {
            callback.invoke(false, error.getCode(), error.getMessage());
        }
    });
}
Also used : WritableMap(com.facebook.react.bridge.WritableMap) WritableArray(com.facebook.react.bridge.WritableArray) StringeeError(com.stringee.exception.StringeeError) StringeeClient(com.stringee.StringeeClient) ArrayList(java.util.ArrayList) List(java.util.List) Conversation(com.stringee.messaging.Conversation) ReactMethod(com.facebook.react.bridge.ReactMethod)

Example 25 with WritableArray

use of com.facebook.react.bridge.WritableArray in project stringee-react-native by stringeecom.

the class RNStringeeClientModule method getLocalMessages.

@ReactMethod
public void getLocalMessages(final String instanceId, final String convId, final int count, final Callback callback) {
    StringeeClient mClient = StringeeManager.getInstance().getClientsMap().get(instanceId);
    if (mClient == null) {
        callback.invoke(false, -1, "StringeeClient is not initialized");
        return;
    }
    if (convId == null) {
        callback.invoke(false, -2, "Conversation id can not be null");
        return;
    }
    mClient.getConversationFromServer(convId, new CallbackListener<Conversation>() {

        @Override
        public void onSuccess(Conversation conversation) {
            conversation.getLocalMessages(mClient, count, new CallbackListener<List<Message>>() {

                @Override
                public void onSuccess(List<Message> messages) {
                    WritableArray params = Arguments.createArray();
                    for (int i = 0; i < messages.size(); i++) {
                        WritableMap param = Utils.getMessageMap(messages.get(i));
                        params.pushMap(param);
                    }
                    callback.invoke(true, 0, "Success", params);
                }

                @Override
                public void onError(StringeeError error) {
                    callback.invoke(false, error.getCode(), error.getMessage());
                }
            });
        }

        @Override
        public void onError(StringeeError error) {
            callback.invoke(false, error.getCode(), error.getMessage());
        }
    });
}
Also used : CallbackListener(com.stringee.messaging.listeners.CallbackListener) WritableMap(com.facebook.react.bridge.WritableMap) Message(com.stringee.messaging.Message) WritableArray(com.facebook.react.bridge.WritableArray) StringeeError(com.stringee.exception.StringeeError) StringeeClient(com.stringee.StringeeClient) Conversation(com.stringee.messaging.Conversation) ArrayList(java.util.ArrayList) List(java.util.List) ReactMethod(com.facebook.react.bridge.ReactMethod)

Aggregations

WritableArray (com.facebook.react.bridge.WritableArray)143 WritableMap (com.facebook.react.bridge.WritableMap)120 ReactMethod (com.facebook.react.bridge.ReactMethod)40 ArrayList (java.util.ArrayList)38 List (java.util.List)25 WritableNativeMap (com.facebook.react.bridge.WritableNativeMap)20 StringeeClient (com.stringee.StringeeClient)20 StringeeError (com.stringee.exception.StringeeError)20 Conversation (com.stringee.messaging.Conversation)20 WritableNativeArray (com.facebook.react.bridge.WritableNativeArray)18 Text (com.google.mlkit.vision.text.Text)10 ReadableMap (com.facebook.react.bridge.ReadableMap)9 CallbackListener (com.stringee.messaging.listeners.CallbackListener)9 SuppressLint (android.annotation.SuppressLint)7 Bundle (android.os.Bundle)7 Handler (android.os.Handler)7 Nullable (androidx.annotation.Nullable)7 Face (com.google.mlkit.vision.face.Face)7 Message (com.stringee.messaging.Message)7 JSONException (org.json.JSONException)7