Migrate to androidx
This commit is contained in:
parent
a2a5857f06
commit
9aade9d6ca
@ -31,7 +31,7 @@ features listed in [commonmark-spec] are supported
|
|||||||

|

|
||||||

|

|
||||||
|
|
||||||
```groovy
|
```kotlin
|
||||||
implementation "io.noties.markwon:core:${markwonVersion}"
|
implementation "io.noties.markwon:core:${markwonVersion}"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ import android.content.Context;
|
|||||||
import android.content.res.TypedArray;
|
import android.content.res.TypedArray;
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
|
@ -2,7 +2,8 @@ package io.noties.markwon.app;
|
|||||||
|
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import io.noties.debug.AndroidLogDebugOutput;
|
import io.noties.debug.AndroidLogDebugOutput;
|
||||||
import io.noties.debug.Debug;
|
import io.noties.debug.Debug;
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
package io.noties.markwon.app;
|
package io.noties.markwon.app;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
abstract class AppBarItem {
|
abstract class AppBarItem {
|
||||||
|
|
||||||
static class State {
|
static class State {
|
||||||
|
@ -16,8 +16,8 @@ import io.noties.markwon.syntax.Prism4jThemeDarkula;
|
|||||||
import io.noties.markwon.syntax.Prism4jThemeDefault;
|
import io.noties.markwon.syntax.Prism4jThemeDefault;
|
||||||
import okhttp3.Cache;
|
import okhttp3.Cache;
|
||||||
import okhttp3.OkHttpClient;
|
import okhttp3.OkHttpClient;
|
||||||
import ru.noties.prism4j.Prism4j;
|
import io.noties.prism4j.Prism4j;
|
||||||
import ru.noties.prism4j.annotations.PrismBundle;
|
import io.noties.prism4j.annotations.PrismBundle;
|
||||||
|
|
||||||
@Module
|
@Module
|
||||||
@PrismBundle(includeAll = true)
|
@PrismBundle(includeAll = true)
|
||||||
|
@ -4,16 +4,17 @@ import android.app.Activity;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import io.noties.markwon.Markwon;
|
|
||||||
import io.noties.debug.Debug;
|
import io.noties.debug.Debug;
|
||||||
|
import io.noties.markwon.Markwon;
|
||||||
|
|
||||||
public class MainActivity extends Activity {
|
public class MainActivity extends Activity {
|
||||||
|
|
||||||
|
@ -4,10 +4,11 @@ import android.content.ContentResolver;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
@ -20,11 +21,11 @@ import java.util.concurrent.Future;
|
|||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
|
import io.noties.debug.Debug;
|
||||||
import okhttp3.OkHttpClient;
|
import okhttp3.OkHttpClient;
|
||||||
import okhttp3.Request;
|
import okhttp3.Request;
|
||||||
import okhttp3.Response;
|
import okhttp3.Response;
|
||||||
import okhttp3.ResponseBody;
|
import okhttp3.ResponseBody;
|
||||||
import io.noties.debug.Debug;
|
|
||||||
|
|
||||||
@ActivityScope
|
@ActivityScope
|
||||||
public class MarkdownLoader {
|
public class MarkdownLoader {
|
||||||
|
@ -4,10 +4,11 @@ import android.content.Context;
|
|||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ExecutorService;
|
||||||
import java.util.concurrent.Future;
|
import java.util.concurrent.Future;
|
||||||
|
|
||||||
@ -31,7 +32,7 @@ import io.noties.markwon.syntax.Prism4jThemeDefault;
|
|||||||
import io.noties.markwon.syntax.SyntaxHighlightPlugin;
|
import io.noties.markwon.syntax.SyntaxHighlightPlugin;
|
||||||
import io.noties.markwon.urlprocessor.UrlProcessor;
|
import io.noties.markwon.urlprocessor.UrlProcessor;
|
||||||
import io.noties.markwon.urlprocessor.UrlProcessorRelativeToAbsolute;
|
import io.noties.markwon.urlprocessor.UrlProcessorRelativeToAbsolute;
|
||||||
import ru.noties.prism4j.Prism4j;
|
import io.noties.prism4j.Prism4j;
|
||||||
|
|
||||||
@ActivityScope
|
@ActivityScope
|
||||||
public class MarkdownRenderer {
|
public class MarkdownRenderer {
|
||||||
|
@ -2,7 +2,8 @@ package io.noties.markwon.app;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Singleton;
|
import javax.inject.Singleton;
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
package io.noties.markwon.app;
|
package io.noties.markwon.app;
|
||||||
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
@SuppressWarnings("WeakerAccess")
|
@SuppressWarnings("WeakerAccess")
|
||||||
public interface UriProcessor {
|
public interface UriProcessor {
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
package io.noties.markwon.app;
|
package io.noties.markwon.app;
|
||||||
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -32,7 +33,7 @@ class UriProcessorImpl implements UriProcessor {
|
|||||||
.fragment(uri.getFragment())
|
.fragment(uri.getFragment())
|
||||||
.query(uri.getQuery());
|
.query(uri.getQuery());
|
||||||
|
|
||||||
for (String segment: segments) {
|
for (String segment : segments) {
|
||||||
final String part;
|
final String part;
|
||||||
if ("blob".equals(segment)) {
|
if ("blob".equals(segment)) {
|
||||||
part = "raw";
|
part = "raw";
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
package io.noties.markwon.app;
|
package io.noties.markwon.app;
|
||||||
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import io.noties.markwon.urlprocessor.UrlProcessor;
|
import io.noties.markwon.urlprocessor.UrlProcessor;
|
||||||
import io.noties.markwon.urlprocessor.UrlProcessorRelativeToAbsolute;
|
import io.noties.markwon.urlprocessor.UrlProcessorRelativeToAbsolute;
|
||||||
|
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
package io.noties.markwon.app;
|
package io.noties.markwon.app;
|
||||||
|
|
||||||
import android.support.annotation.IntDef;
|
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
|
import androidx.annotation.IntDef;
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
@SuppressWarnings("WeakerAccess")
|
@SuppressWarnings("WeakerAccess")
|
||||||
public abstract class Views {
|
public abstract class Views {
|
||||||
|
|
||||||
|
@ -2,8 +2,9 @@ package io.noties.markwon.app.gif;
|
|||||||
|
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import io.noties.markwon.image.AsyncDrawable;
|
import io.noties.markwon.image.AsyncDrawable;
|
||||||
import io.noties.markwon.image.AsyncDrawableLoader;
|
import io.noties.markwon.image.AsyncDrawableLoader;
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
package io.noties.markwon.app.gif;
|
package io.noties.markwon.app.gif;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import org.commonmark.node.Image;
|
import org.commonmark.node.Image;
|
||||||
|
|
||||||
import io.noties.markwon.AbstractMarkwonPlugin;
|
import io.noties.markwon.AbstractMarkwonPlugin;
|
||||||
|
@ -6,9 +6,10 @@ import android.graphics.Paint;
|
|||||||
import android.graphics.PixelFormat;
|
import android.graphics.PixelFormat;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.support.annotation.ColorInt;
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.ColorInt;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
public class GifPlaceholder extends Drawable {
|
public class GifPlaceholder extends Drawable {
|
||||||
|
|
||||||
|
@ -1,13 +1,14 @@
|
|||||||
package io.noties.markwon.app.gif;
|
package io.noties.markwon.app.gif;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.text.Spannable;
|
import android.text.Spannable;
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
import android.text.style.ClickableSpan;
|
import android.text.style.ClickableSpan;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import io.noties.markwon.image.AsyncDrawableSpan;
|
import io.noties.markwon.image.AsyncDrawableSpan;
|
||||||
import pl.droidsonroids.gif.GifDrawable;
|
import pl.droidsonroids.gif.GifDrawable;
|
||||||
|
|
||||||
|
10
build.gradle
10
build.gradle
@ -53,14 +53,12 @@ ext {
|
|||||||
'push-aar-gradle': 'https://raw.githubusercontent.com/noties/gradle-mvn-push/master/gradle-mvn-push-aar.gradle'
|
'push-aar-gradle': 'https://raw.githubusercontent.com/noties/gradle-mvn-push/master/gradle-mvn-push-aar.gradle'
|
||||||
]
|
]
|
||||||
|
|
||||||
final def supportVersion = '28.0.0'
|
|
||||||
final def commonMarkVersion = '0.12.1'
|
final def commonMarkVersion = '0.12.1'
|
||||||
final def daggerVersion = '2.10'
|
final def daggerVersion = '2.10'
|
||||||
|
|
||||||
deps = [
|
deps = [
|
||||||
'support-annotations' : "com.android.support:support-annotations:$supportVersion",
|
'x-annotations' : 'androidx.annotation:annotation:1.1.0',
|
||||||
'support-app-compat' : "com.android.support:appcompat-v7:$supportVersion",
|
'x-recycler-view' : 'androidx.recyclerview:recyclerview:1.0.0',
|
||||||
'support-recycler-view' : "com.android.support:recyclerview-v7:$supportVersion",
|
|
||||||
'commonmark' : "com.atlassian.commonmark:commonmark:$commonMarkVersion",
|
'commonmark' : "com.atlassian.commonmark:commonmark:$commonMarkVersion",
|
||||||
'commonmark-strikethrough': "com.atlassian.commonmark:commonmark-ext-gfm-strikethrough:$commonMarkVersion",
|
'commonmark-strikethrough': "com.atlassian.commonmark:commonmark-ext-gfm-strikethrough:$commonMarkVersion",
|
||||||
'commonmark-table' : "com.atlassian.commonmark:commonmark-ext-gfm-tables:$commonMarkVersion",
|
'commonmark-table' : "com.atlassian.commonmark:commonmark-ext-gfm-tables:$commonMarkVersion",
|
||||||
@ -68,7 +66,7 @@ ext {
|
|||||||
'android-gif' : 'pl.droidsonroids.gif:android-gif-drawable:1.2.14',
|
'android-gif' : 'pl.droidsonroids.gif:android-gif-drawable:1.2.14',
|
||||||
'jlatexmath-android' : 'ru.noties:jlatexmath-android:0.1.0',
|
'jlatexmath-android' : 'ru.noties:jlatexmath-android:0.1.0',
|
||||||
'okhttp' : 'com.squareup.okhttp3:okhttp:3.9.0',
|
'okhttp' : 'com.squareup.okhttp3:okhttp:3.9.0',
|
||||||
'prism4j' : 'ru.noties:prism4j:1.1.0',
|
'prism4j' : 'io.noties:prism4j:2.0.0',
|
||||||
'debug' : 'io.noties:debug:5.0.0@jar',
|
'debug' : 'io.noties:debug:5.0.0@jar',
|
||||||
'adapt' : 'io.noties:adapt:2.0.0',
|
'adapt' : 'io.noties:adapt:2.0.0',
|
||||||
'dagger' : "com.google.dagger:dagger:$daggerVersion",
|
'dagger' : "com.google.dagger:dagger:$daggerVersion",
|
||||||
@ -77,7 +75,7 @@ ext {
|
|||||||
]
|
]
|
||||||
|
|
||||||
deps['annotationProcessor'] = [
|
deps['annotationProcessor'] = [
|
||||||
'prism4j-bundler': 'ru.noties:prism4j-bundler:1.1.0',
|
'prism4j-bundler': 'io.noties:prism4j-bundler:2.0.0',
|
||||||
'dagger-compiler': "com.google.dagger:dagger-compiler:$daggerVersion"
|
'dagger-compiler': "com.google.dagger:dagger-compiler:$daggerVersion"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -3,6 +3,8 @@ org.gradle.jvmargs=-Xmx5g -Dfile.encoding=UTF-8
|
|||||||
#org.gradle.parallel=true
|
#org.gradle.parallel=true
|
||||||
org.gradle.configureondemand=true
|
org.gradle.configureondemand=true
|
||||||
|
|
||||||
|
android.useAndroidX=true
|
||||||
|
android.enableJetifier=true
|
||||||
android.enableBuildCache=true
|
android.enableBuildCache=true
|
||||||
android.buildCacheDir=build/pre-dex-cache
|
android.buildCacheDir=build/pre-dex-cache
|
||||||
|
|
||||||
|
@ -16,7 +16,7 @@ android {
|
|||||||
dependencies {
|
dependencies {
|
||||||
|
|
||||||
deps.with {
|
deps.with {
|
||||||
api it['support-annotations']
|
api it['x-annotations']
|
||||||
api it['commonmark']
|
api it['commonmark']
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
package io.noties.markwon;
|
package io.noties.markwon;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import org.commonmark.node.Node;
|
import org.commonmark.node.Node;
|
||||||
import org.commonmark.parser.Parser;
|
import org.commonmark.parser.Parser;
|
||||||
|
|
||||||
|
@ -5,10 +5,11 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.provider.Browser;
|
import android.provider.Browser;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import io.noties.markwon.core.spans.LinkSpan;
|
import io.noties.markwon.core.spans.LinkSpan;
|
||||||
|
|
||||||
public class LinkResolverDef implements LinkSpan.Resolver {
|
public class LinkResolverDef implements LinkSpan.Resolver {
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
package io.noties.markwon;
|
package io.noties.markwon;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import org.commonmark.node.Node;
|
import org.commonmark.node.Node;
|
||||||
|
|
||||||
import io.noties.markwon.core.CorePlugin;
|
import io.noties.markwon.core.CorePlugin;
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
package io.noties.markwon;
|
package io.noties.markwon;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import org.commonmark.parser.Parser;
|
import org.commonmark.parser.Parser;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package io.noties.markwon;
|
package io.noties.markwon;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import io.noties.markwon.core.MarkwonTheme;
|
import io.noties.markwon.core.MarkwonTheme;
|
||||||
import io.noties.markwon.core.spans.LinkSpan;
|
import io.noties.markwon.core.spans.LinkSpan;
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
package io.noties.markwon;
|
package io.noties.markwon;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import org.commonmark.node.Node;
|
import org.commonmark.node.Node;
|
||||||
import org.commonmark.parser.Parser;
|
import org.commonmark.parser.Parser;
|
||||||
|
|
||||||
|
@ -1,184 +0,0 @@
|
|||||||
package io.noties.markwon;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.support.annotation.IdRes;
|
|
||||||
import android.support.annotation.LayoutRes;
|
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.view.LayoutInflater;
|
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.widget.TextView;
|
|
||||||
|
|
||||||
import org.commonmark.node.Node;
|
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @since 3.0.0
|
|
||||||
*/
|
|
||||||
public abstract class MarkwonNodeRenderer {
|
|
||||||
|
|
||||||
public interface ViewProvider<N extends Node> {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Please note that you should not attach created View to specified group. It will be done
|
|
||||||
* automatically.
|
|
||||||
*/
|
|
||||||
@NonNull
|
|
||||||
View provide(
|
|
||||||
@NonNull LayoutInflater inflater,
|
|
||||||
@NonNull ViewGroup group,
|
|
||||||
@NonNull Markwon markwon,
|
|
||||||
@NonNull N n);
|
|
||||||
}
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public static Builder builder(@NonNull ViewProvider<Node> defaultViewProvider) {
|
|
||||||
return new Builder(defaultViewProvider);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param defaultViewProviderLayoutResId layout resource id to be used in default view provider
|
|
||||||
* @param defaultViewProviderTextViewId id of a TextView in specified layout
|
|
||||||
* @return Builder
|
|
||||||
* @see SimpleTextViewProvider
|
|
||||||
*/
|
|
||||||
@NonNull
|
|
||||||
public static Builder builder(
|
|
||||||
@LayoutRes int defaultViewProviderLayoutResId,
|
|
||||||
@IdRes int defaultViewProviderTextViewId) {
|
|
||||||
return new Builder(new SimpleTextViewProvider(
|
|
||||||
defaultViewProviderLayoutResId,
|
|
||||||
defaultViewProviderTextViewId));
|
|
||||||
}
|
|
||||||
|
|
||||||
public abstract void render(@NonNull ViewGroup group, @NonNull Markwon markwon, @NonNull String markdown);
|
|
||||||
|
|
||||||
public abstract void render(@NonNull ViewGroup group, @NonNull Markwon markwon, @NonNull Node root);
|
|
||||||
|
|
||||||
|
|
||||||
public static class Builder {
|
|
||||||
|
|
||||||
private final ViewProvider<Node> defaultViewProvider;
|
|
||||||
|
|
||||||
private MarkwonReducer reducer;
|
|
||||||
private Map<Class<? extends Node>, ViewProvider<Node>> viewProviders;
|
|
||||||
private LayoutInflater inflater;
|
|
||||||
|
|
||||||
public Builder(@NonNull ViewProvider<Node> defaultViewProvider) {
|
|
||||||
this.defaultViewProvider = defaultViewProvider;
|
|
||||||
this.viewProviders = new HashMap<>(3);
|
|
||||||
}
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public Builder reducer(@NonNull MarkwonReducer reducer) {
|
|
||||||
this.reducer = reducer;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public <N extends Node> Builder viewProvider(
|
|
||||||
@NonNull Class<N> type,
|
|
||||||
@NonNull ViewProvider<? super N> viewProvider) {
|
|
||||||
//noinspection unchecked
|
|
||||||
viewProviders.put(type, (ViewProvider<Node>) viewProvider);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public Builder inflater(@NonNull LayoutInflater inflater) {
|
|
||||||
this.inflater = inflater;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
public MarkwonNodeRenderer build() {
|
|
||||||
if (reducer == null) {
|
|
||||||
reducer = MarkwonReducer.directChildren();
|
|
||||||
}
|
|
||||||
return new Impl(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class SimpleTextViewProvider implements ViewProvider<Node> {
|
|
||||||
|
|
||||||
private final int layoutResId;
|
|
||||||
private final int textViewId;
|
|
||||||
|
|
||||||
public SimpleTextViewProvider(@LayoutRes int layoutResId, @IdRes int textViewId) {
|
|
||||||
this.layoutResId = layoutResId;
|
|
||||||
this.textViewId = textViewId;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
@Override
|
|
||||||
public View provide(
|
|
||||||
@NonNull LayoutInflater inflater,
|
|
||||||
@NonNull ViewGroup group,
|
|
||||||
@NonNull Markwon markwon,
|
|
||||||
@NonNull Node node) {
|
|
||||||
final View view = inflater.inflate(layoutResId, group, false);
|
|
||||||
final TextView textView = view.findViewById(textViewId);
|
|
||||||
markwon.setParsedMarkdown(textView, markwon.render(node));
|
|
||||||
return view;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static class Impl extends MarkwonNodeRenderer {
|
|
||||||
|
|
||||||
private final MarkwonReducer reducer;
|
|
||||||
private final Map<Class<? extends Node>, ViewProvider<Node>> viewProviders;
|
|
||||||
private final ViewProvider<Node> defaultViewProvider;
|
|
||||||
|
|
||||||
private LayoutInflater inflater;
|
|
||||||
|
|
||||||
Impl(@NonNull Builder builder) {
|
|
||||||
this.reducer = builder.reducer;
|
|
||||||
this.viewProviders = builder.viewProviders;
|
|
||||||
this.defaultViewProvider = builder.defaultViewProvider;
|
|
||||||
this.inflater = builder.inflater;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void render(@NonNull ViewGroup group, @NonNull Markwon markwon, @NonNull String markdown) {
|
|
||||||
render(group, markwon, markwon.parse(markdown));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void render(@NonNull ViewGroup group, @NonNull Markwon markwon, @NonNull Node root) {
|
|
||||||
|
|
||||||
final LayoutInflater inflater = ensureLayoutInflater(group.getContext());
|
|
||||||
|
|
||||||
ViewProvider<Node> viewProvider;
|
|
||||||
|
|
||||||
for (Node node : reducer.reduce(root)) {
|
|
||||||
viewProvider = viewProvider(node);
|
|
||||||
group.addView(viewProvider.provide(inflater, group, markwon, node));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
private LayoutInflater ensureLayoutInflater(@NonNull Context context) {
|
|
||||||
LayoutInflater inflater = this.inflater;
|
|
||||||
if (inflater == null) {
|
|
||||||
inflater = this.inflater = LayoutInflater.from(context);
|
|
||||||
}
|
|
||||||
return inflater;
|
|
||||||
}
|
|
||||||
|
|
||||||
@NonNull
|
|
||||||
private ViewProvider<Node> viewProvider(@NonNull Node node) {
|
|
||||||
|
|
||||||
// check for specific node view provider
|
|
||||||
final ViewProvider<Node> provider = viewProviders.get(node.getClass());
|
|
||||||
if (provider != null) {
|
|
||||||
return provider;
|
|
||||||
}
|
|
||||||
|
|
||||||
// if it's not present, then we can return a default one
|
|
||||||
return defaultViewProvider;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
@ -1,9 +1,10 @@
|
|||||||
package io.noties.markwon;
|
package io.noties.markwon;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import org.commonmark.node.Node;
|
import org.commonmark.node.Node;
|
||||||
import org.commonmark.parser.Parser;
|
import org.commonmark.parser.Parser;
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package io.noties.markwon;
|
package io.noties.markwon;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import org.commonmark.node.Node;
|
import org.commonmark.node.Node;
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package io.noties.markwon;
|
package io.noties.markwon;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import org.commonmark.node.Node;
|
import org.commonmark.node.Node;
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package io.noties.markwon;
|
package io.noties.markwon;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import org.commonmark.node.Node;
|
import org.commonmark.node.Node;
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package io.noties.markwon;
|
package io.noties.markwon;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import org.commonmark.node.Node;
|
import org.commonmark.node.Node;
|
||||||
import org.commonmark.node.Visitor;
|
import org.commonmark.node.Visitor;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package io.noties.markwon;
|
package io.noties.markwon;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import org.commonmark.node.BlockQuote;
|
import org.commonmark.node.BlockQuote;
|
||||||
import org.commonmark.node.BulletList;
|
import org.commonmark.node.BulletList;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package io.noties.markwon;
|
package io.noties.markwon;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class to hold data in {@link RenderProps}. Represents a certain <em>property</em>.
|
* Class to hold data in {@link RenderProps}. Represents a certain <em>property</em>.
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package io.noties.markwon;
|
package io.noties.markwon;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
@ -13,8 +13,6 @@ import io.noties.markwon.core.CorePlugin;
|
|||||||
// @since 4.0.0-SNAPSHOT
|
// @since 4.0.0-SNAPSHOT
|
||||||
class RegistryImpl implements MarkwonPlugin.Registry {
|
class RegistryImpl implements MarkwonPlugin.Registry {
|
||||||
|
|
||||||
// todo: core-plugin must be (better be) first any way
|
|
||||||
|
|
||||||
private final List<MarkwonPlugin> origin;
|
private final List<MarkwonPlugin> origin;
|
||||||
private final List<MarkwonPlugin> plugins;
|
private final List<MarkwonPlugin> plugins;
|
||||||
private final Set<MarkwonPlugin> pending;
|
private final Set<MarkwonPlugin> pending;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package io.noties.markwon;
|
package io.noties.markwon;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @since 3.0.0
|
* @since 3.0.0
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package io.noties.markwon;
|
package io.noties.markwon;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package io.noties.markwon;
|
package io.noties.markwon;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @since 3.0.0
|
* @since 3.0.0
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
package io.noties.markwon;
|
package io.noties.markwon;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.support.annotation.VisibleForTesting;
|
|
||||||
import android.text.SpannableStringBuilder;
|
import android.text.SpannableStringBuilder;
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
|
||||||
import java.util.ArrayDeque;
|
import java.util.ArrayDeque;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
@ -1,12 +1,13 @@
|
|||||||
package io.noties.markwon.core;
|
package io.noties.markwon.core;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.support.annotation.VisibleForTesting;
|
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
import android.text.method.LinkMovementMethod;
|
import android.text.method.LinkMovementMethod;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
|
||||||
import org.commonmark.node.BlockQuote;
|
import org.commonmark.node.BlockQuote;
|
||||||
import org.commonmark.node.BulletList;
|
import org.commonmark.node.BulletList;
|
||||||
import org.commonmark.node.Code;
|
import org.commonmark.node.Code;
|
||||||
@ -30,15 +31,13 @@ import org.commonmark.node.ThematicBreak;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import io.noties.markwon.SpannableBuilder;
|
|
||||||
import io.noties.markwon.core.spans.OrderedListItemSpan;
|
|
||||||
import io.noties.markwon.image.ImageProps;
|
|
||||||
import io.noties.markwon.AbstractMarkwonPlugin;
|
import io.noties.markwon.AbstractMarkwonPlugin;
|
||||||
import io.noties.markwon.MarkwonConfiguration;
|
import io.noties.markwon.MarkwonConfiguration;
|
||||||
import io.noties.markwon.MarkwonSpansFactory;
|
import io.noties.markwon.MarkwonSpansFactory;
|
||||||
import io.noties.markwon.MarkwonVisitor;
|
import io.noties.markwon.MarkwonVisitor;
|
||||||
import io.noties.markwon.RenderProps;
|
import io.noties.markwon.RenderProps;
|
||||||
import io.noties.markwon.SpanFactory;
|
import io.noties.markwon.SpanFactory;
|
||||||
|
import io.noties.markwon.SpannableBuilder;
|
||||||
import io.noties.markwon.core.factory.BlockQuoteSpanFactory;
|
import io.noties.markwon.core.factory.BlockQuoteSpanFactory;
|
||||||
import io.noties.markwon.core.factory.CodeBlockSpanFactory;
|
import io.noties.markwon.core.factory.CodeBlockSpanFactory;
|
||||||
import io.noties.markwon.core.factory.CodeSpanFactory;
|
import io.noties.markwon.core.factory.CodeSpanFactory;
|
||||||
@ -48,6 +47,8 @@ import io.noties.markwon.core.factory.LinkSpanFactory;
|
|||||||
import io.noties.markwon.core.factory.ListItemSpanFactory;
|
import io.noties.markwon.core.factory.ListItemSpanFactory;
|
||||||
import io.noties.markwon.core.factory.StrongEmphasisSpanFactory;
|
import io.noties.markwon.core.factory.StrongEmphasisSpanFactory;
|
||||||
import io.noties.markwon.core.factory.ThematicBreakSpanFactory;
|
import io.noties.markwon.core.factory.ThematicBreakSpanFactory;
|
||||||
|
import io.noties.markwon.core.spans.OrderedListItemSpan;
|
||||||
|
import io.noties.markwon.image.ImageProps;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @see CoreProps
|
* @see CoreProps
|
||||||
|
@ -3,13 +3,14 @@ package io.noties.markwon.core;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
import android.graphics.Typeface;
|
import android.graphics.Typeface;
|
||||||
import android.support.annotation.ColorInt;
|
|
||||||
import android.support.annotation.IntRange;
|
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.Px;
|
|
||||||
import android.support.annotation.Size;
|
|
||||||
import android.text.TextPaint;
|
import android.text.TextPaint;
|
||||||
|
|
||||||
|
import androidx.annotation.ColorInt;
|
||||||
|
import androidx.annotation.IntRange;
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Px;
|
||||||
|
import androidx.annotation.Size;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package io.noties.markwon.core;
|
package io.noties.markwon.core;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import org.commonmark.node.Node;
|
import org.commonmark.node.Node;
|
||||||
|
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
package io.noties.markwon.core.factory;
|
package io.noties.markwon.core.factory;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import io.noties.markwon.core.spans.BlockQuoteSpan;
|
|
||||||
import io.noties.markwon.MarkwonConfiguration;
|
import io.noties.markwon.MarkwonConfiguration;
|
||||||
import io.noties.markwon.RenderProps;
|
import io.noties.markwon.RenderProps;
|
||||||
import io.noties.markwon.SpanFactory;
|
import io.noties.markwon.SpanFactory;
|
||||||
|
import io.noties.markwon.core.spans.BlockQuoteSpan;
|
||||||
|
|
||||||
public class BlockQuoteSpanFactory implements SpanFactory {
|
public class BlockQuoteSpanFactory implements SpanFactory {
|
||||||
@Nullable
|
@Nullable
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
package io.noties.markwon.core.factory;
|
package io.noties.markwon.core.factory;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import io.noties.markwon.core.spans.CodeBlockSpan;
|
|
||||||
import io.noties.markwon.MarkwonConfiguration;
|
import io.noties.markwon.MarkwonConfiguration;
|
||||||
import io.noties.markwon.RenderProps;
|
import io.noties.markwon.RenderProps;
|
||||||
import io.noties.markwon.SpanFactory;
|
import io.noties.markwon.SpanFactory;
|
||||||
|
import io.noties.markwon.core.spans.CodeBlockSpan;
|
||||||
|
|
||||||
public class CodeBlockSpanFactory implements SpanFactory {
|
public class CodeBlockSpanFactory implements SpanFactory {
|
||||||
@Nullable
|
@Nullable
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
package io.noties.markwon.core.factory;
|
package io.noties.markwon.core.factory;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import io.noties.markwon.core.spans.CodeSpan;
|
|
||||||
import io.noties.markwon.MarkwonConfiguration;
|
import io.noties.markwon.MarkwonConfiguration;
|
||||||
import io.noties.markwon.RenderProps;
|
import io.noties.markwon.RenderProps;
|
||||||
import io.noties.markwon.SpanFactory;
|
import io.noties.markwon.SpanFactory;
|
||||||
|
import io.noties.markwon.core.spans.CodeSpan;
|
||||||
|
|
||||||
public class CodeSpanFactory implements SpanFactory {
|
public class CodeSpanFactory implements SpanFactory {
|
||||||
@Nullable
|
@Nullable
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
package io.noties.markwon.core.factory;
|
package io.noties.markwon.core.factory;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import io.noties.markwon.core.spans.EmphasisSpan;
|
|
||||||
import io.noties.markwon.MarkwonConfiguration;
|
import io.noties.markwon.MarkwonConfiguration;
|
||||||
import io.noties.markwon.RenderProps;
|
import io.noties.markwon.RenderProps;
|
||||||
import io.noties.markwon.SpanFactory;
|
import io.noties.markwon.SpanFactory;
|
||||||
|
import io.noties.markwon.core.spans.EmphasisSpan;
|
||||||
|
|
||||||
public class EmphasisSpanFactory implements SpanFactory {
|
public class EmphasisSpanFactory implements SpanFactory {
|
||||||
@Nullable
|
@Nullable
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
package io.noties.markwon.core.factory;
|
package io.noties.markwon.core.factory;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import io.noties.markwon.core.CoreProps;
|
|
||||||
import io.noties.markwon.core.spans.HeadingSpan;
|
|
||||||
import io.noties.markwon.MarkwonConfiguration;
|
import io.noties.markwon.MarkwonConfiguration;
|
||||||
import io.noties.markwon.RenderProps;
|
import io.noties.markwon.RenderProps;
|
||||||
import io.noties.markwon.SpanFactory;
|
import io.noties.markwon.SpanFactory;
|
||||||
|
import io.noties.markwon.core.CoreProps;
|
||||||
|
import io.noties.markwon.core.spans.HeadingSpan;
|
||||||
|
|
||||||
public class HeadingSpanFactory implements SpanFactory {
|
public class HeadingSpanFactory implements SpanFactory {
|
||||||
@Nullable
|
@Nullable
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
package io.noties.markwon.core.factory;
|
package io.noties.markwon.core.factory;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import io.noties.markwon.core.CoreProps;
|
|
||||||
import io.noties.markwon.core.spans.LinkSpan;
|
|
||||||
import io.noties.markwon.MarkwonConfiguration;
|
import io.noties.markwon.MarkwonConfiguration;
|
||||||
import io.noties.markwon.RenderProps;
|
import io.noties.markwon.RenderProps;
|
||||||
import io.noties.markwon.SpanFactory;
|
import io.noties.markwon.SpanFactory;
|
||||||
|
import io.noties.markwon.core.CoreProps;
|
||||||
|
import io.noties.markwon.core.spans.LinkSpan;
|
||||||
|
|
||||||
public class LinkSpanFactory implements SpanFactory {
|
public class LinkSpanFactory implements SpanFactory {
|
||||||
@Nullable
|
@Nullable
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
package io.noties.markwon.core.factory;
|
package io.noties.markwon.core.factory;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import io.noties.markwon.core.CoreProps;
|
|
||||||
import io.noties.markwon.core.spans.BulletListItemSpan;
|
|
||||||
import io.noties.markwon.core.spans.OrderedListItemSpan;
|
|
||||||
import io.noties.markwon.MarkwonConfiguration;
|
import io.noties.markwon.MarkwonConfiguration;
|
||||||
import io.noties.markwon.RenderProps;
|
import io.noties.markwon.RenderProps;
|
||||||
import io.noties.markwon.SpanFactory;
|
import io.noties.markwon.SpanFactory;
|
||||||
|
import io.noties.markwon.core.CoreProps;
|
||||||
|
import io.noties.markwon.core.spans.BulletListItemSpan;
|
||||||
|
import io.noties.markwon.core.spans.OrderedListItemSpan;
|
||||||
|
|
||||||
public class ListItemSpanFactory implements SpanFactory {
|
public class ListItemSpanFactory implements SpanFactory {
|
||||||
|
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
package io.noties.markwon.core.factory;
|
package io.noties.markwon.core.factory;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import io.noties.markwon.core.spans.StrongEmphasisSpan;
|
|
||||||
import io.noties.markwon.MarkwonConfiguration;
|
import io.noties.markwon.MarkwonConfiguration;
|
||||||
import io.noties.markwon.RenderProps;
|
import io.noties.markwon.RenderProps;
|
||||||
import io.noties.markwon.SpanFactory;
|
import io.noties.markwon.SpanFactory;
|
||||||
|
import io.noties.markwon.core.spans.StrongEmphasisSpan;
|
||||||
|
|
||||||
public class StrongEmphasisSpanFactory implements SpanFactory {
|
public class StrongEmphasisSpanFactory implements SpanFactory {
|
||||||
@Nullable
|
@Nullable
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
package io.noties.markwon.core.factory;
|
package io.noties.markwon.core.factory;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import io.noties.markwon.core.spans.ThematicBreakSpan;
|
|
||||||
import io.noties.markwon.MarkwonConfiguration;
|
import io.noties.markwon.MarkwonConfiguration;
|
||||||
import io.noties.markwon.RenderProps;
|
import io.noties.markwon.RenderProps;
|
||||||
import io.noties.markwon.SpanFactory;
|
import io.noties.markwon.SpanFactory;
|
||||||
|
import io.noties.markwon.core.spans.ThematicBreakSpan;
|
||||||
|
|
||||||
public class ThematicBreakSpanFactory implements SpanFactory {
|
public class ThematicBreakSpanFactory implements SpanFactory {
|
||||||
@Nullable
|
@Nullable
|
||||||
|
@ -3,10 +3,11 @@ package io.noties.markwon.core.spans;
|
|||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.text.Layout;
|
import android.text.Layout;
|
||||||
import android.text.style.LeadingMarginSpan;
|
import android.text.style.LeadingMarginSpan;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import io.noties.markwon.core.MarkwonTheme;
|
import io.noties.markwon.core.MarkwonTheme;
|
||||||
|
|
||||||
public class BlockQuoteSpan implements LeadingMarginSpan {
|
public class BlockQuoteSpan implements LeadingMarginSpan {
|
||||||
|
@ -4,11 +4,12 @@ import android.graphics.Canvas;
|
|||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.graphics.RectF;
|
import android.graphics.RectF;
|
||||||
import android.support.annotation.IntRange;
|
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.text.Layout;
|
import android.text.Layout;
|
||||||
import android.text.style.LeadingMarginSpan;
|
import android.text.style.LeadingMarginSpan;
|
||||||
|
|
||||||
|
import androidx.annotation.IntRange;
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import io.noties.markwon.core.MarkwonTheme;
|
import io.noties.markwon.core.MarkwonTheme;
|
||||||
import io.noties.markwon.utils.LeadingMarginUtils;
|
import io.noties.markwon.utils.LeadingMarginUtils;
|
||||||
|
|
||||||
|
@ -3,12 +3,13 @@ package io.noties.markwon.core.spans;
|
|||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.text.Layout;
|
import android.text.Layout;
|
||||||
import android.text.TextPaint;
|
import android.text.TextPaint;
|
||||||
import android.text.style.LeadingMarginSpan;
|
import android.text.style.LeadingMarginSpan;
|
||||||
import android.text.style.MetricAffectingSpan;
|
import android.text.style.MetricAffectingSpan;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import io.noties.markwon.core.MarkwonTheme;
|
import io.noties.markwon.core.MarkwonTheme;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
package io.noties.markwon.core.spans;
|
package io.noties.markwon.core.spans;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.text.TextPaint;
|
import android.text.TextPaint;
|
||||||
import android.text.style.MetricAffectingSpan;
|
import android.text.style.MetricAffectingSpan;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import io.noties.markwon.core.MarkwonTheme;
|
import io.noties.markwon.core.MarkwonTheme;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
package io.noties.markwon.core.spans;
|
package io.noties.markwon.core.spans;
|
||||||
|
|
||||||
import android.graphics.Typeface;
|
import android.graphics.Typeface;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.text.TextPaint;
|
import android.text.TextPaint;
|
||||||
import android.text.style.MetricAffectingSpan;
|
import android.text.style.MetricAffectingSpan;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A span implementation that allow applying custom Typeface. Although it is
|
* A span implementation that allow applying custom Typeface. Although it is
|
||||||
* not used directly by the library, it\'s helpful for customizations.
|
* not used directly by the library, it\'s helpful for customizations.
|
||||||
|
@ -3,13 +3,14 @@ package io.noties.markwon.core.spans;
|
|||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.support.annotation.IntRange;
|
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.text.Layout;
|
import android.text.Layout;
|
||||||
import android.text.TextPaint;
|
import android.text.TextPaint;
|
||||||
import android.text.style.LeadingMarginSpan;
|
import android.text.style.LeadingMarginSpan;
|
||||||
import android.text.style.MetricAffectingSpan;
|
import android.text.style.MetricAffectingSpan;
|
||||||
|
|
||||||
|
import androidx.annotation.IntRange;
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import io.noties.markwon.core.MarkwonTheme;
|
import io.noties.markwon.core.MarkwonTheme;
|
||||||
import io.noties.markwon.utils.LeadingMarginUtils;
|
import io.noties.markwon.utils.LeadingMarginUtils;
|
||||||
|
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
package io.noties.markwon.core.spans;
|
package io.noties.markwon.core.spans;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.text.TextPaint;
|
import android.text.TextPaint;
|
||||||
import android.text.style.URLSpan;
|
import android.text.style.URLSpan;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import io.noties.markwon.core.MarkwonTheme;
|
import io.noties.markwon.core.MarkwonTheme;
|
||||||
|
|
||||||
public class LinkSpan extends URLSpan {
|
public class LinkSpan extends URLSpan {
|
||||||
|
@ -2,13 +2,14 @@ package io.noties.markwon.core.spans;
|
|||||||
|
|
||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.text.Layout;
|
import android.text.Layout;
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
import android.text.TextPaint;
|
import android.text.TextPaint;
|
||||||
import android.text.style.LeadingMarginSpan;
|
import android.text.style.LeadingMarginSpan;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import io.noties.markwon.core.MarkwonTheme;
|
import io.noties.markwon.core.MarkwonTheme;
|
||||||
import io.noties.markwon.utils.LeadingMarginUtils;
|
import io.noties.markwon.utils.LeadingMarginUtils;
|
||||||
|
|
||||||
|
@ -3,10 +3,11 @@ package io.noties.markwon.core.spans;
|
|||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.text.Layout;
|
import android.text.Layout;
|
||||||
import android.text.style.LeadingMarginSpan;
|
import android.text.style.LeadingMarginSpan;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import io.noties.markwon.core.MarkwonTheme;
|
import io.noties.markwon.core.MarkwonTheme;
|
||||||
|
|
||||||
public class ThematicBreakSpan implements LeadingMarginSpan {
|
public class ThematicBreakSpan implements LeadingMarginSpan {
|
||||||
|
@ -6,9 +6,10 @@ import android.graphics.PixelFormat;
|
|||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.graphics.drawable.Animatable;
|
import android.graphics.drawable.Animatable;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.support.annotation.IntRange;
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.IntRange;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
public class AsyncDrawable extends Drawable {
|
public class AsyncDrawable extends Drawable {
|
||||||
|
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
package io.noties.markwon.image;
|
package io.noties.markwon.image;
|
||||||
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
public abstract class AsyncDrawableLoader {
|
public abstract class AsyncDrawableLoader {
|
||||||
|
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
package io.noties.markwon.image;
|
package io.noties.markwon.image;
|
||||||
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
class AsyncDrawableLoaderNoOp extends AsyncDrawableLoader {
|
class AsyncDrawableLoaderNoOp extends AsyncDrawableLoader {
|
||||||
@Override
|
@Override
|
||||||
|
@ -4,12 +4,13 @@ import android.graphics.Rect;
|
|||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import io.noties.markwon.R;
|
import io.noties.markwon.R;
|
||||||
|
|
||||||
public abstract class AsyncDrawableScheduler {
|
public abstract class AsyncDrawableScheduler {
|
||||||
|
@ -3,12 +3,13 @@ package io.noties.markwon.image;
|
|||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.support.annotation.IntDef;
|
|
||||||
import android.support.annotation.IntRange;
|
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.text.style.ReplacementSpan;
|
import android.text.style.ReplacementSpan;
|
||||||
|
|
||||||
|
import androidx.annotation.IntDef;
|
||||||
|
import androidx.annotation.IntRange;
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
|
||||||
|
@ -2,8 +2,9 @@ package io.noties.markwon.image;
|
|||||||
|
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.support.annotation.CheckResult;
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.CheckResult;
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @since 3.0.1
|
* @since 3.0.1
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package io.noties.markwon.image;
|
package io.noties.markwon.image;
|
||||||
|
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @since 1.0.1
|
* @since 1.0.1
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
package io.noties.markwon.image;
|
package io.noties.markwon.image;
|
||||||
|
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @since 1.0.1
|
* @since 1.0.1
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
package io.noties.markwon.image;
|
package io.noties.markwon.image;
|
||||||
|
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @since 1.0.1
|
* @since 1.0.1
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package io.noties.markwon.image;
|
package io.noties.markwon.image;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import io.noties.markwon.MarkwonConfiguration;
|
import io.noties.markwon.MarkwonConfiguration;
|
||||||
import io.noties.markwon.RenderProps;
|
import io.noties.markwon.RenderProps;
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
package io.noties.markwon.movement;
|
package io.noties.markwon.movement;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
import android.text.method.LinkMovementMethod;
|
import android.text.method.LinkMovementMethod;
|
||||||
import android.text.method.MovementMethod;
|
import android.text.method.MovementMethod;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import io.noties.markwon.AbstractMarkwonPlugin;
|
import io.noties.markwon.AbstractMarkwonPlugin;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package io.noties.markwon.syntax;
|
package io.noties.markwon.syntax;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
@SuppressWarnings("WeakerAccess")
|
@SuppressWarnings("WeakerAccess")
|
||||||
public interface SyntaxHighlight {
|
public interface SyntaxHighlight {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package io.noties.markwon.syntax;
|
package io.noties.markwon.syntax;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
public class SyntaxHighlightNoOp implements SyntaxHighlight {
|
public class SyntaxHighlightNoOp implements SyntaxHighlight {
|
||||||
@NonNull
|
@NonNull
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package io.noties.markwon.urlprocessor;
|
package io.noties.markwon.urlprocessor;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
public interface UrlProcessor {
|
public interface UrlProcessor {
|
||||||
@NonNull
|
@NonNull
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
package io.noties.markwon.urlprocessor;
|
package io.noties.markwon.urlprocessor;
|
||||||
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Processor that will <em>assume</em> that an URL without scheme points to android assets folder.
|
* Processor that will <em>assume</em> that an URL without scheme points to android assets folder.
|
||||||
* URL with a scheme will be processed by {@link #processor} (if it is specified) or returned `as-is`.
|
* URL with a scheme will be processed by {@link #processor} (if it is specified) or returned `as-is`.
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package io.noties.markwon.urlprocessor;
|
package io.noties.markwon.urlprocessor;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
public class UrlProcessorNoOp implements UrlProcessor {
|
public class UrlProcessorNoOp implements UrlProcessor {
|
||||||
@NonNull
|
@NonNull
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package io.noties.markwon.urlprocessor;
|
package io.noties.markwon.urlprocessor;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import java.net.MalformedURLException;
|
import java.net.MalformedURLException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
package io.noties.markwon.utils;
|
package io.noties.markwon.utils;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
public class Dip {
|
public class Dip {
|
||||||
|
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
package io.noties.markwon.utils;
|
package io.noties.markwon.utils;
|
||||||
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @deprecated Please use {@link io.noties.markwon.image.DrawableUtils}
|
* @deprecated Please use {@link io.noties.markwon.image.DrawableUtils}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package io.noties.markwon.utils;
|
package io.noties.markwon.utils;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import org.commonmark.node.Block;
|
import org.commonmark.node.Block;
|
||||||
import org.commonmark.node.Node;
|
import org.commonmark.node.Node;
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
package io.noties.markwon.utils;
|
package io.noties.markwon.utils;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.text.Spannable;
|
import android.text.Spannable;
|
||||||
import android.text.SpannableString;
|
import android.text.SpannableString;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Utility SpannableFactory that re-uses Spannable instance between multiple
|
* Utility SpannableFactory that re-uses Spannable instance between multiple
|
||||||
* `TextView#setText` calls.
|
* `TextView#setText` calls.
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package io.noties.markwon;
|
package io.noties.markwon;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import org.commonmark.node.Node;
|
import org.commonmark.node.Node;
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package io.noties.markwon;
|
package io.noties.markwon;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package io.noties.markwon;
|
package io.noties.markwon;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package io.noties.markwon;
|
package io.noties.markwon;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.text.SpannableStringBuilder;
|
import android.text.SpannableStringBuilder;
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package io.noties.markwon.core;
|
package io.noties.markwon.core;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import org.commonmark.node.Node;
|
import org.commonmark.node.Node;
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package io.noties.markwon.core;
|
package io.noties.markwon.core;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import android.text.method.MovementMethod;
|
import android.text.method.MovementMethod;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package io.noties.markwon.core;
|
package io.noties.markwon.core;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
|
|
||||||
import org.commonmark.node.Emphasis;
|
import org.commonmark.node.Emphasis;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package io.noties.markwon.core.suite;
|
package io.noties.markwon.core.suite;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
|
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
|
@ -4,8 +4,8 @@ import android.graphics.Canvas;
|
|||||||
import android.graphics.ColorFilter;
|
import android.graphics.ColorFilter;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
package io.noties.markwon.image;
|
package io.noties.markwon.image;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import org.commonmark.node.Image;
|
import org.commonmark.node.Image;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
@ -1,11 +1,12 @@
|
|||||||
package io.noties.markwon.syntax;
|
package io.noties.markwon.syntax;
|
||||||
|
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.text.SpannableStringBuilder;
|
import android.text.SpannableStringBuilder;
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import org.commonmark.node.FencedCodeBlock;
|
import org.commonmark.node.FencedCodeBlock;
|
||||||
import org.commonmark.node.Node;
|
import org.commonmark.node.Node;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
@ -4,12 +4,13 @@ import android.graphics.drawable.Drawable;
|
|||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.support.annotation.Px;
|
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.annotation.Px;
|
||||||
|
|
||||||
import org.commonmark.parser.Parser;
|
import org.commonmark.parser.Parser;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -18,15 +19,15 @@ import java.util.concurrent.ExecutorService;
|
|||||||
import java.util.concurrent.Executors;
|
import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.Future;
|
import java.util.concurrent.Future;
|
||||||
|
|
||||||
import io.noties.markwon.image.AsyncDrawable;
|
|
||||||
import io.noties.markwon.image.AsyncDrawableScheduler;
|
|
||||||
import io.noties.markwon.image.AsyncDrawableSpan;
|
|
||||||
import ru.noties.jlatexmath.JLatexMathDrawable;
|
|
||||||
import io.noties.markwon.AbstractMarkwonPlugin;
|
import io.noties.markwon.AbstractMarkwonPlugin;
|
||||||
import io.noties.markwon.MarkwonConfiguration;
|
import io.noties.markwon.MarkwonConfiguration;
|
||||||
import io.noties.markwon.MarkwonVisitor;
|
import io.noties.markwon.MarkwonVisitor;
|
||||||
|
import io.noties.markwon.image.AsyncDrawable;
|
||||||
import io.noties.markwon.image.AsyncDrawableLoader;
|
import io.noties.markwon.image.AsyncDrawableLoader;
|
||||||
|
import io.noties.markwon.image.AsyncDrawableScheduler;
|
||||||
|
import io.noties.markwon.image.AsyncDrawableSpan;
|
||||||
import io.noties.markwon.image.ImageSize;
|
import io.noties.markwon.image.ImageSize;
|
||||||
|
import ru.noties.jlatexmath.JLatexMathDrawable;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @since 3.0.0
|
* @since 3.0.0
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
package io.noties.markwon.ext.strikethrough;
|
package io.noties.markwon.ext.strikethrough;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.text.style.StrikethroughSpan;
|
import android.text.style.StrikethroughSpan;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import org.commonmark.ext.gfm.strikethrough.Strikethrough;
|
import org.commonmark.ext.gfm.strikethrough.Strikethrough;
|
||||||
import org.commonmark.ext.gfm.strikethrough.StrikethroughExtension;
|
import org.commonmark.ext.gfm.strikethrough.StrikethroughExtension;
|
||||||
import org.commonmark.parser.Parser;
|
import org.commonmark.parser.Parser;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package io.noties.markwon.ext.strikethrough;
|
package io.noties.markwon.ext.strikethrough;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import android.text.style.StrikethroughSpan;
|
import android.text.style.StrikethroughSpan;
|
||||||
|
|
||||||
import org.commonmark.Extension;
|
import org.commonmark.Extension;
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
package io.noties.markwon.ext.tables;
|
package io.noties.markwon.ext.tables;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import org.commonmark.ext.gfm.tables.TableBlock;
|
import org.commonmark.ext.gfm.tables.TableBlock;
|
||||||
import org.commonmark.ext.gfm.tables.TableCell;
|
import org.commonmark.ext.gfm.tables.TableCell;
|
||||||
import org.commonmark.ext.gfm.tables.TableHead;
|
import org.commonmark.ext.gfm.tables.TableHead;
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
package io.noties.markwon.ext.tables;
|
package io.noties.markwon.ext.tables;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import org.commonmark.ext.gfm.tables.TableBody;
|
import org.commonmark.ext.gfm.tables.TableBody;
|
||||||
import org.commonmark.ext.gfm.tables.TableCell;
|
import org.commonmark.ext.gfm.tables.TableCell;
|
||||||
import org.commonmark.ext.gfm.tables.TableHead;
|
import org.commonmark.ext.gfm.tables.TableHead;
|
||||||
|
@ -4,15 +4,16 @@ import android.annotation.SuppressLint;
|
|||||||
import android.graphics.Canvas;
|
import android.graphics.Canvas;
|
||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
import android.support.annotation.IntDef;
|
|
||||||
import android.support.annotation.IntRange;
|
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.text.Layout;
|
import android.text.Layout;
|
||||||
import android.text.StaticLayout;
|
import android.text.StaticLayout;
|
||||||
import android.text.TextPaint;
|
import android.text.TextPaint;
|
||||||
import android.text.style.ReplacementSpan;
|
import android.text.style.ReplacementSpan;
|
||||||
|
|
||||||
|
import androidx.annotation.IntDef;
|
||||||
|
import androidx.annotation.IntRange;
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -1,12 +1,13 @@
|
|||||||
package io.noties.markwon.ext.tables;
|
package io.noties.markwon.ext.tables;
|
||||||
|
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import android.support.annotation.Nullable;
|
|
||||||
import android.text.Spanned;
|
import android.text.Spanned;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
abstract class TableRowsScheduler {
|
abstract class TableRowsScheduler {
|
||||||
|
|
||||||
static void schedule(@NonNull final TextView view) {
|
static void schedule(@NonNull final TextView view) {
|
||||||
|
@ -2,9 +2,10 @@ package io.noties.markwon.ext.tables;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
import android.support.annotation.ColorInt;
|
|
||||||
import android.support.annotation.NonNull;
|
import androidx.annotation.ColorInt;
|
||||||
import android.support.annotation.Px;
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Px;
|
||||||
|
|
||||||
import io.noties.markwon.utils.ColorUtils;
|
import io.noties.markwon.utils.ColorUtils;
|
||||||
import io.noties.markwon.utils.Dip;
|
import io.noties.markwon.utils.Dip;
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user