Skip to content

Commit

Permalink
#451 Toggle checkboxes in view mode
Browse files Browse the repository at this point in the history
  • Loading branch information
stefan-niedermann committed Dec 31, 2019
1 parent 2dbaf41 commit 8fd4de0
Showing 1 changed file with 26 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import android.graphics.Typeface;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.text.TextUtils;
import android.text.method.LinkMovementMethod;
import android.util.TypedValue;
import android.view.LayoutInflater;
Expand Down Expand Up @@ -75,28 +76,31 @@ public void onActivityCreated(@Nullable Bundle savedInstanceState) {
markdownProcessor.factory(TextFactory.create());
markdownProcessor.config(
MarkDownUtil.getMarkDownConfiguration(noteContent.getContext())
// .setOnTodoClickCallback((view, line, lineNumber) -> {
// String[] lines = TextUtils.split(note.getContent(), "\\r?\\n");
// /*
// * Workaround for a bug when checkbox is the last line:
// * When (un)checking a checkbox which is in the last line, every time it gets toggled, the last character of the line gets lost.
// */
// if ((lines.length - 1) == lineNumber) {
// if(lines[lineNumber].contains("- [ ]")) {
// lines[lineNumber] = lines[lineNumber].replace("- [ ]", "- [x]");
// } else {
// lines[lineNumber] = lines[lineNumber].replace("- [x]", "- [ ]");
// }
//
// } else if (lines.length >= lineNumber) {
// lines[lineNumber] = line;
// }
// changedText = TextUtils.join("\n", lines);
// noteContent.setText(markdownProcessor.parse(changedText));
// saveNote(null);
// return line;
// }
// )
.setOnTodoClickCallback((view, line, lineNumber) -> {
try {
String[] lines = TextUtils.split(note.getContent(), "\\r?\\n");
/*
* Workaround for multiple bugs:
* When (un)checking a checkbox which is in the last line, every time it gets toggled, the last character of the line gets lost.
* When (un)checking a checkbox, every markdown gets stripped in the given line argument
*/
if (lines[lineNumber].startsWith("- [ ]") || lines[lineNumber].startsWith("* [ ]")) {
lines[lineNumber] = lines[lineNumber].replace("- [ ]", "- [x]");
lines[lineNumber] = lines[lineNumber].replace("* [ ]", "* [x]");
} else {
lines[lineNumber] = lines[lineNumber].replace("- [x]", "- [ ]");
lines[lineNumber] = lines[lineNumber].replace("* [x]", "* [ ]");
}

changedText = TextUtils.join("\n", lines);
noteContent.setText(markdownProcessor.parse(changedText));
saveNote(null);
} catch (IndexOutOfBoundsException e) {
Toast.makeText(getActivity(), "Checkbox could not be toggled.", Toast.LENGTH_SHORT).show();
}
return line;
}
)
.build());
setActiveTextView(noteContent);
noteContent.setText(markdownProcessor.parse(note.getContent()));
Expand Down

0 comments on commit 8fd4de0

Please sign in to comment.