Loading markdown/src/main/java/it/niedermann/android/markdown/MarkdownEditor.java +8 −1 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ import androidx.annotation.Nullable; import androidx.lifecycle.LiveData; import java.util.Map; import java.util.function.Consumer; import java.util.function.Function; /** Loading @@ -34,10 +35,16 @@ public interface MarkdownEditor { } /** * @return the source {@link String} of the currently rendered markdown * @return the source {@link CharSequence} of the currently rendered markdown */ LiveData<CharSequence> getMarkdownString(); /** * Similar to {@link #getMarkdownString()} but without {@link LiveData}. * @param onChange a {@link Consumer} which will receive the changed markdown string. */ void registerMarkdownStringChangedListener(@NonNull Consumer<CharSequence> onChange); void setEnabled(boolean enabled); /** Loading markdown/src/main/java/it/niedermann/android/markdown/markwon/MarkwonMarkdownEditor.java +13 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,10 @@ import androidx.appcompat.widget.AppCompatEditText; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; import java.util.Collection; import java.util.LinkedList; import java.util.function.Consumer; import io.noties.markwon.Markwon; import io.noties.markwon.editor.MarkwonEditor; import io.noties.markwon.editor.handler.EmphasisEditHandler; Loading @@ -39,6 +43,7 @@ public class MarkwonMarkdownEditor extends AppCompatEditText implements Markdown private static final String TAG = MarkwonMarkdownEditor.class.getSimpleName(); private final Collection<Consumer<CharSequence>> markdownStringListeners = new LinkedList<>(); private final MutableLiveData<CharSequence> unrenderedText$ = new MutableLiveData<>(); private final CombinedTextWatcher combinedWatcher; Loading Loading @@ -117,10 +122,18 @@ public class MarkwonMarkdownEditor extends AppCompatEditText implements Markdown */ public void setMarkdownStringModel(CharSequence text) { unrenderedText$.setValue(text == null ? "" : text.toString()); for (Consumer<CharSequence> listener : markdownStringListeners) { listener.accept(text); } } @Override public LiveData<CharSequence> getMarkdownString() { return unrenderedText$; } @Override public void registerMarkdownStringChangedListener(@NonNull Consumer<CharSequence> onChange) { this.markdownStringListeners.add(onChange); } } markdown/src/main/java/it/niedermann/android/markdown/markwon/MarkwonMarkdownViewer.java +12 −0 Original line number Diff line number Diff line Loading @@ -12,9 +12,12 @@ import androidx.appcompat.widget.AppCompatTextView; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; import java.util.Collection; import java.util.LinkedList; import java.util.Map; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.function.Consumer; import java.util.function.Function; import io.noties.markwon.Markwon; Loading Loading @@ -52,6 +55,7 @@ public class MarkwonMarkdownViewer extends AppCompatTextView implements Markdown private static final Prism4j prism4j = new Prism4j(new MarkwonGrammarLocator()); private Markwon markwon; private final Collection<Consumer<CharSequence>> markdownStringListeners = new LinkedList<>(); private final MutableLiveData<CharSequence> unrenderedText$ = new MutableLiveData<>(); private final ExecutorService renderService; Loading Loading @@ -126,6 +130,9 @@ public class MarkwonMarkdownViewer extends AppCompatTextView implements Markdown public void setMarkdownString(CharSequence text) { final CharSequence previousText = this.unrenderedText$.getValue(); this.unrenderedText$.setValue(text); for (Consumer<CharSequence> listener : markdownStringListeners) { listener.accept(text); } if (TextUtils.isEmpty(text)) { setText(text); } else { Loading Loading @@ -165,4 +172,9 @@ public class MarkwonMarkdownViewer extends AppCompatTextView implements Markdown public LiveData<CharSequence> getMarkdownString() { return distinctUntilChanged(this.unrenderedText$); } @Override public void registerMarkdownStringChangedListener(@NonNull Consumer<CharSequence> onChange) { this.markdownStringListeners.add(onChange); } } Loading
markdown/src/main/java/it/niedermann/android/markdown/MarkdownEditor.java +8 −1 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ import androidx.annotation.Nullable; import androidx.lifecycle.LiveData; import java.util.Map; import java.util.function.Consumer; import java.util.function.Function; /** Loading @@ -34,10 +35,16 @@ public interface MarkdownEditor { } /** * @return the source {@link String} of the currently rendered markdown * @return the source {@link CharSequence} of the currently rendered markdown */ LiveData<CharSequence> getMarkdownString(); /** * Similar to {@link #getMarkdownString()} but without {@link LiveData}. * @param onChange a {@link Consumer} which will receive the changed markdown string. */ void registerMarkdownStringChangedListener(@NonNull Consumer<CharSequence> onChange); void setEnabled(boolean enabled); /** Loading
markdown/src/main/java/it/niedermann/android/markdown/markwon/MarkwonMarkdownEditor.java +13 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,10 @@ import androidx.appcompat.widget.AppCompatEditText; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; import java.util.Collection; import java.util.LinkedList; import java.util.function.Consumer; import io.noties.markwon.Markwon; import io.noties.markwon.editor.MarkwonEditor; import io.noties.markwon.editor.handler.EmphasisEditHandler; Loading @@ -39,6 +43,7 @@ public class MarkwonMarkdownEditor extends AppCompatEditText implements Markdown private static final String TAG = MarkwonMarkdownEditor.class.getSimpleName(); private final Collection<Consumer<CharSequence>> markdownStringListeners = new LinkedList<>(); private final MutableLiveData<CharSequence> unrenderedText$ = new MutableLiveData<>(); private final CombinedTextWatcher combinedWatcher; Loading Loading @@ -117,10 +122,18 @@ public class MarkwonMarkdownEditor extends AppCompatEditText implements Markdown */ public void setMarkdownStringModel(CharSequence text) { unrenderedText$.setValue(text == null ? "" : text.toString()); for (Consumer<CharSequence> listener : markdownStringListeners) { listener.accept(text); } } @Override public LiveData<CharSequence> getMarkdownString() { return unrenderedText$; } @Override public void registerMarkdownStringChangedListener(@NonNull Consumer<CharSequence> onChange) { this.markdownStringListeners.add(onChange); } }
markdown/src/main/java/it/niedermann/android/markdown/markwon/MarkwonMarkdownViewer.java +12 −0 Original line number Diff line number Diff line Loading @@ -12,9 +12,12 @@ import androidx.appcompat.widget.AppCompatTextView; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; import java.util.Collection; import java.util.LinkedList; import java.util.Map; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.function.Consumer; import java.util.function.Function; import io.noties.markwon.Markwon; Loading Loading @@ -52,6 +55,7 @@ public class MarkwonMarkdownViewer extends AppCompatTextView implements Markdown private static final Prism4j prism4j = new Prism4j(new MarkwonGrammarLocator()); private Markwon markwon; private final Collection<Consumer<CharSequence>> markdownStringListeners = new LinkedList<>(); private final MutableLiveData<CharSequence> unrenderedText$ = new MutableLiveData<>(); private final ExecutorService renderService; Loading Loading @@ -126,6 +130,9 @@ public class MarkwonMarkdownViewer extends AppCompatTextView implements Markdown public void setMarkdownString(CharSequence text) { final CharSequence previousText = this.unrenderedText$.getValue(); this.unrenderedText$.setValue(text); for (Consumer<CharSequence> listener : markdownStringListeners) { listener.accept(text); } if (TextUtils.isEmpty(text)) { setText(text); } else { Loading Loading @@ -165,4 +172,9 @@ public class MarkwonMarkdownViewer extends AppCompatTextView implements Markdown public LiveData<CharSequence> getMarkdownString() { return distinctUntilChanged(this.unrenderedText$); } @Override public void registerMarkdownStringChangedListener(@NonNull Consumer<CharSequence> onChange) { this.markdownStringListeners.add(onChange); } }