Skip to content

Commit

Permalink
sample, add justify sample
Browse files Browse the repository at this point in the history
  • Loading branch information
noties committed Aug 26, 2020
1 parent 65309e6 commit 949962e
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 5 deletions.
22 changes: 17 additions & 5 deletions app-sample/samples.json
Original file line number Diff line number Diff line change
@@ -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",
Expand Down Expand Up @@ -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",
Expand All @@ -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",
Expand Down
Original file line number Diff line number Diff line change
@@ -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);
}
}

0 comments on commit 949962e

Please sign in to comment.