public List <HelpshiftInboxMessage> GetAllInboxMessages()
        {
            synchronousWaitForHSApiCallQueue();

            try
            {
                AndroidJavaObject inboxMessagesJavaList = hsInboxJavaInstance.Call <AndroidJavaObject>("getAllInboxMessages");

                List <HelpshiftInboxMessage> messagesList = new List <HelpshiftInboxMessage>();
                int size = inboxMessagesJavaList.Call <int>("size");

                for (int i = 0; i < size; i++)
                {
                    AndroidJavaObject obj = inboxMessagesJavaList.Call <AndroidJavaObject>("get", i);
                    messagesList.Add(HelpshiftAndroidInboxMessage.createInboxMessage(obj));
                }

                return(messagesList);
            } catch (Exception e)
            {
                Debug.Log("Helpshift : Error getting all inbox messages : " + e.Message);
            }

            return(null);
        }
        public HelpshiftInboxMessage GetInboxMessage(String messageIdentifier)
        {
            try
            {
                AndroidJavaObject            inboxMessageJava = hsInboxJavaInstance.Call <AndroidJavaObject>("getInboxMessage", messageIdentifier);
                HelpshiftAndroidInboxMessage inboxMessage     = HelpshiftAndroidInboxMessage.createInboxMessage(inboxMessageJava);
                return(inboxMessage);
            } catch (Exception e)
            {
                Debug.Log("Helpshift : Error getting inbox message : " + e.Message);
            }

            return(null);
        }
        /**
         * Maps the java interface "com.helpshift.campaigns.models.InboxMessage" to a C# object.
         */
        public static HelpshiftAndroidInboxMessage createInboxMessage(AndroidJavaObject message)
        {
            if (message == null || message.GetRawObject().ToInt32() == 0)
            {
                return(null);
            }

            HelpshiftAndroidInboxMessage androidInboxMessage = new HelpshiftAndroidInboxMessage();

            androidInboxMessage.inboxMessageJavaInstance = message;
            androidInboxMessage.identifier      = message.Call <String>("getIdentifier");
            androidInboxMessage.title           = message.Call <String>("getTitle");
            androidInboxMessage.titleColor      = message.Call <String>("getTitleColor");
            androidInboxMessage.body            = message.Call <String>("getBody");
            androidInboxMessage.bodyColor       = message.Call <String>("getBodyColor");
            androidInboxMessage.backgroundColor = message.Call <String>("getBackgroundColor");
            androidInboxMessage.createdAt       = message.Call <long>("getCreatedAt");
            androidInboxMessage.expiryTimeStamp = message.Call <long>("getExpiryTimeStamp");
            androidInboxMessage.seenStatus      = message.Call <bool>("getSeenStatus");
            androidInboxMessage.readStatus      = message.Call <bool>("getReadStatus");
            androidInboxMessage.actionsCount    = message.Call <int>("getCountOfActions");

            return(androidInboxMessage);
        }
        public void inboxMessageAdded(AndroidJavaObject message)
        {
            HelpshiftAndroidInboxMessage externalMessage = HelpshiftAndroidInboxMessage.createInboxMessage(message);

            externalDelegate.InboxMessageAdded(externalMessage);
        }