Cleanup found messages

This commit is contained in:
M66B
2018-09-04 14:07:50 +00:00
parent 13de85a3d3
commit 75697fe57d
5 changed files with 918 additions and 3 deletions

View File

@@ -45,7 +45,7 @@ import androidx.sqlite.db.SupportSQLiteDatabase;
// https://developer.android.com/topic/libraries/architecture/room.html
@Database(
version = 7,
version = 8,
entities = {
EntityIdentity.class,
EntityAccount.class,
@@ -161,6 +161,13 @@ public abstract class DB extends RoomDatabase {
db.execSQL("CREATE INDEX `index_log_time` ON `log` (`time`)");
}
})
.addMigrations(new Migration(7, 8) {
@Override
public void migrate(SupportSQLiteDatabase db) {
Log.i(Helper.TAG, "DB migration from version " + startVersion + " to " + endVersion);
db.execSQL("CREATE INDEX `index_message_ui_found` ON `message` (`ui_found`)");
}
})
.build();
}

View File

@@ -174,8 +174,11 @@ public interface DaoMessage {
int deleteMessage(long folder, long uid);
@Query("DELETE FROM message WHERE folder = :folder")
void deleteMessages(long folder);
int deleteMessages(long folder);
@Query("DELETE FROM message WHERE folder = :folder AND received < :received AND NOT uid IS NULL")
int deleteMessagesBefore(long folder, long received);
@Query("DELETE FROM message WHERE ui_found")
int deleteFoundMessages();
}

View File

@@ -63,7 +63,8 @@ import static androidx.room.ForeignKey.CASCADE;
@Index(value = {"thread"}),
@Index(value = {"received"}),
@Index(value = {"ui_seen"}),
@Index(value = {"ui_hide"})
@Index(value = {"ui_hide"}),
@Index(value = {"ui_found"})
}
)
public class EntityMessage implements Serializable {

View File

@@ -94,6 +94,11 @@ public class JobDaily extends JobService {
int logs = db.log().deleteLogs(before);
Log.i(Helper.TAG, "Deleted logs=" + logs);
// Cleanup found messages
Log.i(Helper.TAG, "Cleanup found messages");
int found = db.message().deleteFoundMessages();
Log.i(Helper.TAG, "Deleted found messages=" + found);
Log.i(Helper.TAG, "End daily job");
}
});