Improved auto create folders

This commit is contained in:
M66B 2022-04-20 15:25:47 +02:00
parent be464e5356
commit a89b117535
1 changed files with 65 additions and 14 deletions

View File

@ -399,20 +399,71 @@ public class FragmentQuickSetup extends FragmentBase {
folders = iservice.getFolders();
if (folders.size() == 1 &&
EntityFolder.INBOX.equals(folders.get(0).type))
try {
Log.i("Creating system folders");
Store istore = iservice.getStore();
istore.getFolder(EntityFolder.DRAFTS).create(Folder.HOLDS_FOLDERS);
istore.getFolder(EntityFolder.SENT).create(Folder.HOLDS_FOLDERS);
istore.getFolder(EntityFolder.ARCHIVE).create(Folder.HOLDS_FOLDERS);
istore.getFolder(EntityFolder.TRASH).create(Folder.HOLDS_FOLDERS);
istore.getFolder(EntityFolder.JUNK).create(Folder.HOLDS_FOLDERS);
folders = iservice.getFolders();
} catch (Throwable ex) {
Log.e(ex);
}
if (!check) {
boolean drafts = false;
boolean sent = false;
boolean archive = false;
boolean trash = false;
boolean junk = false;
boolean other = false;
for (EntityFolder folder : folders)
switch (folder.type) {
case EntityFolder.DRAFTS:
drafts = true;
break;
case EntityFolder.SENT:
sent = true;
break;
case EntityFolder.ARCHIVE:
archive = true;
break;
case EntityFolder.TRASH:
trash = true;
break;
case EntityFolder.JUNK:
junk = true;
break;
default:
other = true;
break;
}
if (!other && !(drafts && sent && archive && trash && junk))
try {
Store istore = iservice.getStore();
String n = "";
Folder[] ns = istore.getPersonalNamespaces();
if (ns != null && ns.length == 1) {
n = ns[0].getFullName();
if (!TextUtils.isEmpty(n))
n += ns[0].getSeparator();
}
Log.i("Creating system folders" +
" namespace=" + n +
" drafts=" + drafts +
" sent=" + sent +
" archive=" + archive +
" trash=" + trash +
" junk=" + junk);
if (!drafts)
istore.getFolder(n + EntityFolder.DRAFTS).create(Folder.HOLDS_MESSAGES);
if (!sent)
istore.getFolder(n + EntityFolder.SENT).create(Folder.HOLDS_MESSAGES);
if (!archive)
istore.getFolder(n + EntityFolder.ARCHIVE).create(Folder.HOLDS_MESSAGES);
if (!trash)
istore.getFolder(n + EntityFolder.TRASH).create(Folder.HOLDS_MESSAGES);
if (!junk)
istore.getFolder(n + EntityFolder.JUNK).create(Folder.HOLDS_MESSAGES);
folders = iservice.getFolders();
} catch (Throwable ex) {
Log.e(ex);
}
}
}
Long max_size;