/** * Delete the native stored acked users if this conversation deleted. * * @param conversation */ public void delete(EMConversation conversation) { if (!conversation.isGroup()) { return; } // Remove the memory data. String conversationId = conversation.conversationId(); dataCache.remove(conversationId); // Remove the preferences data. String keyPrefix = generateKey(conversationId, ""); Map<String, ?> prefsMap = dataPrefs.getAll(); Set<String> keySet = prefsMap.keySet(); for (String key : keySet) { if (key.startsWith(keyPrefix)) { prefsEditor.remove(key); } } prefsEditor.commit(); }
/** * Delete the native stored acked users if this message deleted. * * @param message */ public void delete(EMMessage message) { if (!validateMessage(message)) { return; } String conversationId = message.getTo(); String msgId = message.getMsgId(); // Remove the memory data. LruCache<String, List<String>> msgCache = dataCache.get(conversationId); if (msgCache != null) { msgCache.remove(msgId); } // Delete the data in preferences. String key = generateKey(conversationId, msgId); if (dataPrefs.contains(key)) { prefsEditor.remove(key).commit(); } }
String key = generateKey(conversationId, msgId);
String key = generateKey(conversationId, msgId); Set<String> set = new HashSet<>(); set.addAll(userList);
@Test public void testHandleAckMessage() throws Exception { assertNotNull(helper); // Data will store in memory. helper.handleAckMessage(createDingAckMessage("1", "-1", "user1")); assertEquals(helper.getDataCache().size(), 1); LruCache<String, List<String>> msgCache = helper.getDataCache().get("1"); assertNotNull(msgCache); List<String> userList = msgCache.get("-1"); assertNotNull(userList); assertEquals(userList.size(), 1); assertEquals(userList.get(0), "user1"); // Data will store in SharedPreferences too. assertTrue(helper.getDataPrefs().contains(helper.generateKey("1", "-1"))); }
@Test public void testDelete() throws Exception { testHandleAckMessage(); helper.delete(createDingMessage("1", "-1")); // Data removed from memory. LruCache<String, List<String>> msgCache = helper.getDataCache().get("1"); assertTrue(msgCache.get("-1") == null); // Data removed from SharedPreferences. assertTrue(!helper.getDataPrefs().contains(helper.generateKey("1", "-1"))); }