Refactoring

This commit is contained in:
M66B 2020-06-25 18:32:28 +02:00
parent b04ce74069
commit 1488a37caa
2 changed files with 12 additions and 9 deletions

View File

@ -708,17 +708,10 @@ class Core {
((GmailMessage) imessage).setLabels(new String[]{label}, set); ((GmailMessage) imessage).setLabels(new String[]{label}, set);
// Gmail does not push label changes // Gmail does not push label changes
message.setLabel(label, set);
List<String> labels = new ArrayList<>();
if (message.labels != null)
labels.addAll(Arrays.asList(message.labels));
labels.remove(label);
if (set)
labels.add(label);
DB db = DB.getInstance(context); DB db = DB.getInstance(context);
db.message().setMessageLabels(message.id, db.message().setMessageLabels(message.id, DB.Converters.fromStringArray(message.labels));
DB.Converters.fromStringArray(labels.toArray(new String[0])));
} }
private static void onAdd(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, IMAPStore istore, IMAPFolder ifolder, State state) throws MessagingException, IOException { private static void onAdd(Context context, JSONArray jargs, EntityFolder folder, EntityMessage message, IMAPStore istore, IMAPFolder ifolder, State state) throws MessagingException, IOException {

View File

@ -244,6 +244,16 @@ public class EntityMessage implements Serializable {
return "notification." + sender.getAddress().toLowerCase(Locale.ROOT); return "notification." + sender.getAddress().toLowerCase(Locale.ROOT);
} }
void setLabel(String label, boolean set) {
List<String> list = new ArrayList<>();
if (labels != null)
list.addAll(Arrays.asList(labels));
list.remove(label);
if (set)
list.add(label);
labels = list.toArray(new String[0]);
}
static File getFile(Context context, Long id) { static File getFile(Context context, Long id) {
File dir = new File(context.getFilesDir(), "messages"); File dir = new File(context.getFilesDir(), "messages");
if (!dir.exists()) if (!dir.exists())