@Override public synchronized List<ApptentiveMessage> getAllMessages() throws Exception { fetchEntries(); List<ApptentiveMessage> apptentiveMessages = new ArrayList<>(); for (MessageEntry entry : messageEntries) { ApptentiveMessage apptentiveMessage = MessageFactory.fromJson(entry.json); if (apptentiveMessage == null) { ApptentiveLog.e(MESSAGES, "Error parsing Record json from database: %s", entry.json); continue; } apptentiveMessage.setState(ApptentiveMessage.State.parse(entry.state)); apptentiveMessage.setRead(entry.isRead); apptentiveMessages.add(apptentiveMessage); } return apptentiveMessages; }
@Override protected Void doInBackground(ApptentiveMessage... messages) { final ApptentiveMessage message = messages[0]; message.setRead(true); JSONObject data = new JSONObject(); try { data.put("message_id", message.getId()); data.put("message_type", message.getMessageType().name()); } catch (JSONException e) { logException(e); } fragment.engageInternal(MessageCenterInteraction.EVENT_NAME_READ, data.toString()); dispatchConversationTask(new ConversationDispatchTask() { @Override protected boolean execute(Conversation conversation) { MessageManager mgr = conversation.getMessageManager(); if (mgr != null) { mgr.updateMessage(message); mgr.notifyHostUnreadMessagesListeners(mgr.getUnreadMessageCount()); } return false; } }, "update message"); return null; }
private List<ApptentiveMessage> getAllMessages(SQLiteDatabase db) { List<ApptentiveMessage> messages = new ArrayList<>(); Cursor cursor = null; try { cursor = db.rawQuery(SQL_SELECT_MESSAGES_IN_ORDER, null); while (cursor.moveToNext()) { String json = cursor.getString(6); ApptentiveMessage message = MessageFactory.fromJson(json); if (message == null) { ApptentiveLog.e(MESSAGES, "Error parsing Record json from database: %s", json); continue; } message.setId(cursor.getString(1)); message.setCreatedAt(cursor.getDouble(2)); message.setNonce(cursor.getString(3)); message.setState(ApptentiveMessage.State.parse(cursor.getString(4))); message.setRead(cursor.getInt(5) == TRUE); messages.add(message); } } finally { ensureClosed(cursor); } return messages; } }
apptentiveMessage.setRead(true); } else { if (messageOnToast == null) {