mirror of
https://github.com/M66B/FairEmail.git
synced 2024-12-25 01:06:04 +00:00
Fixed orphan messages (2)
This commit is contained in:
parent
86c524c7c6
commit
457ea09fa3
3 changed files with 2814 additions and 14 deletions
2801
app/schemas/eu.faircode.email.DB/248.json
Normal file
2801
app/schemas/eu.faircode.email.DB/248.json
Normal file
File diff suppressed because it is too large
Load diff
|
@ -68,7 +68,7 @@ import javax.mail.internet.InternetAddress;
|
|||
// https://developer.android.com/topic/libraries/architecture/room.html
|
||||
|
||||
@Database(
|
||||
version = 247,
|
||||
version = 248,
|
||||
entities = {
|
||||
EntityIdentity.class,
|
||||
EntityAccount.class,
|
||||
|
@ -2481,13 +2481,17 @@ public abstract class DB extends RoomDatabase {
|
|||
@Override
|
||||
public void migrate(@NonNull SupportSQLiteDatabase db) {
|
||||
logMigration(startVersion, endVersion);
|
||||
EntityMessage.convert(context, true);
|
||||
}
|
||||
}).addMigrations(new Migration(246, 247) {
|
||||
@Override
|
||||
public void migrate(@NonNull SupportSQLiteDatabase db) {
|
||||
logMigration(startVersion, endVersion);
|
||||
EntityMessage.convert(context, false);
|
||||
}
|
||||
}).addMigrations(new Migration(247, 248) {
|
||||
@Override
|
||||
public void migrate(@NonNull SupportSQLiteDatabase db) {
|
||||
logMigration(startVersion, endVersion);
|
||||
EntityMessage.convert(context);
|
||||
}
|
||||
}).addMigrations(new Migration(998, 999) {
|
||||
@Override
|
||||
|
|
|
@ -578,27 +578,22 @@ public class EntityMessage implements Serializable {
|
|||
|
||||
static File getFile(Context context, Long id) {
|
||||
File root = new File(context.getFilesDir(), "messages");
|
||||
File dir = Helper.ensureExists(new File(root, Long.toString(id / 1000)));
|
||||
File dir = Helper.ensureExists(new File(root, "D" + (id / 1000)));
|
||||
return new File(dir, id.toString());
|
||||
}
|
||||
|
||||
static void convert(Context context, boolean silent) {
|
||||
static void convert(Context context) {
|
||||
File root = new File(context.getFilesDir(), "messages");
|
||||
File[] files = root.listFiles();
|
||||
if (files == null)
|
||||
return;
|
||||
List<File> files = Helper.listFiles(root);
|
||||
for (File file : files)
|
||||
if (file.isFile())
|
||||
try {
|
||||
long id = Long.parseLong(file.getName());
|
||||
File target = getFile(context, id);
|
||||
Helper.copy(file, target);
|
||||
file.delete();
|
||||
if (!file.renameTo(target))
|
||||
throw new IllegalArgumentException("Failed moving " + file);
|
||||
} catch (Throwable ex) {
|
||||
if (silent)
|
||||
Log.i(ex);
|
||||
else
|
||||
Log.e(ex);
|
||||
Log.e(ex);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue