mirror of
https://github.com/M66B/FairEmail.git
synced 2026-01-03 19:34:15 +01:00
Store folder is subscribed
This commit is contained in:
1723
app/schemas/eu.faircode.email.DB/74.json
Normal file
1723
app/schemas/eu.faircode.email.DB/74.json
Normal file
File diff suppressed because it is too large
Load Diff
@@ -704,6 +704,7 @@ class Core {
|
||||
Map<String, List<EntityFolder>> parentFolders = new HashMap<>();
|
||||
for (Folder ifolder : ifolders) {
|
||||
String fullName = ifolder.getFullName();
|
||||
boolean subscribed = ifolder.isSubscribed();
|
||||
String[] attr = attrs.get(ifolder);
|
||||
String type = EntityFolder.getType(attr, fullName);
|
||||
|
||||
@@ -725,6 +726,7 @@ class Core {
|
||||
folder.display = display;
|
||||
folder.type = (EntityFolder.SYSTEM.equals(type) ? type : EntityFolder.USER);
|
||||
folder.synchronize = false;
|
||||
folder.subscribed = subscribed;
|
||||
folder.poll = ("imap.gmail.com".equals(account.host));
|
||||
folder.sync_days = EntityFolder.DEFAULT_SYNC;
|
||||
folder.keep_days = EntityFolder.DEFAULT_KEEP;
|
||||
@@ -733,6 +735,9 @@ class Core {
|
||||
} else {
|
||||
Log.i(folder.name + " exists type=" + folder.type);
|
||||
|
||||
if (folder.subscribed == null || !folder.subscribed.equals(subscribed))
|
||||
db.folder().setFolderSubscribed(folder.id, subscribed);
|
||||
|
||||
if (folder.display == null) {
|
||||
if (display != null) {
|
||||
db.folder().setFolderDisplay(folder.id, display);
|
||||
|
||||
@@ -51,7 +51,7 @@ import io.requery.android.database.sqlite.RequerySQLiteOpenHelperFactory;
|
||||
// https://developer.android.com/topic/libraries/architecture/room.html
|
||||
|
||||
@Database(
|
||||
version = 73,
|
||||
version = 74,
|
||||
entities = {
|
||||
EntityIdentity.class,
|
||||
EntityAccount.class,
|
||||
@@ -759,6 +759,13 @@ public abstract class DB extends RoomDatabase {
|
||||
db.execSQL("ALTER TABLE `account` ADD COLUMN `order` INTEGER");
|
||||
}
|
||||
})
|
||||
.addMigrations(new Migration(73, 74) {
|
||||
@Override
|
||||
public void migrate(SupportSQLiteDatabase db) {
|
||||
Log.i("DB migration from version " + startVersion + " to " + endVersion);
|
||||
db.execSQL("ALTER TABLE `folder` ADD COLUMN `subscribed` INTEGER");
|
||||
}
|
||||
})
|
||||
.build();
|
||||
}
|
||||
|
||||
|
||||
@@ -155,6 +155,9 @@ public interface DaoFolder {
|
||||
@Query("UPDATE folder SET error = :error WHERE id = :id")
|
||||
int setFolderError(long id, String error);
|
||||
|
||||
@Query("UPDATE folder SET subscribed = :subscribed WHERE id = :id")
|
||||
int setFolderSubscribed(long id, Boolean subscribed);
|
||||
|
||||
@Query("UPDATE folder SET type = :type WHERE id = :id")
|
||||
int setFolderType(long id, String type);
|
||||
|
||||
|
||||
@@ -76,6 +76,7 @@ public class EntityFolder implements Serializable {
|
||||
public Boolean poll = false;
|
||||
@NonNull
|
||||
public Boolean download = true;
|
||||
public Boolean subscribed;
|
||||
@NonNull
|
||||
public Integer sync_days;
|
||||
@NonNull
|
||||
@@ -259,6 +260,7 @@ public class EntityFolder implements Serializable {
|
||||
this.synchronize.equals(other.synchronize) &&
|
||||
this.poll.equals(other.poll) &&
|
||||
this.download.equals(other.download) &&
|
||||
Objects.equals(this.subscribed, other.subscribed) &&
|
||||
this.sync_days.equals(other.sync_days) &&
|
||||
this.keep_days.equals(other.keep_days) &&
|
||||
Objects.equals(this.display, other.display) &&
|
||||
|
||||
Reference in New Issue
Block a user