From 4898f2aceb2b4bd19ce6ac20a967f9b08876485d Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 10 Jun 2020 15:22:29 +0200 Subject: [PATCH] Get subscriptions for shared folders --- app/src/main/java/eu/faircode/email/Core.java | 47 ++++++++++--------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/Core.java b/app/src/main/java/eu/faircode/email/Core.java index f586b6ff8f..1fb82f26af 100644 --- a/app/src/main/java/eu/faircode/email/Core.java +++ b/app/src/main/java/eu/faircode/email/Core.java @@ -1361,29 +1361,6 @@ class Core { List ifolders = new ArrayList<>(); ifolders.addAll(Arrays.asList(defaultFolder.list("*"))); - if (sync_shared_folders) { - Folder[] namespaces = istore.getSharedNamespaces(); - Log.i("Namespaces=" + namespaces.length); - for (Folder namespace : namespaces) { - Log.i("Namespace=" + namespace.getFullName()); - if (namespace.getSeparator() == separator) - try { - ifolders.addAll(Arrays.asList(namespace.list("*"))); - } catch (FolderNotFoundException ex) { - Log.w(ex); - } - else - Log.e("Namespace separator=" + namespace.getSeparator() + " default=" + separator); - } - } - - //Log.i("Checking if folders exist"); - //for (Folder ifolder : new ArrayList(ifolders)) - // if (!ifolder.exists()) { - // Log.w("Folder does not exist name=" + ifolder.getFullName()); - // ifolders.remove(ifolder); - // } - List subscription = new ArrayList<>(); try { Folder[] isubscribed = defaultFolder.listSubscribed("*"); @@ -1393,6 +1370,30 @@ class Core { Log.e(account.name, ex); } + if (sync_shared_folders) { + Folder[] namespaces = istore.getSharedNamespaces(); + Log.i("Namespaces=" + namespaces.length); + for (Folder namespace : namespaces) { + Log.i("Namespace=" + namespace.getFullName()); + if (namespace.getSeparator() == separator) { + try { + ifolders.addAll(Arrays.asList(namespace.list("*"))); + } catch (FolderNotFoundException ex) { + Log.w(ex); + } + + try { + Folder[] isubscribed = namespace.listSubscribed("*"); + for (Folder ifolder : isubscribed) + subscription.add(ifolder.getFullName()); + } catch (MessagingException ex) { + Log.e(account.name, ex); + } + } else + Log.e("Namespace separator=" + namespace.getSeparator() + " default=" + separator); + } + } + long duration = new Date().getTime() - start; Log.i("Remote folder count=" + ifolders.size() +