mirror of
https://github.com/M66B/FairEmail.git
synced 2026-05-19 13:34:00 +02:00
Added batch manage keywords button
This commit is contained in:
@@ -63,6 +63,7 @@ public class FragmentDialogQuickActions extends FragmentDialogBase {
|
||||
final CheckBox cbDelete = dview.findViewById(R.id.cbDelete);
|
||||
final CheckBox cbJunk = dview.findViewById(R.id.cbJunk);
|
||||
final CheckBox cbInbox = dview.findViewById(R.id.cbInbox);
|
||||
final CheckBox cbKeywords = dview.findViewById(R.id.cbKeywords);
|
||||
final CheckBox cbClear = dview.findViewById(R.id.cbClear);
|
||||
|
||||
cbSummarize.setVisibility(AI.isAvailable(context) ? View.VISIBLE : View.GONE);
|
||||
@@ -86,6 +87,7 @@ public class FragmentDialogQuickActions extends FragmentDialogBase {
|
||||
cbDelete.setChecked(prefs.getBoolean("more_delete", false));
|
||||
cbJunk.setChecked(prefs.getBoolean("more_junk", true));
|
||||
cbInbox.setChecked(prefs.getBoolean("more_inbox", true));
|
||||
cbKeywords.setChecked(prefs.getBoolean("more_keywords", false));
|
||||
cbClear.setChecked(prefs.getBoolean("more_clear", true));
|
||||
|
||||
return new AlertDialog.Builder(getContext())
|
||||
@@ -111,6 +113,7 @@ public class FragmentDialogQuickActions extends FragmentDialogBase {
|
||||
editor.putBoolean("more_delete", cbDelete.isChecked());
|
||||
editor.putBoolean("more_junk", cbJunk.isChecked());
|
||||
editor.putBoolean("more_inbox", cbInbox.isChecked());
|
||||
editor.putBoolean("more_keywords", cbKeywords.isChecked());
|
||||
editor.putBoolean("more_clear", cbClear.isChecked());
|
||||
editor.apply();
|
||||
sendResult(Activity.RESULT_OK);
|
||||
|
||||
@@ -315,6 +315,7 @@ public class FragmentMessages extends FragmentBase
|
||||
private ImageButton ibDelete;
|
||||
private ImageButton ibJunk;
|
||||
private ImageButton ibInbox;
|
||||
private ImageButton ibKeywords;
|
||||
private ImageButton ibMoreSettings;
|
||||
private FloatingActionButton fabSearch;
|
||||
private FloatingActionButton fabError;
|
||||
@@ -666,6 +667,7 @@ public class FragmentMessages extends FragmentBase
|
||||
ibDelete = view.findViewById(R.id.ibDelete);
|
||||
ibJunk = view.findViewById(R.id.ibJunk);
|
||||
ibInbox = view.findViewById(R.id.ibInbox);
|
||||
ibKeywords = view.findViewById(R.id.ibKeywords);
|
||||
ibMoreSettings = view.findViewById(R.id.ibMoreSettings);
|
||||
fabSearch = view.findViewById(R.id.fabSearch);
|
||||
fabError = view.findViewById(R.id.fabError);
|
||||
@@ -1831,6 +1833,14 @@ public class FragmentMessages extends FragmentBase
|
||||
}
|
||||
});
|
||||
|
||||
ibKeywords.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
boolean more_clear = prefs.getBoolean("more_clear", true);
|
||||
onActionManageKeywords(more_clear);
|
||||
}
|
||||
});
|
||||
|
||||
ibMoreSettings.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@@ -4686,7 +4696,7 @@ public class FragmentMessages extends FragmentBase
|
||||
onActionMoveSelectionAccount(result.copyto.id, true, result.folders);
|
||||
return true;
|
||||
} else if (itemId == R.string.title_manage_keywords) {
|
||||
onActionManageKeywords();
|
||||
onActionManageKeywords(false);
|
||||
return true;
|
||||
} else if (itemId == R.string.title_search_sender) {
|
||||
long[] ids = getSelection();
|
||||
@@ -5188,7 +5198,7 @@ public class FragmentMessages extends FragmentBase
|
||||
fragment.show(getParentFragmentManager(), "messages:move");
|
||||
}
|
||||
|
||||
private void onActionManageKeywords() {
|
||||
private void onActionManageKeywords(boolean clear) {
|
||||
Bundle args = new Bundle();
|
||||
args.putLongArray("ids", getSelection());
|
||||
|
||||
@@ -5282,6 +5292,14 @@ public class FragmentMessages extends FragmentBase
|
||||
fragment.show(getParentFragmentManager(), "keywords:add");
|
||||
}
|
||||
})
|
||||
.setOnDismissListener(new DialogInterface.OnDismissListener() {
|
||||
@Override
|
||||
public void onDismiss(DialogInterface dialog) {
|
||||
if (clear && selectionTracker != null)
|
||||
selectionTracker.clearSelection();
|
||||
|
||||
}
|
||||
})
|
||||
.show();
|
||||
}
|
||||
|
||||
@@ -7390,6 +7408,7 @@ public class FragmentMessages extends FragmentBase
|
||||
boolean more_trash = prefs.getBoolean("more_trash", true);
|
||||
boolean more_delete = prefs.getBoolean("more_delete", false);
|
||||
boolean more_move = prefs.getBoolean("more_move", true);
|
||||
boolean more_keywords = prefs.getBoolean("more_keywords", false);
|
||||
|
||||
boolean inTrash = EntityFolder.TRASH.equals(type);
|
||||
boolean inJunk = EntityFolder.JUNK.equals(type);
|
||||
@@ -7426,6 +7445,10 @@ public class FragmentMessages extends FragmentBase
|
||||
if (inbox)
|
||||
count++;
|
||||
|
||||
boolean keywords = (more_keywords && count < FragmentDialogQuickActions.MAX_QUICK_ACTIONS && !result.hasPop && result.hasImap);
|
||||
if (keywords)
|
||||
count++;
|
||||
|
||||
boolean importance_high = (more_importance_high && count < FragmentDialogQuickActions.MAX_QUICK_ACTIONS &&
|
||||
!EntityMessage.PRIORITIY_HIGH.equals(result.importance));
|
||||
if (importance_high)
|
||||
@@ -7497,6 +7520,7 @@ public class FragmentMessages extends FragmentBase
|
||||
ibDelete.setVisibility(delete ? View.VISIBLE : View.GONE);
|
||||
ibJunk.setVisibility(junk ? View.VISIBLE : View.GONE);
|
||||
ibInbox.setVisibility(inbox ? View.VISIBLE : View.GONE);
|
||||
ibKeywords.setVisibility(keywords ? View.VISIBLE : View.GONE);
|
||||
cardMore.setTag(fabMore.isOrWillBeShown() ? result : null);
|
||||
cardMore.setVisibility(fabMore.isOrWillBeShown() ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user