Added searching for notes

This commit is contained in:
M66B
2021-02-28 16:12:48 +01:00
parent 63d747690b
commit 4dc85ee892
6 changed files with 35 additions and 3 deletions

View File

@@ -455,6 +455,7 @@ public class AdapterFolder extends RecyclerView.Adapter<AdapterFolder.ViewHolder
criteria.in_subject = false;
criteria.in_keywords = false;
criteria.in_message = false;
criteria.in_notes = false;
criteria.with_flagged = true;
FragmentMessages.search(
context, owner, parentFragment.getParentFragmentManager(),

View File

@@ -242,6 +242,7 @@ public class BoundaryCallbackMessages extends PagedList.BoundaryCallback<TupleMe
criteria.in_subject,
criteria.in_keywords,
criteria.in_message,
criteria.in_notes,
criteria.with_unseen,
criteria.with_flagged,
criteria.with_hidden,
@@ -647,6 +648,7 @@ public class BoundaryCallbackMessages extends PagedList.BoundaryCallback<TupleMe
boolean in_subject = true;
boolean in_keywords = true;
boolean in_message = true;
boolean in_notes = true;
boolean with_unseen;
boolean with_flagged;
boolean with_hidden;
@@ -836,6 +838,7 @@ public class BoundaryCallbackMessages extends PagedList.BoundaryCallback<TupleMe
this.in_subject == other.in_subject &&
this.in_keywords == other.in_keywords &&
this.in_message == other.in_message &&
this.in_notes == other.in_notes &&
this.with_unseen == other.with_unseen &&
this.with_flagged == other.with_flagged &&
this.with_hidden == other.with_hidden &&
@@ -859,6 +862,7 @@ public class BoundaryCallbackMessages extends PagedList.BoundaryCallback<TupleMe
" subject=" + in_subject +
" keywords=" + in_keywords +
" message=" + in_message +
" notes=" + in_notes +
" unseen=" + with_unseen +
" flagged=" + with_flagged +
" hidden=" + with_hidden +

View File

@@ -315,6 +315,7 @@ public interface DaoMessage {
" OR (:subject AND `subject` LIKE :find COLLATE NOCASE)" + // unsuitable index
" OR (:keywords AND `keywords` LIKE :find COLLATE NOCASE)" + // no index
" OR (:message AND `preview` LIKE :find COLLATE NOCASE)" + // no index
" OR (:notes AND `notes` LIKE :find COLLATE NOCASE)" + // no index
" OR (attachment.name LIKE :find COLLATE NOCASE)" + // no index
" OR (attachment.type LIKE :find COLLATE NOCASE)) AS matched" + // no index
" FROM message" +
@@ -335,7 +336,7 @@ public interface DaoMessage {
" LIMIT :limit OFFSET :offset")
List<TupleMatch> matchMessages(
Long account, Long folder, String find,
boolean senders, boolean recipients, boolean subject, boolean keywords, boolean message,
boolean senders, boolean recipients, boolean subject, boolean keywords, boolean message, boolean notes,
boolean unseen, boolean flagged, boolean hidden, boolean encrypted, boolean attachments,
int type_count, String[] types,
Integer size,

View File

@@ -72,6 +72,7 @@ public class FragmentDialogSearch extends FragmentDialogBase {
boolean last_search_subject = prefs.getBoolean("last_search_subject", true);
boolean last_search_keywords = prefs.getBoolean("last_search_keywords", false);
boolean last_search_message = prefs.getBoolean("last_search_message", true);
boolean last_search_notes = prefs.getBoolean("last_search_notes", true);
String last_search = prefs.getString("last_search", null);
View dview = LayoutInflater.from(getContext()).inflate(R.layout.dialog_search, null);
@@ -90,6 +91,7 @@ public class FragmentDialogSearch extends FragmentDialogBase {
final CheckBox cbSubject = dview.findViewById(R.id.cbSubject);
final CheckBox cbKeywords = dview.findViewById(R.id.cbKeywords);
final CheckBox cbMessage = dview.findViewById(R.id.cbMessage);
final CheckBox cbNotes = dview.findViewById(R.id.cbNotes);
final CheckBox cbUnseen = dview.findViewById(R.id.cbUnseen);
final CheckBox cbFlagged = dview.findViewById(R.id.cbFlagged);
final CheckBox cbHidden = dview.findViewById(R.id.cbHidden);
@@ -173,6 +175,7 @@ public class FragmentDialogSearch extends FragmentDialogBase {
cbSubject.setEnabled(!isChecked);
cbKeywords.setEnabled(!isChecked);
cbMessage.setEnabled(!isChecked);
cbNotes.setEnabled(!isChecked);
cbUnseen.setEnabled(!isChecked);
cbFlagged.setEnabled(!isChecked);
cbHidden.setEnabled(!isChecked);
@@ -217,6 +220,13 @@ public class FragmentDialogSearch extends FragmentDialogBase {
}
});
cbNotes.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
prefs.edit().putBoolean("last_search_notes", isChecked).apply();
}
});
spMessageSize.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
@@ -256,6 +266,7 @@ public class FragmentDialogSearch extends FragmentDialogBase {
cbSubject.setChecked(last_search_subject);
cbKeywords.setChecked(last_search_keywords);
cbMessage.setChecked(last_search_message);
cbNotes.setChecked(last_search_notes);
tvAfter.setText(null);
tvBefore.setText(null);
@@ -289,6 +300,7 @@ public class FragmentDialogSearch extends FragmentDialogBase {
criteria.in_subject = cbSubject.isChecked();
criteria.in_keywords = cbKeywords.isChecked();
criteria.in_message = cbMessage.isChecked();
criteria.in_notes = cbNotes.isChecked();
criteria.with_unseen = cbUnseen.isChecked();
criteria.with_flagged = cbFlagged.isChecked();
criteria.with_hidden = cbHidden.isChecked();