use of com.ichi2.anki.dialogs.tags.TagsDialog in project AnkiChinaAndroid by ankichinateam.
the class AbstractFlashcardViewer method showTagsDialog.
protected void showTagsDialog() {
ArrayList<String> tags = new ArrayList<>(getCol().getTags().all());
ArrayList<String> selTags = new ArrayList<>(mCurrentCard.note().getTags());
TagsDialog.TagsDialogListener tagsDialogListener = (selectedTags, option) -> {
if (!mCurrentCard.note().getTags().equals(selectedTags)) {
String tagString = TextUtils.join(" ", selectedTags);
Note note = mCurrentCard.note();
note.setTagsFromStr(tagString);
note.flush();
// Reload current card to reflect tag changes
displayCardQuestion(true);
}
};
TagsDialog dialog = TagsDialog.newInstance(TagsDialog.TYPE_ADD_TAG, selTags, tags);
dialog.setTagsDialogListener(tagsDialogListener);
showDialogFragment(dialog);
}
use of com.ichi2.anki.dialogs.tags.TagsDialog in project AnkiChinaAndroid by ankichinateam.
the class NoteEditor method showTagsDialog.
private void showTagsDialog() {
if (mSelectedTags == null) {
mSelectedTags = new ArrayList<>(0);
}
ArrayList<String> tags = new ArrayList<>(getCol().getTags().all());
ArrayList<String> selTags = new ArrayList<>(mSelectedTags);
TagsDialog.TagsDialogListener tagsDialogListener = (selectedTags, option) -> {
if (!mSelectedTags.equals(selectedTags)) {
mTagsEdited = true;
}
mSelectedTags = selectedTags;
updateTags();
};
TagsDialog dialog = TagsDialog.newInstance(TagsDialog.TYPE_ADD_TAG, selTags, tags);
dialog.setTagsDialogListener(tagsDialogListener);
showDialogFragment(dialog);
}
use of com.ichi2.anki.dialogs.tags.TagsDialog in project AnkiChinaAndroid by ankichinateam.
the class CardBrowser method showTagsDialog.
private void showTagsDialog() {
TagsDialog dialog = TagsDialog.newInstance(TagsDialog.TYPE_FILTER_BY_TAG, new ArrayList<String>(), new ArrayList<>(getCol().getTags().all()));
dialog.setTagsDialogListener(this::filterByTag);
showDialogFragment(dialog);
}
use of com.ichi2.anki.dialogs.tags.TagsDialog in project Anki-Android by ankidroid.
the class CardBrowser method showEditTagsDialog.
private void showEditTagsDialog() {
if (getSelectedCardIds().isEmpty()) {
Timber.d("showEditTagsDialog: called with empty selection");
}
final ArrayList<String> allTags = new ArrayList<>(getCol().getTags().all());
List<Note> selectedNotes = getSelectedCardIds().stream().map(cardId -> getCol().getCard(cardId).note()).distinct().collect(Collectors.toList());
final ArrayList<String> checkedTags = selectedNotes.stream().flatMap(note -> note.getTags().stream()).collect(Collectors.toCollection(ArrayList::new));
if (selectedNotes.size() == 1) {
Timber.d("showEditTagsDialog: edit tags for one note");
mTagsDialogListenerAction = TagsDialogListenerAction.EDIT_TAGS;
TagsDialog dialog = mTagsDialogFactory.newTagsDialog().withArguments(TagsDialog.DialogType.EDIT_TAGS, checkedTags, allTags);
showDialogFragment(dialog);
return;
}
final ArrayList<String> uncheckedTags = selectedNotes.stream().flatMap(note -> {
final List<String> noteTags = note.getTags();
return allTags.stream().filter(t -> !noteTags.contains(t));
}).collect(Collectors.toCollection(ArrayList::new));
Timber.d("showEditTagsDialog: edit tags for multiple note");
mTagsDialogListenerAction = TagsDialogListenerAction.EDIT_TAGS;
TagsDialog dialog = mTagsDialogFactory.newTagsDialog().withArguments(TagsDialog.DialogType.EDIT_TAGS, checkedTags, uncheckedTags, allTags);
showDialogFragment(dialog);
}
use of com.ichi2.anki.dialogs.tags.TagsDialog in project Anki-Android by ankidroid.
the class CardBrowser method showFilterByTagsDialog.
private void showFilterByTagsDialog() {
mTagsDialogListenerAction = TagsDialogListenerAction.FILTER;
TagsDialog dialog = mTagsDialogFactory.newTagsDialog().withArguments(TagsDialog.DialogType.FILTER_BY_TAG, new ArrayList<>(0), new ArrayList<>(getCol().getTags().all()));
showDialogFragment(dialog);
}
Aggregations