@Override public Object deserialize() throws SerializerException { return deserialize(file); }
void loadConversationData() throws SerializerException { long start = System.currentTimeMillis(); FileSerializer serializer = new EncryptedFileSerializer(conversationDataFile, encryptionKey); ApptentiveLog.d(CONVERSATION, "Loading conversation data..."); conversationData = (ConversationData) serializer.deserialize(); ApptentiveLog.d(CONVERSATION, "Conversation data loaded (took %d ms)", System.currentTimeMillis() - start); }
/** * Attempts to migrate from the legacy clear text format. * * @return <code>false</code> if failed. */ boolean migrateConversationData() throws SerializerException { long start = System.currentTimeMillis(); File legacyConversationDataFile = Util.getUnencryptedFilename(conversationDataFile); if (legacyConversationDataFile.exists()) { try { ApptentiveLog.d(CONVERSATION, "Migrating %sconversation data...", hasState(LOGGED_IN) ? "encrypted " : ""); FileSerializer serializer = isAuthenticated() ? new EncryptedFileSerializer(legacyConversationDataFile, getEncryptionKey()) : new FileSerializer(legacyConversationDataFile); conversationData = (ConversationData) serializer.deserialize(); ApptentiveLog.d(CONVERSATION, "Conversation data migrated (took %d ms)", System.currentTimeMillis() - start); return true; } finally { boolean deleted = legacyConversationDataFile.delete(); ApptentiveLog.d(CONVERSATION, "Legacy conversation file deleted: %b", deleted); } } return false; }
@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); }