diff --git a/app/src/main/java/eu/faircode/email/EntityFolder.java b/app/src/main/java/eu/faircode/email/EntityFolder.java index 2771f2cf0c..b77fcaa219 100644 --- a/app/src/main/java/eu/faircode/email/EntityFolder.java +++ b/app/src/main/java/eu/faircode/email/EntityFolder.java @@ -173,17 +173,28 @@ public class EntityFolder extends EntityOrder implements Serializable { // Contains: put("all", new TypeScore(EntityFolder.ARCHIVE, 100)); put("archive", new TypeScore(EntityFolder.ARCHIVE, 100)); + put("draft", new TypeScore(EntityFolder.DRAFTS, 100)); put("concept", new TypeScore(EntityFolder.DRAFTS, 100)); + put("Entwurf", new TypeScore(EntityFolder.DRAFTS, 100)); put("brouillon", new TypeScore(EntityFolder.DRAFTS, 100)); + put("Черновики", new TypeScore(EntityFolder.DRAFTS, 100)); + put("trash", new TypeScore(EntityFolder.TRASH, 100)); + put("Papierkorb", new TypeScore(EntityFolder.TRASH, 100)); put("corbeille", new TypeScore(EntityFolder.TRASH, 100)); + put("Корзина", new TypeScore(EntityFolder.TRASH, 100)); + put("junk", new TypeScore(EntityFolder.JUNK, 100)); put("spam", new TypeScore(EntityFolder.JUNK, 100)); put("pourriel", new TypeScore(EntityFolder.JUNK, 100)); put("quarantaine", new TypeScore(EntityFolder.JUNK, 50)); + put("Спам", new TypeScore(EntityFolder.JUNK, 100)); + put("sent", new TypeScore(EntityFolder.SENT, 100)); + put("Gesendet", new TypeScore(EntityFolder.SENT, 100)); put("envoyé", new TypeScore(EntityFolder.SENT, 100)); + put("Отправленные", new TypeScore(EntityFolder.SENT, 100)); }}; static final int DEFAULT_SYNC = 7; // days @@ -331,20 +342,22 @@ public class EntityFolder extends EntityOrder implements Serializable { } private static class TypeScore { - String type; - int score; + @NonNull + private String type; + private int score; - TypeScore(String type, int score) { + TypeScore(@NonNull String type, int score) { this.score = score; this.type = type; } } private static class FolderScore { - EntityFolder folder; - int score; + @NonNull + private EntityFolder folder; + private int score; - FolderScore(EntityFolder folder, int score) { + FolderScore(@NonNull EntityFolder folder, int score) { this.score = score; this.folder = folder; } @@ -356,14 +369,14 @@ public class EntityFolder extends EntityOrder implements Serializable { } } - static void guessTypes(List folders, final char separator) { + static void guessTypes(List folders, final Character separator) { List types = new ArrayList<>(); Map> typeFolderScore = new HashMap<>(); for (EntityFolder folder : folders) - if (EntityFolder.USER.equals(folder.type) || BuildConfig.DEBUG) { + if (EntityFolder.USER.equals(folder.type)) { for (String guess : GUESS_FOLDER_TYPE.keySet()) - if (folder.name.toLowerCase(Locale.ROOT).contains(guess)) { + if (folder.name.toLowerCase(Locale.ROOT).contains(guess.toLowerCase(Locale.ROOT))) { TypeScore score = GUESS_FOLDER_TYPE.get(guess); if (!typeFolderScore.containsKey(score.type)) typeFolderScore.put(score.type, new ArrayList<>()); @@ -382,10 +395,16 @@ public class EntityFolder extends EntityOrder implements Serializable { public int compare(FolderScore fs1, FolderScore fs2) { int s = Integer.compare(fs1.score, fs2.score); if (s == 0) { - String sep = String.valueOf(separator); - return Integer.compare( - fs1.folder.name.split(sep).length, - fs2.folder.name.split(sep).length); + if (separator == null) + return Integer.compare( + fs1.folder.name.length(), + fs2.folder.name.length()); + else { + String sep = String.valueOf(separator); + return Integer.compare( + fs1.folder.name.split(sep).length, + fs2.folder.name.split(sep).length); + } } else return s; }