mirror of https://github.com/M66B/FairEmail.git
Debug: folder flags
This commit is contained in:
parent
7d2dac420d
commit
688f4f6b58
File diff suppressed because it is too large
Load Diff
|
@ -419,6 +419,7 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
|
|||
tvKeywords.setText(BuildConfig.DEBUG ?
|
||||
(folder.separator == null ? "" : folder.separator + " ") +
|
||||
(folder.namespace == null ? "" : folder.namespace + " ") +
|
||||
(folder.flags == null ? null : TextUtils.join(" ", folder.flags) + " ") +
|
||||
TextUtils.join(" ", folder.keywords) : null);
|
||||
tvKeywords.setVisibility(show_flagged ? View.VISIBLE : View.GONE);
|
||||
|
||||
|
|
|
@ -3503,7 +3503,28 @@ class Core {
|
|||
|
||||
db.folder().setFolderSyncState(folder.id, "syncing");
|
||||
|
||||
String[] userFlags = ifolder.getPermanentFlags().getUserFlags();
|
||||
Flags flags = ifolder.getPermanentFlags();
|
||||
|
||||
List<String> f = new ArrayList<>();
|
||||
if (flags != null) {
|
||||
if (flags.contains(Flags.Flag.ANSWERED))
|
||||
f.add("\\Answered");
|
||||
if (flags.contains(Flags.Flag.DELETED))
|
||||
f.add("\\Deleted");
|
||||
if (flags.contains(Flags.Flag.DRAFT))
|
||||
f.add("\\Draft");
|
||||
if (flags.contains(Flags.Flag.FLAGGED))
|
||||
f.add("\\Flagged");
|
||||
if (flags.contains(Flags.Flag.RECENT))
|
||||
f.add("\\Recent");
|
||||
if (flags.contains(Flags.Flag.SEEN))
|
||||
f.add("\\Seen");
|
||||
if (flags.contains(Flags.Flag.USER))
|
||||
f.add("\\*");
|
||||
}
|
||||
db.folder().setFolderFlags(folder.id, DB.Converters.fromStringArray(f.toArray(new String[0])));
|
||||
|
||||
String[] userFlags = flags.getUserFlags();
|
||||
if (userFlags != null && userFlags.length > 0) {
|
||||
List<String> keywords = new ArrayList<>(Arrays.asList(userFlags));
|
||||
Collections.sort(keywords);
|
||||
|
@ -3619,7 +3640,6 @@ class Core {
|
|||
: new ReceivedDateTerm(ComparisonTerm.GE, new Date(sync_time));
|
||||
|
||||
SearchTerm searchTerm = dateTerm;
|
||||
Flags flags = ifolder.getPermanentFlags();
|
||||
if (sync_nodate && !account.isOutlook())
|
||||
searchTerm = new OrTerm(searchTerm, new ReceivedDateTerm(ComparisonTerm.LT, new Date(365 * 24 * 3600 * 1000L)));
|
||||
if (sync_unseen && flags.contains(Flags.Flag.SEEN))
|
||||
|
|
|
@ -68,7 +68,7 @@ import javax.mail.internet.InternetAddress;
|
|||
// https://developer.android.com/topic/libraries/architecture/room.html
|
||||
|
||||
@Database(
|
||||
version = 279,
|
||||
version = 280,
|
||||
entities = {
|
||||
EntityIdentity.class,
|
||||
EntityAccount.class,
|
||||
|
@ -2813,7 +2813,14 @@ public abstract class DB extends RoomDatabase {
|
|||
db.execSQL("DROP VIEW IF EXISTS `account_view`");
|
||||
db.execSQL("CREATE VIEW IF NOT EXISTS `account_view` AS " + TupleAccountView.query);
|
||||
}
|
||||
}).addMigrations(new Migration(998, 999) {
|
||||
}).addMigrations(new Migration(279, 280) {
|
||||
@Override
|
||||
public void migrate(@NonNull SupportSQLiteDatabase db) {
|
||||
logMigration(startVersion, endVersion);
|
||||
db.execSQL("ALTER TABLE `folder` ADD COLUMN `flags` TEXT");
|
||||
}
|
||||
})
|
||||
.addMigrations(new Migration(998, 999) {
|
||||
@Override
|
||||
public void migrate(@NonNull SupportSQLiteDatabase db) {
|
||||
logMigration(startVersion, endVersion);
|
||||
|
|
|
@ -359,6 +359,9 @@ public interface DaoFolder {
|
|||
" AND NOT (sync_days IS :sync_days AND keep_days IS :keep_days)")
|
||||
int setFolderProperties(long id, int sync_days, int keep_days);
|
||||
|
||||
@Query("UPDATE folder SET flags = :flags WHERE id = :id AND NOT (flags IS :flags)")
|
||||
int setFolderFlags(long id, String flags);
|
||||
|
||||
@Query("UPDATE folder SET keywords = :keywords WHERE id = :id AND NOT (keywords IS :keywords)")
|
||||
int setFolderKeywords(long id, String keywords);
|
||||
|
||||
|
|
|
@ -125,7 +125,8 @@ public class EntityFolder extends EntityOrder implements Serializable {
|
|||
public Boolean notify = false;
|
||||
|
||||
public Integer total; // messages on server
|
||||
public String[] keywords;
|
||||
public String[] flags; // system flags
|
||||
public String[] keywords; // user flags
|
||||
|
||||
@NonNull
|
||||
public Long selected_last = 0L;
|
||||
|
|
|
@ -2602,6 +2602,8 @@ public class Log {
|
|||
jfolder.put("selectable", folder.selectable);
|
||||
jfolder.put("inferiors", folder.inferiors);
|
||||
jfolder.put("auto_add", folder.auto_add);
|
||||
jfolder.put("flags", folder.flags == null ? null : TextUtils.join(",", folder.flags));
|
||||
jfolder.put("keywords", folder.keywords == null ? null : TextUtils.join(",", folder.keywords));
|
||||
jfolder.put("tbc", Boolean.TRUE.equals(folder.tbc));
|
||||
jfolder.put("rename", folder.rename);
|
||||
jfolder.put("tbd", Boolean.TRUE.equals(folder.tbd));
|
||||
|
|
Loading…
Reference in New Issue