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)
![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}"
```

View File

@ -4,7 +4,7 @@ import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.support.annotation.Nullable;
import androidx.annotation.Nullable;
import android.util.AttributeSet;
import android.view.View;

View File

@ -2,7 +2,8 @@ package io.noties.markwon.app;
import android.app.Application;
import android.content.Context;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import io.noties.debug.AndroidLogDebugOutput;
import io.noties.debug.Debug;

View File

@ -1,10 +1,11 @@
package io.noties.markwon.app;
import android.support.annotation.NonNull;
import android.text.TextUtils;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.NonNull;
abstract class AppBarItem {
static class State {

View File

@ -16,8 +16,8 @@ import io.noties.markwon.syntax.Prism4jThemeDarkula;
import io.noties.markwon.syntax.Prism4jThemeDefault;
import okhttp3.Cache;
import okhttp3.OkHttpClient;
import ru.noties.prism4j.Prism4j;
import ru.noties.prism4j.annotations.PrismBundle;
import io.noties.prism4j.Prism4j;
import io.noties.prism4j.annotations.PrismBundle;
@Module
@PrismBundle(includeAll = true)

View File

@ -4,16 +4,17 @@ import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.Spanned;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import javax.inject.Inject;
import io.noties.markwon.Markwon;
import io.noties.debug.Debug;
import io.noties.markwon.Markwon;
public class MainActivity extends Activity {

View File

@ -4,10 +4,11 @@ import android.content.ContentResolver;
import android.content.Context;
import android.net.Uri;
import android.os.Handler;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.TextUtils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
@ -20,11 +21,11 @@ import java.util.concurrent.Future;
import javax.inject.Inject;
import io.noties.debug.Debug;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import okhttp3.ResponseBody;
import io.noties.debug.Debug;
@ActivityScope
public class MarkdownLoader {

View File

@ -4,10 +4,11 @@ import android.content.Context;
import android.net.Uri;
import android.os.Handler;
import android.os.SystemClock;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.Spanned;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.util.concurrent.ExecutorService;
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.urlprocessor.UrlProcessor;
import io.noties.markwon.urlprocessor.UrlProcessorRelativeToAbsolute;
import ru.noties.prism4j.Prism4j;
import io.noties.prism4j.Prism4j;
@ActivityScope
public class MarkdownRenderer {

View File

@ -2,7 +2,8 @@ package io.noties.markwon.app;
import android.content.Context;
import android.content.SharedPreferences;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import javax.inject.Inject;
import javax.inject.Singleton;

View File

@ -1,7 +1,8 @@
package io.noties.markwon.app;
import android.net.Uri;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
@SuppressWarnings("WeakerAccess")
public interface UriProcessor {

View File

@ -1,7 +1,8 @@
package io.noties.markwon.app;
import android.net.Uri;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import java.util.List;

View File

@ -1,9 +1,10 @@
package io.noties.markwon.app;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.text.TextUtils;
import androidx.annotation.NonNull;
import io.noties.markwon.urlprocessor.UrlProcessor;
import io.noties.markwon.urlprocessor.UrlProcessorRelativeToAbsolute;

View File

@ -1,9 +1,10 @@
package io.noties.markwon.app;
import android.support.annotation.IntDef;
import android.support.annotation.NonNull;
import android.view.View;
import androidx.annotation.IntDef;
import androidx.annotation.NonNull;
@SuppressWarnings("WeakerAccess")
public abstract class Views {

View File

@ -2,8 +2,9 @@ package io.noties.markwon.app.gif;
import android.graphics.Canvas;
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.AsyncDrawableLoader;

View File

@ -1,9 +1,10 @@
package io.noties.markwon.app.gif;
import android.content.Context;
import android.support.annotation.NonNull;
import android.widget.TextView;
import androidx.annotation.NonNull;
import org.commonmark.node.Image;
import io.noties.markwon.AbstractMarkwonPlugin;

View File

@ -6,9 +6,10 @@ import android.graphics.Paint;
import android.graphics.PixelFormat;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.support.annotation.ColorInt;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
public class GifPlaceholder extends Drawable {

View File

@ -1,13 +1,14 @@
package io.noties.markwon.app.gif;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.Spannable;
import android.text.Spanned;
import android.text.style.ClickableSpan;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import io.noties.markwon.image.AsyncDrawableSpan;
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'
]
final def supportVersion = '28.0.0'
final def commonMarkVersion = '0.12.1'
final def daggerVersion = '2.10'
deps = [
'support-annotations' : "com.android.support:support-annotations:$supportVersion",
'support-app-compat' : "com.android.support:appcompat-v7:$supportVersion",
'support-recycler-view' : "com.android.support:recyclerview-v7:$supportVersion",
'x-annotations' : 'androidx.annotation:annotation:1.1.0',
'x-recycler-view' : 'androidx.recyclerview:recyclerview:1.0.0',
'commonmark' : "com.atlassian.commonmark:commonmark:$commonMarkVersion",
'commonmark-strikethrough': "com.atlassian.commonmark:commonmark-ext-gfm-strikethrough:$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',
'jlatexmath-android' : 'ru.noties:jlatexmath-android:0.1.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',
'adapt' : 'io.noties:adapt:2.0.0',
'dagger' : "com.google.dagger:dagger:$daggerVersion",
@ -77,7 +75,7 @@ ext {
]
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"
]

View File

@ -3,6 +3,8 @@ org.gradle.jvmargs=-Xmx5g -Dfile.encoding=UTF-8
#org.gradle.parallel=true
org.gradle.configureondemand=true
android.useAndroidX=true
android.enableJetifier=true
android.enableBuildCache=true
android.buildCacheDir=build/pre-dex-cache

View File

@ -16,7 +16,7 @@ android {
dependencies {
deps.with {
api it['support-annotations']
api it['x-annotations']
api it['commonmark']
}

View File

@ -1,9 +1,10 @@
package io.noties.markwon;
import android.support.annotation.NonNull;
import android.text.Spanned;
import android.widget.TextView;
import androidx.annotation.NonNull;
import org.commonmark.node.Node;
import org.commonmark.parser.Parser;

View File

@ -5,10 +5,11 @@ import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.provider.Browser;
import android.support.annotation.NonNull;
import android.util.Log;
import android.view.View;
import androidx.annotation.NonNull;
import io.noties.markwon.core.spans.LinkSpan;
public class LinkResolverDef implements LinkSpan.Resolver {

View File

@ -1,11 +1,12 @@
package io.noties.markwon;
import android.content.Context;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.Spanned;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import org.commonmark.node.Node;
import io.noties.markwon.core.CorePlugin;

View File

@ -1,9 +1,10 @@
package io.noties.markwon;
import android.content.Context;
import android.support.annotation.NonNull;
import android.widget.TextView;
import androidx.annotation.NonNull;
import org.commonmark.parser.Parser;
import java.util.ArrayList;

View File

@ -1,6 +1,6 @@
package io.noties.markwon;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import io.noties.markwon.core.MarkwonTheme;
import io.noties.markwon.core.spans.LinkSpan;

View File

@ -1,10 +1,11 @@
package io.noties.markwon;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.Spanned;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import org.commonmark.node.Node;
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;
import android.support.annotation.NonNull;
import android.text.Spanned;
import android.widget.TextView;
import androidx.annotation.NonNull;
import org.commonmark.node.Node;
import org.commonmark.parser.Parser;

View File

@ -1,6 +1,6 @@
package io.noties.markwon;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import org.commonmark.node.Node;

View File

@ -1,7 +1,7 @@
package io.noties.markwon;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import org.commonmark.node.Node;

View File

@ -1,7 +1,7 @@
package io.noties.markwon;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import org.commonmark.node.Node;

View File

@ -1,7 +1,7 @@
package io.noties.markwon;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import org.commonmark.node.Node;
import org.commonmark.node.Visitor;

View File

@ -1,7 +1,7 @@
package io.noties.markwon;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import org.commonmark.node.BlockQuote;
import org.commonmark.node.BulletList;

View File

@ -1,7 +1,7 @@
package io.noties.markwon;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
/**
* Class to hold data in {@link RenderProps}. Represents a certain <em>property</em>.

View File

@ -1,7 +1,7 @@
package io.noties.markwon;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.util.ArrayList;
import java.util.HashSet;
@ -13,8 +13,6 @@ import io.noties.markwon.core.CorePlugin;
// @since 4.0.0-SNAPSHOT
class RegistryImpl implements MarkwonPlugin.Registry {
// todo: core-plugin must be (better be) first any way
private final List<MarkwonPlugin> origin;
private final List<MarkwonPlugin> plugins;
private final Set<MarkwonPlugin> pending;

View File

@ -1,7 +1,7 @@
package io.noties.markwon;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
/**
* @since 3.0.0

View File

@ -1,7 +1,7 @@
package io.noties.markwon;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.util.HashMap;
import java.util.Map;

View File

@ -1,7 +1,7 @@
package io.noties.markwon;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
/**
* @since 3.0.0

View File

@ -1,11 +1,12 @@
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.Spanned;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.VisibleForTesting;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Collections;

View File

@ -1,12 +1,13 @@
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.method.LinkMovementMethod;
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.BulletList;
import org.commonmark.node.Code;
@ -30,15 +31,13 @@ import org.commonmark.node.ThematicBreak;
import java.util.ArrayList;
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.MarkwonConfiguration;
import io.noties.markwon.MarkwonSpansFactory;
import io.noties.markwon.MarkwonVisitor;
import io.noties.markwon.RenderProps;
import io.noties.markwon.SpanFactory;
import io.noties.markwon.SpannableBuilder;
import io.noties.markwon.core.factory.BlockQuoteSpanFactory;
import io.noties.markwon.core.factory.CodeBlockSpanFactory;
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.StrongEmphasisSpanFactory;
import io.noties.markwon.core.factory.ThematicBreakSpanFactory;
import io.noties.markwon.core.spans.OrderedListItemSpan;
import io.noties.markwon.image.ImageProps;
/**
* @see CoreProps

View File

@ -3,13 +3,14 @@ package io.noties.markwon.core;
import android.content.Context;
import android.graphics.Paint;
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 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.Locale;

View File

@ -1,6 +1,6 @@
package io.noties.markwon.core;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import org.commonmark.node.Node;

View File

@ -1,12 +1,12 @@
package io.noties.markwon.core.factory;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import io.noties.markwon.core.spans.BlockQuoteSpan;
import io.noties.markwon.MarkwonConfiguration;
import io.noties.markwon.RenderProps;
import io.noties.markwon.SpanFactory;
import io.noties.markwon.core.spans.BlockQuoteSpan;
public class BlockQuoteSpanFactory implements SpanFactory {
@Nullable

View File

@ -1,12 +1,12 @@
package io.noties.markwon.core.factory;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import io.noties.markwon.core.spans.CodeBlockSpan;
import io.noties.markwon.MarkwonConfiguration;
import io.noties.markwon.RenderProps;
import io.noties.markwon.SpanFactory;
import io.noties.markwon.core.spans.CodeBlockSpan;
public class CodeBlockSpanFactory implements SpanFactory {
@Nullable

View File

@ -1,12 +1,12 @@
package io.noties.markwon.core.factory;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import io.noties.markwon.core.spans.CodeSpan;
import io.noties.markwon.MarkwonConfiguration;
import io.noties.markwon.RenderProps;
import io.noties.markwon.SpanFactory;
import io.noties.markwon.core.spans.CodeSpan;
public class CodeSpanFactory implements SpanFactory {
@Nullable

View File

@ -1,12 +1,12 @@
package io.noties.markwon.core.factory;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import io.noties.markwon.core.spans.EmphasisSpan;
import io.noties.markwon.MarkwonConfiguration;
import io.noties.markwon.RenderProps;
import io.noties.markwon.SpanFactory;
import io.noties.markwon.core.spans.EmphasisSpan;
public class EmphasisSpanFactory implements SpanFactory {
@Nullable

View File

@ -1,13 +1,13 @@
package io.noties.markwon.core.factory;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
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.RenderProps;
import io.noties.markwon.SpanFactory;
import io.noties.markwon.core.CoreProps;
import io.noties.markwon.core.spans.HeadingSpan;
public class HeadingSpanFactory implements SpanFactory {
@Nullable

View File

@ -1,13 +1,13 @@
package io.noties.markwon.core.factory;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
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.RenderProps;
import io.noties.markwon.SpanFactory;
import io.noties.markwon.core.CoreProps;
import io.noties.markwon.core.spans.LinkSpan;
public class LinkSpanFactory implements SpanFactory {
@Nullable

View File

@ -1,14 +1,14 @@
package io.noties.markwon.core.factory;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
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.RenderProps;
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 {

View File

@ -1,12 +1,12 @@
package io.noties.markwon.core.factory;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import io.noties.markwon.core.spans.StrongEmphasisSpan;
import io.noties.markwon.MarkwonConfiguration;
import io.noties.markwon.RenderProps;
import io.noties.markwon.SpanFactory;
import io.noties.markwon.core.spans.StrongEmphasisSpan;
public class StrongEmphasisSpanFactory implements SpanFactory {
@Nullable

View File

@ -1,12 +1,12 @@
package io.noties.markwon.core.factory;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import io.noties.markwon.core.spans.ThematicBreakSpan;
import io.noties.markwon.MarkwonConfiguration;
import io.noties.markwon.RenderProps;
import io.noties.markwon.SpanFactory;
import io.noties.markwon.core.spans.ThematicBreakSpan;
public class ThematicBreakSpanFactory implements SpanFactory {
@Nullable

View File

@ -3,10 +3,11 @@ package io.noties.markwon.core.spans;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.support.annotation.NonNull;
import android.text.Layout;
import android.text.style.LeadingMarginSpan;
import androidx.annotation.NonNull;
import io.noties.markwon.core.MarkwonTheme;
public class BlockQuoteSpan implements LeadingMarginSpan {

View File

@ -4,11 +4,12 @@ import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.RectF;
import android.support.annotation.IntRange;
import android.support.annotation.NonNull;
import android.text.Layout;
import android.text.style.LeadingMarginSpan;
import androidx.annotation.IntRange;
import androidx.annotation.NonNull;
import io.noties.markwon.core.MarkwonTheme;
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.Paint;
import android.graphics.Rect;
import android.support.annotation.NonNull;
import android.text.Layout;
import android.text.TextPaint;
import android.text.style.LeadingMarginSpan;
import android.text.style.MetricAffectingSpan;
import androidx.annotation.NonNull;
import io.noties.markwon.core.MarkwonTheme;
/**

View File

@ -1,9 +1,10 @@
package io.noties.markwon.core.spans;
import android.support.annotation.NonNull;
import android.text.TextPaint;
import android.text.style.MetricAffectingSpan;
import androidx.annotation.NonNull;
import io.noties.markwon.core.MarkwonTheme;
/**

View File

@ -1,10 +1,11 @@
package io.noties.markwon.core.spans;
import android.graphics.Typeface;
import android.support.annotation.NonNull;
import android.text.TextPaint;
import android.text.style.MetricAffectingSpan;
import androidx.annotation.NonNull;
/**
* A span implementation that allow applying custom Typeface. Although it is
* 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.Paint;
import android.graphics.Rect;
import android.support.annotation.IntRange;
import android.support.annotation.NonNull;
import android.text.Layout;
import android.text.TextPaint;
import android.text.style.LeadingMarginSpan;
import android.text.style.MetricAffectingSpan;
import androidx.annotation.IntRange;
import androidx.annotation.NonNull;
import io.noties.markwon.core.MarkwonTheme;
import io.noties.markwon.utils.LeadingMarginUtils;

View File

@ -1,10 +1,11 @@
package io.noties.markwon.core.spans;
import android.support.annotation.NonNull;
import android.text.TextPaint;
import android.text.style.URLSpan;
import android.view.View;
import androidx.annotation.NonNull;
import io.noties.markwon.core.MarkwonTheme;
public class LinkSpan extends URLSpan {

View File

@ -2,13 +2,14 @@ package io.noties.markwon.core.spans;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.support.annotation.NonNull;
import android.text.Layout;
import android.text.Spanned;
import android.text.TextPaint;
import android.text.style.LeadingMarginSpan;
import android.widget.TextView;
import androidx.annotation.NonNull;
import io.noties.markwon.core.MarkwonTheme;
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.Paint;
import android.graphics.Rect;
import android.support.annotation.NonNull;
import android.text.Layout;
import android.text.style.LeadingMarginSpan;
import androidx.annotation.NonNull;
import io.noties.markwon.core.MarkwonTheme;
public class ThematicBreakSpan implements LeadingMarginSpan {

View File

@ -6,9 +6,10 @@ import android.graphics.PixelFormat;
import android.graphics.Rect;
import android.graphics.drawable.Animatable;
import android.graphics.drawable.Drawable;
import android.support.annotation.IntRange;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.IntRange;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
public class AsyncDrawable extends Drawable {

View File

@ -1,8 +1,9 @@
package io.noties.markwon.image;
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 {

View File

@ -1,8 +1,9 @@
package io.noties.markwon.image;
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 {
@Override

View File

@ -4,12 +4,13 @@ import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.os.Looper;
import android.os.SystemClock;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.Spanned;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import io.noties.markwon.R;
public abstract class AsyncDrawableScheduler {

View File

@ -3,12 +3,13 @@ package io.noties.markwon.image;
import android.graphics.Canvas;
import android.graphics.Paint;
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 androidx.annotation.IntDef;
import androidx.annotation.IntRange;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

View File

@ -2,8 +2,9 @@ package io.noties.markwon.image;
import android.graphics.Rect;
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

View File

@ -1,6 +1,6 @@
package io.noties.markwon.image;
import android.support.annotation.Nullable;
import androidx.annotation.Nullable;
/**
* @since 1.0.1

View File

@ -1,8 +1,9 @@
package io.noties.markwon.image;
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

View File

@ -1,8 +1,9 @@
package io.noties.markwon.image;
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

View File

@ -1,7 +1,7 @@
package io.noties.markwon.image;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import io.noties.markwon.MarkwonConfiguration;
import io.noties.markwon.RenderProps;

View File

@ -1,11 +1,12 @@
package io.noties.markwon.movement;
import android.support.annotation.NonNull;
import android.text.Spanned;
import android.text.method.LinkMovementMethod;
import android.text.method.MovementMethod;
import android.widget.TextView;
import androidx.annotation.NonNull;
import io.noties.markwon.AbstractMarkwonPlugin;
/**

View File

@ -1,7 +1,7 @@
package io.noties.markwon.syntax;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@SuppressWarnings("WeakerAccess")
public interface SyntaxHighlight {

View File

@ -1,7 +1,7 @@
package io.noties.markwon.syntax;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
public class SyntaxHighlightNoOp implements SyntaxHighlight {
@NonNull

View File

@ -1,6 +1,6 @@
package io.noties.markwon.urlprocessor;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
public interface UrlProcessor {
@NonNull

View File

@ -1,10 +1,11 @@
package io.noties.markwon.urlprocessor;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
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.
* 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;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
public class UrlProcessorNoOp implements UrlProcessor {
@NonNull

View File

@ -1,7 +1,7 @@
package io.noties.markwon.urlprocessor;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.net.MalformedURLException;
import java.net.URL;

View File

@ -1,7 +1,8 @@
package io.noties.markwon.utils;
import android.content.Context;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
public class Dip {

View File

@ -1,7 +1,8 @@
package io.noties.markwon.utils;
import android.graphics.drawable.Drawable;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
/**
* @deprecated Please use {@link io.noties.markwon.image.DrawableUtils}

View File

@ -1,7 +1,7 @@
package io.noties.markwon.utils;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import org.commonmark.node.Block;
import org.commonmark.node.Node;

View File

@ -1,9 +1,10 @@
package io.noties.markwon.utils;
import android.support.annotation.NonNull;
import android.text.Spannable;
import android.text.SpannableString;
import androidx.annotation.NonNull;
/**
* Utility SpannableFactory that re-uses Spannable instance between multiple
* `TextView#setText` calls.

View File

@ -1,6 +1,6 @@
package io.noties.markwon;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import org.commonmark.node.Node;

View File

@ -1,6 +1,6 @@
package io.noties.markwon;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import org.junit.Assert;

View File

@ -1,6 +1,6 @@
package io.noties.markwon;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import org.junit.Test;
import org.junit.runner.RunWith;

View File

@ -1,6 +1,6 @@
package io.noties.markwon;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import android.text.SpannableStringBuilder;
import android.text.Spanned;

View File

@ -1,7 +1,7 @@
package io.noties.markwon.core;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import org.commonmark.node.Node;

View File

@ -1,7 +1,7 @@
package io.noties.markwon.core;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import android.text.method.MovementMethod;
import android.widget.ImageView;
import android.widget.TextView;

View File

@ -1,6 +1,6 @@
package io.noties.markwon.core;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import android.text.Spanned;
import org.commonmark.node.Emphasis;

View File

@ -1,7 +1,7 @@
package io.noties.markwon.core.suite;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import android.text.Spanned;
import org.apache.commons.io.IOUtils;

View File

@ -4,8 +4,8 @@ import android.graphics.Canvas;
import android.graphics.ColorFilter;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import org.junit.Before;
import org.junit.Test;

View File

@ -1,7 +1,7 @@
package io.noties.markwon.image;
import android.content.Context;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import org.commonmark.node.Image;
import org.junit.Test;

View File

@ -1,11 +1,12 @@
package io.noties.markwon.syntax;
import android.os.Build;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.SpannableStringBuilder;
import android.text.Spanned;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import org.commonmark.node.FencedCodeBlock;
import org.commonmark.node.Node;
import org.junit.Test;

View File

@ -4,12 +4,13 @@ import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Looper;
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.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.Px;
import org.commonmark.parser.Parser;
import java.util.HashMap;
@ -18,15 +19,15 @@ import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
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.MarkwonConfiguration;
import io.noties.markwon.MarkwonVisitor;
import io.noties.markwon.image.AsyncDrawable;
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 ru.noties.jlatexmath.JLatexMathDrawable;
/**
* @since 3.0.0

View File

@ -1,8 +1,9 @@
package io.noties.markwon.ext.strikethrough;
import android.support.annotation.NonNull;
import android.text.style.StrikethroughSpan;
import androidx.annotation.NonNull;
import org.commonmark.ext.gfm.strikethrough.Strikethrough;
import org.commonmark.ext.gfm.strikethrough.StrikethroughExtension;
import org.commonmark.parser.Parser;

View File

@ -1,6 +1,6 @@
package io.noties.markwon.ext.strikethrough;
import android.support.annotation.NonNull;
import androidx.annotation.NonNull;
import android.text.style.StrikethroughSpan;
import org.commonmark.Extension;

View File

@ -1,9 +1,10 @@
package io.noties.markwon.ext.tables;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
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.TableCell;
import org.commonmark.ext.gfm.tables.TableHead;

View File

@ -1,10 +1,11 @@
package io.noties.markwon.ext.tables;
import android.content.Context;
import android.support.annotation.NonNull;
import android.text.Spanned;
import android.widget.TextView;
import androidx.annotation.NonNull;
import org.commonmark.ext.gfm.tables.TableBody;
import org.commonmark.ext.gfm.tables.TableCell;
import org.commonmark.ext.gfm.tables.TableHead;

View File

@ -4,15 +4,16 @@ import android.annotation.SuppressLint;
import android.graphics.Canvas;
import android.graphics.Paint;
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.StaticLayout;
import android.text.TextPaint;
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.RetentionPolicy;
import java.util.ArrayList;

View File

@ -1,12 +1,13 @@
package io.noties.markwon.ext.tables;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.text.Spanned;
import android.text.TextUtils;
import android.view.View;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
abstract class TableRowsScheduler {
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.graphics.Paint;
import android.support.annotation.ColorInt;
import android.support.annotation.NonNull;
import android.support.annotation.Px;
import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.annotation.Px;
import io.noties.markwon.utils.ColorUtils;
import io.noties.markwon.utils.Dip;

Some files were not shown because too many files have changed in this diff Show More