mirror of https://github.com/M66B/FairEmail.git
Keyword fixes/improvements
This commit is contained in:
parent
f03c4d2ba1
commit
12503ba9ce
|
@ -23,7 +23,6 @@ import android.content.Context;
|
|||
import android.content.DialogInterface;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
@ -42,7 +41,6 @@ import com.flask.colorpicker.builder.ColorPickerClickListener;
|
|||
import com.flask.colorpicker.builder.ColorPickerDialogBuilder;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class AdapterKeyword extends RecyclerView.Adapter<AdapterKeyword.ViewHolder> {
|
||||
|
@ -96,14 +94,14 @@ public class AdapterKeyword extends RecyclerView.Adapter<AdapterKeyword.ViewHold
|
|||
|
||||
Bundle args = new Bundle();
|
||||
args.putLong("id", id);
|
||||
args.putString("keyword", keyword.name);
|
||||
args.putString("name", keyword.name);
|
||||
args.putBoolean("selected", keyword.selected);
|
||||
|
||||
new SimpleTask<Void>() {
|
||||
@Override
|
||||
protected Void onExecute(Context context, Bundle args) {
|
||||
long id = args.getLong("id");
|
||||
String keyword = args.getString("keyword");
|
||||
String name = args.getString("name");
|
||||
boolean selected = args.getBoolean("selected");
|
||||
|
||||
DB db = DB.getInstance(context);
|
||||
|
@ -112,13 +110,7 @@ public class AdapterKeyword extends RecyclerView.Adapter<AdapterKeyword.ViewHold
|
|||
if (message == null)
|
||||
return null;
|
||||
|
||||
List<String> keywords = new ArrayList<>(Arrays.asList(message.keywords));
|
||||
if (selected)
|
||||
keywords.add(keyword);
|
||||
else
|
||||
keywords.remove(keyword);
|
||||
|
||||
db.message().setMessageKeywords(message.id, TextUtils.join(" ", keywords));
|
||||
EntityOperation.queue(context, message, EntityOperation.KEYWORD, name, selected);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
@ -192,8 +184,8 @@ public class AdapterKeyword extends RecyclerView.Adapter<AdapterKeyword.ViewHold
|
|||
try {
|
||||
db.beginTransaction();
|
||||
|
||||
db.message().setMessageKeywords(message.id, "");
|
||||
db.message().setMessageKeywords(message.id, TextUtils.join(" ", message.keywords));
|
||||
db.message().setMessageKeywords(message.id, DB.Converters.fromStringArray(null));
|
||||
db.message().setMessageKeywords(message.id, DB.Converters.fromStringArray(message.keywords));
|
||||
|
||||
db.setTransactionSuccessful();
|
||||
} finally {
|
||||
|
|
|
@ -886,7 +886,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
String k = message.keywords[i].toLowerCase();
|
||||
if (!IMAP_KEYWORDS_BLACKLIST.contains(k)) {
|
||||
if (keywords.length() > 0)
|
||||
keywords.append(", ");
|
||||
keywords.append(" ");
|
||||
|
||||
keywords.append(message.keywords[i]);
|
||||
|
||||
|
@ -4970,7 +4970,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
return new AlertDialog.Builder(getContext())
|
||||
.setTitle(R.string.title_manage_keywords)
|
||||
.setView(dview)
|
||||
.setNegativeButton(android.R.string.cancel, null)
|
||||
.setPositiveButton(android.R.string.ok, null)
|
||||
.create();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -665,8 +665,11 @@ class Core {
|
|||
if (set) {
|
||||
if (!keywords.contains(keyword))
|
||||
keywords.add(keyword);
|
||||
} else
|
||||
keywords.remove(keyword);
|
||||
} else {
|
||||
while (keywords.remove(keyword))
|
||||
;
|
||||
}
|
||||
|
||||
db.message().setMessageKeywords(message.id, DB.Converters.fromStringArray(keywords.toArray(new String[0])));
|
||||
|
||||
db.setTransactionSuccessful();
|
||||
|
|
|
@ -48,6 +48,7 @@ import java.nio.charset.Charset;
|
|||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
|
@ -629,7 +630,9 @@ public class MessageHelper {
|
|||
}
|
||||
|
||||
String[] getKeywords() throws MessagingException {
|
||||
return imessage.getFlags().getUserFlags();
|
||||
List<String> keywords = Arrays.asList(imessage.getFlags().getUserFlags());
|
||||
Collections.sort(keywords);
|
||||
return keywords.toArray(new String[0]);
|
||||
}
|
||||
|
||||
String getMessageID() throws MessagingException {
|
||||
|
|
Loading…
Reference in New Issue