Migrate to androidx

This commit is contained in:
Dimitry Ivanov 2019-06-11 18:42:14 +03:00
parent a2a5857f06
commit 9aade9d6ca
213 changed files with 555 additions and 647 deletions

View File

@ -31,7 +31,7 @@ features listed in [commonmark-spec] are supported
![stable](https://img.shields.io/maven-central/v/io.noties.markwon/core.svg?label=stable) ![stable](https://img.shields.io/maven-central/v/io.noties.markwon/core.svg?label=stable)
![snapshot](https://img.shields.io/nexus/s/https/oss.sonatype.org/io.noties.markwon/core.svg?label=snapshot) ![snapshot](https://img.shields.io/nexus/s/https/oss.sonatype.org/io.noties.markwon/core.svg?label=snapshot)
```groovy ```kotlin
implementation "io.noties.markwon:core:${markwonVersion}" implementation "io.noties.markwon:core:${markwonVersion}"
``` ```

View File

@ -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;

View File

@ -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;

View File

@ -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 {

View File

@ -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)

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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;

View File

@ -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 {

View File

@ -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";

View File

@ -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;

View File

@ -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 {

View File

@ -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;

View File

@ -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;

View File

@ -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 {

View File

@ -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;

View File

@ -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"
] ]

View File

@ -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

View File

@ -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']
} }

View File

@ -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;

View File

@ -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 {

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;
}
}
}

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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>.

View File

@ -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;

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 {

View File

@ -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

View File

@ -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

View File

@ -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 {

View File

@ -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;

View File

@ -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;
/** /**

View File

@ -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;
/** /**

View File

@ -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.

View File

@ -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;

View File

@ -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 {

View File

@ -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;

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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

View File

@ -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 {

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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;
/** /**

View File

@ -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 {

View File

@ -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

View File

@ -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

View File

@ -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`.

View File

@ -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

View File

@ -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;

View File

@ -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 {

View File

@ -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}

View File

@ -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;

View File

@ -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.

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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) {

View File

@ -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