Keyword fixes/improvements

pull/172/head
M66B 6 years ago
parent f03c4d2ba1
commit 12503ba9ce

@ -23,7 +23,6 @@ import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -42,7 +41,6 @@ import com.flask.colorpicker.builder.ColorPickerClickListener;
import com.flask.colorpicker.builder.ColorPickerDialogBuilder; import com.flask.colorpicker.builder.ColorPickerDialogBuilder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
public class AdapterKeyword extends RecyclerView.Adapter<AdapterKeyword.ViewHolder> { public class AdapterKeyword extends RecyclerView.Adapter<AdapterKeyword.ViewHolder> {
@ -96,14 +94,14 @@ public class AdapterKeyword extends RecyclerView.Adapter<AdapterKeyword.ViewHold
Bundle args = new Bundle(); Bundle args = new Bundle();
args.putLong("id", id); args.putLong("id", id);
args.putString("keyword", keyword.name); args.putString("name", keyword.name);
args.putBoolean("selected", keyword.selected); args.putBoolean("selected", keyword.selected);
new SimpleTask<Void>() { new SimpleTask<Void>() {
@Override @Override
protected Void onExecute(Context context, Bundle args) { protected Void onExecute(Context context, Bundle args) {
long id = args.getLong("id"); long id = args.getLong("id");
String keyword = args.getString("keyword"); String name = args.getString("name");
boolean selected = args.getBoolean("selected"); boolean selected = args.getBoolean("selected");
DB db = DB.getInstance(context); DB db = DB.getInstance(context);
@ -112,13 +110,7 @@ public class AdapterKeyword extends RecyclerView.Adapter<AdapterKeyword.ViewHold
if (message == null) if (message == null)
return null; return null;
List<String> keywords = new ArrayList<>(Arrays.asList(message.keywords)); EntityOperation.queue(context, message, EntityOperation.KEYWORD, name, selected);
if (selected)
keywords.add(keyword);
else
keywords.remove(keyword);
db.message().setMessageKeywords(message.id, TextUtils.join(" ", keywords));
return null; return null;
} }
@ -192,8 +184,8 @@ public class AdapterKeyword extends RecyclerView.Adapter<AdapterKeyword.ViewHold
try { try {
db.beginTransaction(); db.beginTransaction();
db.message().setMessageKeywords(message.id, ""); db.message().setMessageKeywords(message.id, DB.Converters.fromStringArray(null));
db.message().setMessageKeywords(message.id, TextUtils.join(" ", message.keywords)); db.message().setMessageKeywords(message.id, DB.Converters.fromStringArray(message.keywords));
db.setTransactionSuccessful(); db.setTransactionSuccessful();
} finally { } finally {

@ -886,7 +886,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
String k = message.keywords[i].toLowerCase(); String k = message.keywords[i].toLowerCase();
if (!IMAP_KEYWORDS_BLACKLIST.contains(k)) { if (!IMAP_KEYWORDS_BLACKLIST.contains(k)) {
if (keywords.length() > 0) if (keywords.length() > 0)
keywords.append(", "); keywords.append(" ");
keywords.append(message.keywords[i]); keywords.append(message.keywords[i]);
@ -4970,7 +4970,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
return new AlertDialog.Builder(getContext()) return new AlertDialog.Builder(getContext())
.setTitle(R.string.title_manage_keywords) .setTitle(R.string.title_manage_keywords)
.setView(dview) .setView(dview)
.setNegativeButton(android.R.string.cancel, null) .setPositiveButton(android.R.string.ok, null)
.create(); .create();
} }
} }

@ -665,8 +665,11 @@ class Core {
if (set) { if (set) {
if (!keywords.contains(keyword)) if (!keywords.contains(keyword))
keywords.add(keyword); keywords.add(keyword);
} else } else {
keywords.remove(keyword); while (keywords.remove(keyword))
;
}
db.message().setMessageKeywords(message.id, DB.Converters.fromStringArray(keywords.toArray(new String[0]))); db.message().setMessageKeywords(message.id, DB.Converters.fromStringArray(keywords.toArray(new String[0])));
db.setTransactionSuccessful(); db.setTransactionSuccessful();

@ -48,6 +48,7 @@ import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections;
import java.util.Date; import java.util.Date;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.HashMap; import java.util.HashMap;
@ -629,7 +630,9 @@ public class MessageHelper {
} }
String[] getKeywords() throws MessagingException { 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 { String getMessageID() throws MessagingException {

Loading…
Cancel
Save