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);
               }
             }
           });
 }