Exemplo n.º 1
0
  public void clear() throws MessagingException {
    if (K9.DEBUG) Log.i(K9.LOG_TAG, "Before prune size = " + getSize());

    deleteAllMessageDataFromDisk();
    if (K9.DEBUG) {
      Log.i(K9.LOG_TAG, "After prune / before compaction size = " + getSize());

      Log.i(K9.LOG_TAG, "Before clear folder count = " + getFolderCount());
      Log.i(K9.LOG_TAG, "Before clear message count = " + getMessageCount());

      Log.i(K9.LOG_TAG, "After prune / before clear size = " + getSize());
    }

    database.execute(
        false,
        new DbCallback<Void>() {
          @Override
          public Void doDbWork(final SQLiteDatabase db) {
            // We don't care about threads of deleted messages, so delete the whole table.
            db.delete("threads", null, null);

            // Don't delete deleted messages. They are essentially placeholders for UIDs of messages
            // that have
            // been deleted locally.
            db.delete("messages", "deleted = 0", null);
            return null;
          }
        });

    compact();

    if (K9.DEBUG) {
      Log.i(K9.LOG_TAG, "After clear message count = " + getMessageCount());

      Log.i(K9.LOG_TAG, "After clear size = " + getSize());
    }
  }