public String getConversationId() { return getConversationData().getConversationId(); }
public String getConversationToken() { return getConversationData().getConversationToken(); }
public Device getDevice() { return getConversationData().getDevice(); }
private void testConversationListeners(ConversationData data) { data.setDataChangedListener(new DataChangedListener() { @Override public void onDataChanged() { data.setConversationToken("foo"); assertTrue(listenerFired); listenerFired = false; data.setConversationId("foo"); assertTrue(listenerFired); listenerFired = false; data.setLastSeenSdkVersion("foo"); assertTrue(listenerFired); listenerFired = false; data.setMessageCenterFeatureUsed(true); assertTrue(listenerFired); listenerFired = false; data.setMessageCenterWhoCardPreviouslyDisplayed(true); assertTrue(listenerFired); listenerFired = false; data.setMessageCenterPendingMessage("foo"); assertTrue(listenerFired); listenerFired = false; data.setMessageCenterPendingAttachments("foo");
@Test public void testSerialization() { ConversationData expected = new ConversationData(); expected.setConversationId("jvnuveanesndndnadldbj"); expected.setConversationToken("watgsiovncsagjmcneiusdolnfcs"); expected.setLastSeenSdkVersion("mdvnjfuoivsknbjgfaoskdl"); expected.setMessageCenterFeatureUsed(true); expected.setMessageCenterWhoCardPreviouslyDisplayed(false); expected.setMessageCenterPendingMessage("`~!@#$%^&*(_+{}:\"'<>?!@#$%^&*()_+{}|:<>?"); expected.setMessageCenterPendingAttachments("NVBUOIVKNBGFANWKSLBJK"); expected.setTargets("MNCIUFIENVBFKDV"); expected.setInteractions("nkjvdfikjbffasldnbnfldfmfd"); expected.setInteractionExpiration(1234567894567890345L); assertEquals(expected.getConversationId(), actual.getConversationId()); assertEquals(expected.getConversationToken(), actual.getConversationToken()); assertEquals(expected.getLastSeenSdkVersion(), actual.getLastSeenSdkVersion()); assertEquals(expected.isMessageCenterFeatureUsed(), actual.isMessageCenterFeatureUsed()); assertEquals(expected.isMessageCenterWhoCardPreviouslyDisplayed(), actual.isMessageCenterWhoCardPreviouslyDisplayed()); assertEquals(expected.getMessageCenterPendingMessage(), actual.getMessageCenterPendingMessage()); assertEquals(expected.getMessageCenterPendingAttachments(), actual.getMessageCenterPendingAttachments()); assertEquals(expected.getTargets(), actual.getTargets()); assertEquals(expected.getInteractions(), actual.getInteractions()); assertEquals(expected.getInteractionExpiration(), actual.getInteractionExpiration(), 0.000001);
public Conversation(File conversationDataFile, File conversationMessagesFile, @NonNull EncryptionKey encryptionKey) { if (conversationDataFile == null) { throw new IllegalArgumentException("Data file is null"); } if (conversationMessagesFile == null) { throw new IllegalArgumentException("Messages file is null"); } if (encryptionKey == null) { throw new IllegalArgumentException("Data encryption key is null"); } this.conversationDataFile = conversationDataFile; this.conversationMessagesFile = conversationMessagesFile; this.encryptionKey = encryptionKey; conversationData = new ConversationData(); messageStore = new FileMessageStore(conversationMessagesFile, encryptionKey); messageStore.migrateLegacyStorage(); messageManager = new MessageManager(this, messageStore); // it's important to initialize message manager in a constructor since other SDK parts depend on it via Apptentive singleton }
public double getInteractionExpiration() { return getConversationData().getInteractionExpiration(); }
public String getLastSeenSdkVersion() { return getConversationData().getLastSeenSdkVersion(); }
public Person getLastSentPerson() { return getConversationData().getLastSentPerson(); }
public EventData getEventData() { return getConversationData().getEventData(); }
public Device getLastSentDevice() { return getConversationData().getLastSentDevice(); }
public String getInteractions() { return getConversationData().getInteractions(); }
@Test public void testDataChangeListeners() throws Exception { ConversationData data = new ConversationData(); testConversationListeners(data); }
@Test public void testDataChangeListenersWhenDeserialized() throws Exception { ConversationData data = new ConversationData(); File conversationFile = new File(conversationFolder.getRoot(), "conversation.bin"); new FileSerializer(conversationFile).serialize(data); data = (ConversationData) new FileSerializer(conversationFile).deserialize(); testConversationListeners(data); }