public void loadRecentHashtags() { MessagesStorage.getInstance() .getStorageQueue() .postRunnable( new Runnable() { @Override public void run() { try { SQLiteCursor cursor = MessagesStorage.getInstance() .getDatabase() .queryFinalized("SELECT id, date FROM hashtag_recent_v2 WHERE 1"); final ArrayList<HashtagObject> arrayList = new ArrayList<>(); final HashMap<String, HashtagObject> hashMap = new HashMap<>(); while (cursor.next()) { HashtagObject hashtagObject = new HashtagObject(); hashtagObject.hashtag = cursor.stringValue(0); hashtagObject.date = cursor.intValue(1); arrayList.add(hashtagObject); hashMap.put(hashtagObject.hashtag, hashtagObject); } cursor.dispose(); Collections.sort( arrayList, new Comparator<HashtagObject>() { @Override public int compare(HashtagObject lhs, HashtagObject rhs) { if (lhs.date < rhs.date) { return 1; } else if (lhs.date > rhs.date) { return -1; } else { return 0; } } }); AndroidUtilities.runOnUIThread( new Runnable() { @Override public void run() { setHashtags(arrayList, hashMap); } }); } catch (Exception e) { FileLog.e("tmessages", e); } } }); }
private void putRecentHashtags(final ArrayList<HashtagObject> arrayList) { MessagesStorage.getInstance() .getStorageQueue() .postRunnable( new Runnable() { @Override public void run() { try { MessagesStorage.getInstance().getDatabase().beginTransaction(); SQLitePreparedStatement state = MessagesStorage.getInstance() .getDatabase() .executeFast("REPLACE INTO hashtag_recent_v2 VALUES(?, ?)"); for (int a = 0; a < arrayList.size(); a++) { if (a == 100) { break; } HashtagObject hashtagObject = arrayList.get(a); state.requery(); state.bindString(1, hashtagObject.hashtag); state.bindInteger(2, hashtagObject.date); state.step(); } state.dispose(); MessagesStorage.getInstance().getDatabase().commitTransaction(); if (arrayList.size() >= 100) { MessagesStorage.getInstance().getDatabase().beginTransaction(); for (int a = 100; a < arrayList.size(); a++) { MessagesStorage.getInstance() .getDatabase() .executeFast( "DELETE FROM hashtag_recent_v2 WHERE id = '" + arrayList.get(a).hashtag + "'") .stepThis() .dispose(); } MessagesStorage.getInstance().getDatabase().commitTransaction(); } } catch (Exception e) { FileLog.e("tmessages", e); } } }); }
public void clearRecentHashtags() { hashtags = new ArrayList<>(); hashtagsByText = new HashMap<>(); MessagesStorage.getInstance() .getStorageQueue() .postRunnable( new Runnable() { @Override public void run() { try { MessagesStorage.getInstance() .getDatabase() .executeFast("DELETE FROM hashtag_recent_v2 WHERE 1") .stepThis() .dispose(); } catch (Exception e) { FileLog.e("tmessages", e); } } }); }