sample, add justify sample

This commit is contained in:
Dimitry Ivanov 2020-08-26 12:31:12 +03:00
parent 65309e684c
commit 949962ee0b
2 changed files with 82 additions and 5 deletions

View File

@ -1,4 +1,16 @@
[
{
"javaClassName": "io.noties.markwon.app.samples.JustifyModeSample",
"id": "20200826084338",
"title": "Justify text",
"description": "Justify text with `justificationMode` argument on Oreo (\u003e\u003d 26)",
"artifacts": [
"CORE"
],
"tags": [
"rendering"
]
},
{
"javaClassName": "io.noties.markwon.app.samples.image.GlideGifImageSample",
"id": "20200820071942",
@ -858,13 +870,12 @@
]
},
{
"javaClassName": "io.noties.markwon.app.samples.GithubUserIssueInlineParsingSample",
"javaClassName": "io.noties.markwon.app.samples.GithubUserIssueOnTextAddedSample",
"id": "20200629162024",
"title": "User mention and issue (via text)",
"description": "Github-like user mention and issue rendering via `CorePlugin.OnTextAddedListener`",
"artifacts": [
"CORE",
"INLINE_PARSER"
"CORE"
],
"tags": [
"parsing",
@ -873,12 +884,13 @@
]
},
{
"javaClassName": "io.noties.markwon.app.samples.GithubUserIssueOnTextAddedSample",
"javaClassName": "io.noties.markwon.app.samples.GithubUserIssueInlineParsingSample",
"id": "20200629162024",
"title": "User mention and issue (via text)",
"description": "Github-like user mention and issue rendering via `CorePlugin.OnTextAddedListener`",
"artifacts": [
"CORE"
"CORE",
"INLINE_PARSER"
],
"tags": [
"parsing",

View File

@ -0,0 +1,65 @@
package io.noties.markwon.app.samples;
import android.os.Build;
import android.text.Layout;
import android.text.Spanned;
import android.widget.TextView;
import io.noties.markwon.Markwon;
import io.noties.markwon.app.sample.Tags;
import io.noties.markwon.app.sample.ui.MarkwonTextViewSample;
import io.noties.markwon.image.AsyncDrawableScheduler;
import io.noties.markwon.image.ImagesPlugin;
import io.noties.markwon.sample.annotations.MarkwonArtifact;
import io.noties.markwon.sample.annotations.MarkwonSampleInfo;
@MarkwonSampleInfo(
id = "20200826084338",
title = "Justify text",
description = "Justify text with `justificationMode` argument on Oreo (>= 26)",
artifacts = MarkwonArtifact.CORE,
tags = Tags.rendering
)
public class JustifyModeSample extends MarkwonTextViewSample {
@Override
public void render() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
textView.setJustificationMode(Layout.JUSTIFICATION_MODE_INTER_WORD);
}
final String md = "" +
"# Justify\n\n" +
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis rutrum orci at aliquet dapibus. Quisque laoreet fermentum bibendum. Suspendisse euismod nisl vel sapien viverra faucibus. Nulla vel neque volutpat, egestas dui ac, consequat elit. Donec et interdum massa. Quisque porta ornare posuere. Nam at ante a felis facilisis tempus eu et erat. Curabitur auctor mauris eget purus iaculis vulputate.\n\n" +
"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis rutrum orci at aliquet dapibus. Quisque laoreet fermentum bibendum. Suspendisse euismod nisl vel sapien viverra faucibus. Nulla vel neque volutpat, egestas dui ac, consequat elit. Donec et interdum massa. Quisque porta ornare posuere. Nam at ante a felis facilisis tempus eu et erat. Curabitur auctor mauris eget purus iaculis vulputate.\n\n" +
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis rutrum orci at aliquet dapibus. Quisque laoreet fermentum bibendum. Suspendisse euismod nisl vel sapien viverra faucibus. Nulla vel neque volutpat, egestas dui ac, consequat elit. Donec et interdum massa. **Quisque porta ornare posuere.** Nam at ante a felis facilisis tempus eu et erat. Curabitur auctor mauris eget purus iaculis vulputate.\n\n" +
"";
if (false) {
// specify bufferType to make justificationMode argument be ignored
// Actually just calling method with BufferType argument would make
// justification gone
textView.setText(md, TextView.BufferType.SPANNABLE);
return;
}
final Markwon markwon = Markwon.builder(context)
.usePlugin(ImagesPlugin.create())
.build();
if (true) {
final Spanned spanned = markwon.toMarkdown(md);
// NB! the call to `setText` without arguments
textView.setText(spanned);
// if a plugin relies on `afterSetText` then we must manually call it,
// for example images are scheduled this way:
AsyncDrawableScheduler.schedule(textView);
return;
}
// cannot use that
markwon.setMarkdown(textView, md);
}
}