diff options
author | Stefan Niedermann <info@niedermann.it> | 2020-06-07 19:32:04 +0300 |
---|---|---|
committer | Niedermann IT-Dienstleistungen <stefan-niedermann@users.noreply.github.com> | 2020-06-07 20:11:33 +0300 |
commit | 9ec6054aa7141a56dd5efd1483d0ed4a34588c0e (patch) | |
tree | 6dc4f0ef8c56ac5ae1db3b202312a0bdd487207d /app/src/main | |
parent | 67609666256181cfc5ffcd044ce12e794c57d70a (diff) |
#116 "Help: format" option in the menu
Make checkboxes togglable
Diffstat (limited to 'app/src/main')
-rw-r--r-- | app/src/main/java/it/niedermann/owncloud/notes/formattinghelp/FormattingHelpActivity.java | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/app/src/main/java/it/niedermann/owncloud/notes/formattinghelp/FormattingHelpActivity.java b/app/src/main/java/it/niedermann/owncloud/notes/formattinghelp/FormattingHelpActivity.java index 332cbb7e..522171af 100644 --- a/app/src/main/java/it/niedermann/owncloud/notes/formattinghelp/FormattingHelpActivity.java +++ b/app/src/main/java/it/niedermann/owncloud/notes/formattinghelp/FormattingHelpActivity.java @@ -4,6 +4,7 @@ import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.text.TextUtils; +import android.text.method.LinkMovementMethod; import android.widget.Toast; import androidx.annotation.Nullable; @@ -31,6 +32,7 @@ public class FormattingHelpActivity extends BrandedActivity { private static final String TAG = FormattingHelpActivity.class.getSimpleName(); private ActivityFormattingHelpBinding binding; + private String content; @Override public void onCreate(@Nullable Bundle savedInstanceState) { @@ -50,7 +52,7 @@ public class FormattingHelpActivity extends BrandedActivity { ExceptionDialogFragment.newInstance(e).show(getSupportFragmentManager(), ExceptionDialogFragment.class.getSimpleName()); } - String content = stringBuilder.toString(); + content = stringBuilder.toString(); final MarkdownProcessor markdownProcessor = new MarkdownProcessor(this); markdownProcessor.factory(TextFactory.create()); @@ -63,8 +65,13 @@ public class FormattingHelpActivity extends BrandedActivity { * When (un)checking a checkbox in a note which contains code-blocks, the "`"-characters get stripped out in the TextView and therefore the given lineNumber is wrong * Find number of lines starting with ``` before lineNumber */ + boolean inCodefence = false; for (int i = 0; i < lines.length; i++) { if (lines[i].startsWith("```")) { + inCodefence = !inCodefence; + lineNumber++; + } + if (inCodefence && TextUtils.isEmpty(lines[i])) { lineNumber++; } if (i == lineNumber) { @@ -85,7 +92,8 @@ public class FormattingHelpActivity extends BrandedActivity { lines[lineNumber] = lines[lineNumber].replace(CHECKBOX_CHECKED_STAR, CHECKBOX_UNCHECKED_STAR); } - binding.content.setText(parseCompat(markdownProcessor, TextUtils.join("\n", lines))); + content = TextUtils.join("\n", lines); + binding.content.setText(parseCompat(markdownProcessor, content)); } catch (IndexOutOfBoundsException e) { Toast.makeText(this, R.string.checkbox_could_not_be_toggled, Toast.LENGTH_SHORT).show(); e.printStackTrace(); @@ -95,6 +103,7 @@ public class FormattingHelpActivity extends BrandedActivity { ) .setOnLinkClickCallback((view, link) -> startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(link)))) .build()); + binding.content.setMovementMethod(LinkMovementMethod.getInstance()); binding.content.setText(parseCompat(markdownProcessor, content)); } |