mirror of
https://github.com/M66B/FairEmail.git
synced 2026-04-08 10:03:51 +02:00
Added searching for notes
This commit is contained in:
@@ -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(),
|
||||
|
||||
@@ -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 +
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user