From d3a761e7290eb249eaca08797898430e10e01e60 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 23 Apr 2019 19:14:53 +0200 Subject: [PATCH] Handle subscriptions --- app/src/main/java/eu/faircode/email/Core.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index 094f73b91f..ff8772f981 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -704,10 +704,12 @@ class Core { Map> 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); EntityLog.log(context, account.name + ":" + fullName + + " subscribed=" + subscribed + " attrs=" + TextUtils.join(" ", attr) + " type=" + type); if (type != null) { @@ -724,7 +726,7 @@ class Core { folder.name = fullName; folder.display = display; folder.type = (EntityFolder.SYSTEM.equals(type) ? type : EntityFolder.USER); - folder.synchronize = false; + folder.synchronize = subscribed; folder.poll = ("imap.gmail.com".equals(account.host)); folder.sync_days = EntityFolder.DEFAULT_SYNC; folder.keep_days = EntityFolder.DEFAULT_KEEP; @@ -733,6 +735,14 @@ class Core { } else { Log.i(folder.name + " exists type=" + folder.type); + if (folder.synchronize && !subscribed) + try { + Log.i(folder.name + " subscribe=" + folder.synchronize); + ifolder.setSubscribed(folder.synchronize); + } catch (MessagingException ex) { + Log.w(ex); + } + if (folder.display == null) { if (display != null) { db.folder().setFolderDisplay(folder.id, display);